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¶
Um den Zugriff auf alle Snowflake-AI-Features zu widerrufen, die Benutzern standardmäßig zur Verfügung stehen, widerrufen Sie die CORTEX_USER- und die COPILOT_USER-Datenbankrolle von der PUBLIC-Rolle. Sie können diese Rollen bestimmten Rollen zuweisen, die Zugriff auf die Features haben sollen, und diese Rollen dann je nach Bedarf bestimmten Benutzern zuweisen. (Sie können Benutzern Datenbankrollen nicht direkt zuweisen, sondern müssen sie Rollen zuweisen, die von Benutzern übernommen werden können.)
Verwenden Sie SQL wie folgt, um den Zugriff auf die CORTEX_USER- und die COPILOT_USER-Rolle von der PUBLIC-Rolle zu widerrufen, und weisen Sie sie dann bestimmten Rollen und Benutzern zu.
-- Revoke access to most Snowflake AI features from all users in the account
REVOKE ROLE CORTEX_USER FROM ROLE PUBLIC;
REVOKE ROLE COPILOT_USER FROM ROLE PUBLIC;
-- Optionally, grant access to specific roles
GRANT ROLE CORTEX_USER TO ROLE my_cortex_role;
GRANT ROLE 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
Wenn Sie CORTEX_USER und COPILOT_USER anderen Rollen zugewiesen haben, entfernen sie sie von diesen Rollen, um Benutzer vollständig an der Verwendung von Snowflake-AI-Features zu hindern.
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 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 |
|---|---|---|---|
CORTEX_USER-Datenbankrollen |
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 |
||
CORTEX_USER-Datenbankrollen |
|||
✔ |
Kontoparameter ENABLE_CORTEX_ANALYST |
||
✔ |
CREATE MODEL für das Schema, in dem Sie Fine-Tuning-Modelle erstellen |
||
CORTEX_USER-Datenbankrollen |
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 |
||
CORTEX_USER-Datenbankrollen |
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 |
|
COPILOT_USER-Datenbankrollen |
|||
CORTEX_USER-Datenbankrollen |
Basiert auf der Zugriffssteuerung für den zugrunde liegenden Cortex Agent oder Search Service |
Deaktivieren bestimmter Modelle und AISQL-Funktionen¶
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¶
Die Rolle ACCOUNTADMIN hat allumfassenden Zugriff auf alle Features in einem Snowflake-Konto, einschließlich Snowflake-AI-Features. Das Widerrufen der Rollen CORTEX_USER und COPILOT_USER von PUBLIC verhindert nicht, dass ACCOUNTADMIN diese Features verwendet. Auch wenn der Zugriff eines ACCOUNTADMIN auf AI-Features widerrufen wird, kann ein Benutzer mit Zugriff auf ACCOUNTADMIN dieser Rolle (oder einer anderen Rolle) jederzeit erneut Zugriff gewähren.
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 sind keine AI-Features. Daher kann der Zugriff auf diese Features nicht durch die CORTEX_USER-Rolle gesteuert werden.
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¶
Mit Snowflake ML können Sie benutzerdefinierte Machine Learning-Modelle, die in Python entwickelt wurden, im Snowflake-Maßstab erstellen, bereitstellen und verwalten. Die Erstellung und Verwendung von Snowflake ML-Objekten, einschließlich der Modell-Registry, des Feature Store sowie von Modellen und deren Versionen, werden nicht von der CORTEX_USER-Rolle gesteuert.
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
Benutzer mit der Berechtigung CREATE MODEL in einem Schema können auch Modelle mit Cortex Fine-Tuning erstellen. Für die tatsächliche Verwendung von Cortex-Feinabstimmungsmodellen ist jedoch die Datenbankrolle CORTEX_USER erforderlich.