Deaktivieren von Snowflake-AI-Features¶
Die meisten Snowflake-AI-Features stehen zunächst allen Benutzern in Ihrem Snowflake-Konto zur Verfügung. Der Zugriff auf die meisten Features wird durch die SNOWFLAKE.CORTEX_USER-Datenbankrolle gesteuert, die zunächst der PUBLIC-Rolle zugewiesen ist. Allen Benutzern wird die PUBLIC-Rolle gewährt, die ihnen standardmäßig Zugriff auf Cortex-Features gibt. (Der Zugriff auf Snowflake Copilot wird durch die Datenbankrolle SNOWFLAKE.COPILOT_USER gesteuert, die auch standardmäßig der PUBLIC-Rolle gewährt wird). Zwei Features, Cortex Analyst und Document AI, sind so genannte Opt-in-Features, die für Benutzer standardmäßig nicht zugänglich sind.
Deaktivieren der Standard-Features¶
To revoke access to all Snowflake AI features that are available to users by default, revoke the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER database roles from the PUBLIC role. You can grant these roles to specific roles that you want to have access to the features, then grant those roles to specific users as needed. (You cannot grant database roles directly to users, but must grant them to roles that can be assumed by users.)
Use SQL like the following to revoke access to the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER roles from the PUBLIC role, then grant them to specific roles and users.
-- Revoke access to most Snowflake AI features from all users in the account
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE PUBLIC;
REVOKE DATABASE ROLE SNOWFLAKE.COPILOT_USER FROM ROLE PUBLIC;
-- Optionally, grant access to specific roles
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE my_cortex_role;
GRANT DATABASE ROLE SNOWFLAKE.COPILOT_USER TO ROLE my_copilot_role;
-- Then grant those roles to specific users
GRANT ROLE my_cortex_role TO USER alice;
GRANT ROLE my_copilot_role TO USER bob;
Bemerkung
If you granted SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER to other roles, revoke them from those roles to completely block users from using Snowflake AI features.
Widerrufen des Zugriffs auf Opt-in-Features¶
Einige Snowflake-AI-Features sind optional. Der Zugriff auf diese Features ist standardmäßig deaktiviert. Wenn Sie also keinen Zugriff darauf gewähren, können Ihre Benutzer sie nicht verwenden. Wenn Sie Zugriff auf eines dieser Features gewährt haben, können Sie den Zugriff auf einzelne Features widerrufen:
Cortex Analyst: Legen Sie den Kontoparameter ENABLE_CORTEX_ANALYST auf FALSE fest.
ALTER ACCOUNT SET ENABLE_CORTEX_ANALYST = FALSE;
Cortex-Einbettungsfunktionen (AI_EMBED, EMBED_TEXT_768, und EMBED_TEXT_1024): Für den Aufruf dieser Funktionen ist die Datenbankrolle SNOWFLAKE.CORTEX_EMBED_USER erforderlich, wenn der Benutzer nicht über die Datenbankrolle SNOWFLAKE.CORTEX_USER verfügt. Widerrufen Sie die Rolle SNOWFLAKE.CORTEX_EMBED_USER von allen Rollen, denen Sie sie zugewiesen haben.
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER FROM ROLE my_role;
Cortex Fine-Tuning: Widerrufen Sie die Berechtigung CREATEMODEL für Schemas von allen Rollen, denen Sie sie erteilt haben.
REVOKE CREATE MODEL ON SCHEMA my_schema FROM ROLE my_role;
Document AI: Widerrufen Sie die Datenbankrolle SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR von allen Rollen, denen Sie sie zugewiesen haben.
REVOKE DATABASE ROLE SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR FROM ROLE my_role;
Bemerkung
Bestehende Pipelines funktionieren weiterhin, nachdem der Zugriff auf Dokumenten-AI widerrufen wurde. Um die Pipelines zu beenden, setzen Sie die mit den Pipelines verbundenen Aufgaben aus oder löschen Sie sie.
Bereitgestellter Durchsatz: Widerrufen Sie die Berechtigung CREATE PROVISIONED THROUGHPUT für Schemas von allen Rollen, denen Sie sie erteilt haben.
REVOKE CREATE PROVISIONED THROUGHPUT ON SCHEMA my_schema FROM ROLE my_role;
Zugriffssteuerung nach Feature¶
Die folgende Tabelle enthält detailliertere Informationen zur Zugriffssteuerung für einzelne Snowflake-AI-Features:
Feature |
Opt in |
Hauptzugriffssteuerungsmethode |
Zusätzliche Zugriffssteuerungsmethoden |
|---|---|---|---|
SNOWFLAKE.CORTEX_USER database role |
USAGE für den Search Service, den der Agent abfragt, sowie USAGE für die Datenbank, das Schema und die Tabelle, die vom Search Service verwendet werden |
||
SNOWFLAKE.CORTEX_USER database role |
|||
✔ |
Kontoparameter ENABLE_CORTEX_ANALYST |
||
✔ |
CREATE MODEL für das Schema, in dem Sie Fine-Tuning-Modelle erstellen |
||
SNOWFLAKE.CORTEX_USER database role |
Basiert auf der Zugriffssteuerung für den zugrunde liegenden Cortex Search Service |
||
✔ |
Berechtigung CREATE PROVISIONED THROUGHPUT für das Schema, in dem Sie Objekte für bereitgestellten Durchsatz erstellen |
||
SNOWFLAKE.CORTEX_USER database role |
USAGE für den Search Service, die Datenbank, das Schema und die Tabelle, die vom Search Service verwendet werden |
||
✔ |
SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR Datenbankrolle |
Viele Berechtigungen auf Objektebene für das Erstellen von Modellen und Pipelines |
|
SNOWFLAKE.COPILOT_USER database role |
|||
SNOWFLAKE.CORTEX_USER database role |
Basiert auf der Zugriffssteuerung für den zugrunde liegenden Cortex Agent oder Search Service |
Opt out of specific models and AI Functions¶
Da die Kosten für die Verwendung verschiedener LLMs unterschiedlich sind, können Sie den Zugriff auf bestimmte LLMs über eine Zulassungsliste auf Kontoebene, durch rollenbasierte Zugriffssteuerung oder durch eine Kombination aus beidem beschränken. Weitere Informationen dazu finden Sie unter Zugriff auf das Modell kontrollieren.
ACCOUNTADMIN- und AI-Features¶
The ACCOUNTADMIN role has complete access to all features in a Snowflake account, including Snowflake AI features. Revoking the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER roles from PUBLIC does not prevent ACCOUNTADMIN from using these features. Even if an ACCOUNTADMIN’s access to AI features is revoked, a user with access to ACCOUNTADMIN can always grant access to that role (or any other role) again.
Aus diesem und anderen Gründen ist es eine bewährte Methode, die ACCOUNTADMIN-Rolle nur vertrauenswürdigen Benutzern oder, noch strenger, einem einzelnen Benutzer im Konto zu gewähren, der ausschließlich für die Verwaltung des Snowflake-Kontos zuständig ist und dessen Anmeldeinformationen streng kontrolliert werden. Verwenden Sie ACCOUNTADMIN nur für die Einrichtung und Pflege von Konten, und verwenden Sie andere administrative Rollen mit eingeschränkterem Geltungsbereich (d. h. SECURITYADMIN, SYSADMIN oder USERADMIN) für die tägliche Verwaltung.
Es ist möglich, ACCOUNTADMIN daran zu hindern, Snowflake-AI-Features zu nutzen, die durch andere Mittel als die rollenbasierte Zugriffssteuerung geschützt sind. Zum Beispiel kann selbst ein Benutzer mit der ACCOUNTADMIN-Rolle Cortex Analyst nicht verwenden, wenn der Kontoparameter ENABLE_CORTEX_ANALYST auf FALSE gesetzt ist. Natürlich kann dieser Benutzer diesen Parameter jederzeit auf TRUE setzen.
Verwendung von AI-Features überwachen¶
Um sicherzustellen, dass Snowflake-AI-Features nicht verwendet werden, überwachen Sie die Nutzung von Snowflake-AI-Features über die Cortex-bezogenen Ansichten im Schema SNOWFLAKE.ACCOUNT_USAGE. Diese Ansichten sind:
Bemerkung
CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY und CORTEX_FUNCTIONS_USAGE_HISTORY protokollieren im Wesentlichen die gleichen Ereignisse. Es ist nicht notwendig, beide zu überwachen.
Erstellen Sie Alerts für neue Daten in diesen Ansichten, um sich benachrichtigen zu lassen, wenn neue AI-Features in Ihrem Konto verwendet werden. Beispielsweise erstellt die folgende SQL-Anweisung einen Alert, der eine Slack-Meldung sendet, wenn eine AI-Funktion verwendet wird:
CREATE ALERT my_alert
IF (EXISTS (
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY))
THEN
BEGIN
CALL SYSTEM$SEND_SNOWFLAKE_NOTIFICATION(
SNOWFLAKE.NOTIFICATION.TEXT_PLAIN('AI function used in account'),
'{"my_slack_integration": {}}'
);
END;
Solche Alerts verursachen zwar nominale Computekosten, wenn neue Daten zu einer Ansicht des Cortex-Nutzungsverlaufs hinzugefügt werden, wenn aber keine AI-Features verwendet werden, entstehen keine Kosten, da keine Daten hinzugefügt werden und der Alert nie ausgelöst wird.
Zugriff auf ML-Features steuern¶
Snowflake ML features are not AI features, and access to them is not controlled by the SNOWFLAKE.CORTEX_USER role.
ML-Funktionen¶
ML-Funktionen nutzen klassische Techniken des maschinellen Lernens für Prognosen, Anomalieerkennung, Klassifizierung und andere Datenanalyseaufgaben. Die Erstellung von Modellen durch ML Functions ist ein Opt-in-Feature und wird durch eine funktionsspezifische Berechtigung, wie z. B. CREATE SNOWFLAKE.ML.FORECAST, für Schemas gesteuert. Der Zugriff auf trainierte Modelle wird durch die USAGE-Berechtigung für das Modellobjekt gesteuert. Wenn Sie diese Berechtigungen bereits erteilt haben, widerrufen Sie diese, um zu verhindern, dass Benutzer ML Functions-Modelle erstellen oder verwenden. Möglicherweise möchten Sie Modelle, die bereits erstellt wurden, DROP.
Eigentümer von Schemas können ML Functions-Modelle in diesen erstellen, unabhängig davon, ob sie über CREATE-Berechtigungen für einen bestimmten Modelltyp verfügen. Sie sollten daher die Eigentümerschaft und Erstellung von Schemas auf vertrauenswürdige Benutzer beschränken. Gewähren Sie spezifische Berechtigungen zum Erstellen von Modellen innerhalb der einzelnen Schemas nur für Benutzer, die diese Berechtigungen benötigen.
Snowflake ML¶
Snowflake ML lets you build, deploy, and manage custom machine learning models developed in Python, at Snowflake scale. Creation and use of Snowflake ML objects, including the model registry, the feature store, and models and their versions, is not controlled by the SNOWFLAKE.CORTEX_USER role.
Snowflake ML-Objekte sind Objekte auf Schemaebene, was bedeutet, dass Benutzer Snowflake ML-Objekte in jedem Schema erstellen können, in dem sie OWNERSHIP oder eine entsprechende CREATE-Berechtigung (z. B. CREATE MODEL REGISTRY) haben. Daher wird der Zugriff auf Snowflake ML am besten kontrolliert, indem die Eigentümerschaft und die Erstellung von Schemas auf vertrauenswürdige Benutzer beschränkt werden. Gewähren Sie spezifische Berechtigungen zum Erstellen von Snowflake-ML-Objekten innerhalb der einzelnen Schemas nur für Benutzer, die diese Berechtigungen benötigen.
Bemerkung
Users with the CREATE MODEL privilege in a schema can also create models using Cortex Fine-tuning. However, actually using Cortex fine-tuned models requires the SNOWFLAKE.CORTEX_USER database role.