Desativar os recursos do Snowflake AI¶
A maioria dos recursos do Snowflake AI está inicialmente disponível para todos os usuários da sua conta Snowflake. O acesso à maioria dos recursos é controlado pela função de banco de dados SNOWFLAKE.CORTEX_USER, que é inicialmente concedida à função PUBLIC. Todos os usuários recebem a função PUBLIC, que lhes dá acesso aos recursos do Cortex por padrão. (O acesso ao Snowflake Copilot é controlado pela função de banco de dados SNOWFLAKE.COPILOT_USER também concedida a PUBLIC por padrão.) Dois recursos, Cortex Analyst e Document AI, são opcionais e não são acessíveis aos usuários por padrão.
Desativar recursos padrão¶
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;
Nota
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.
Revogar acesso a recursos opcionais¶
Alguns dos recursos de AI do Snowflake são opcionais. O acesso a esses recursos está desativado por padrão, portanto, a menos que você conceda acesso a eles, seus usuários não poderão usá-los. Se você tiver concedido acesso a qualquer um desses recursos, é possível revogar o acesso a recursos individuais:
Cortex Analyst: defina o parâmetro de conta ENABLE_CORTEX_ANALYST como FALSE:
ALTER ACCOUNT SET ENABLE_CORTEX_ANALYST = FALSE;
Funções de incorporação do Cortex (AI_EMBED, EMBED_TEXT_768 e EMBED_TEXT_1024): Chamar essas funções requer a função de banco de dados SNOWFLAKE.CORTEX_EMBED_USER se o usuário não tiver a função de banco de dados SNOWFLAKE.CORTEX_USER. Revogar função SNOWFLAKE.CORTEX_EMBED_USER de quaisquer funções às quais você a tenha concedido.
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER FROM ROLE my_role;
Cortex Fine-tuning: revogue o privilégio CREATE MODEL nos esquemas a partir de qualquer função à qual você o tenha concedido.
REVOKE CREATE MODEL ON SCHEMA my_schema FROM ROLE my_role;
Document AI: revogue a função de banco de dados SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR de quaisquer funções às quais você a tenha concedido.
REVOKE DATABASE ROLE SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR FROM ROLE my_role;
Nota
Os pipelines existentes continuam a operar após a revogação do acesso ao Document AI. Para interromper os pipelines, suspenda ou descarte as tarefas associadas a eles.
Provisioned Throughput: revogue o privilégio CREATE PROVISIONED THROUGHPUT nos esquemas a partir de quaisquer funções às quais você o tenha concedido.
REVOKE CREATE PROVISIONED THROUGHPUT ON SCHEMA my_schema FROM ROLE my_role;
Controle de acesso por recurso¶
A tabela a seguir contém informações mais detalhadas sobre o controle de acesso para recursos individuais do Snowflake AI:
Recurso |
Opcional |
Método de controle de acesso principal |
Métodos adicionais de controle de acesso |
|---|---|---|---|
SNOWFLAKE.CORTEX_USER database role |
USAGE no serviço de pesquisa que o agente consulta, além de USAGE no banco de dados, esquema e tabela usados pelo serviço de pesquisa |
||
SNOWFLAKE.CORTEX_USER database role |
|||
✔ |
Parâmetro de conta ENABLE_CORTEX_ANALYST |
||
✔ |
CREATE MODEL no esquema em que você cria modelos ajustados |
||
SNOWFLAKE.CORTEX_USER database role |
Depende do controle de acesso para o Cortex Search Service subjacente |
||
✔ |
Privilégio CREATE PROVISIONED THROUGHPUT no esquema em que você criou objetos de taxa de transferência provisionada |
||
SNOWFLAKE.CORTEX_USER database role |
USAGE no serviço de pesquisa, banco de dados, esquema e tabela usados pelo serviço de pesquisa |
||
✔ |
Função de banco de dados SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR |
Diversos privilégios em nível de objeto para criar modelos e pipelines |
|
SNOWFLAKE.COPILOT_USER database role |
|||
SNOWFLAKE.CORTEX_USER database role |
Depende do controle de acesso para o Cortex Agent ou Search Service subjacente |
Opt out of specific models and AI Functions¶
Como o custo do uso de diferentes modelos de linguagem grandes varia, você pode limitar o acesso a LLMs específicos por uma lista de permissões em nível de conta, por controle de acesso baseado em função ou por uma combinação de ambos. Para obter mais informações, consulte Controle o acesso ao modelo.
ACCOUNTADMIN e recursos de AI¶
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.
Por essa e outras razões, é uma prática recomendada conceder a função ACCOUNTADMIN somente a usuários confiáveis, ou ainda mais estritamente, para um único usuário na conta que não é usado para nenhuma finalidade diferente da administração da conta Snowflake e cujas credenciais de login sejam rigorosamente controladas. Use ACCOUNTADMIN apenas para configuração e manutenção de conta, e use outras funções administrativas com escopo mais limitado (ou seja, SECURITYADMIN, SYSADMIN ou USERADMIN) para administração diária.
É possível evitar que ACCOUNTADMIN use recursos de AI do Snowflake que são controlados por outros meios que não o controle de acesso baseado em função. Por exemplo, mesmo um usuário com ACCOUNTADMIN não poderá usar o Cortex Analyst se o parâmetro de conta ENABLE_CORTEX_ANALYST estiver definido como FALSE. Claro que esse usuário sempre poderá definir esse parâmetro como TRUE.
Monitorar o uso de recursos de AI¶
Para garantir que os recursos de AI do Snowflake não estão sendo usados, monitore o uso de recursos de AI do Snowflake usando as exibições relacionadas ao Cortex no esquema SNOWFLAKE.ACCOUNT_USAGE. Essas exibições são:
Nota
CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY e CORTEX_FUNCTIONS_USAGE_HISTORY registram em log essencialmente os mesmos eventos. Não é necessário monitorar ambos.
Criação de alertas para novos dados nessas exibições para notificar você quando novos recursos de AI forem usados em sua conta. Por exemplo, o seguinte instrução SQL cria um alerta que envia uma mensagem Slack quando alguma função de AI é utilizada:
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;
Esses alertas incorrem em um custo nominal de computação quando novos dados são adicionados a uma visualização do histórico de uso do Cortex, mas se nenhum recurso de AI for usado, não haverá custo, pois nenhum dado será adicionado e o alerta nunca será acionado.
Controle de acesso a recursos de ML¶
Snowflake ML features are not AI features, and access to them is not controlled by the SNOWFLAKE.CORTEX_USER role.
Funções ML¶
Funções de ML empregam técnicas clássicas de aprendizado de máquina para previsão, detecção de anomalias, classificação e outras tarefas de análise de dados. A criação de modelos por funções ML é opcional e controlada por um privilégio específico da função, como CREATE SNOWFLAKE.ML.FORECAST, em esquemas. O acesso a modelos treinados é controlado pelo privilégio USAGE no objeto de modelo. Se você já concedeu esses privilégios, revogar os para impedir que usuários criem ou usem modelos de funções de ML. Talvez você queira DROP quaisquer modelos que já tenham sido criados.
Os proprietários de esquemas podem criar modelos de funções ML neles, independentemente de terem ou não privilégios CREATE para um tipo específico de modelo; portanto, limite a propriedade e a criação de esquemas a usuários confiáveis. Conceda privilégios específicos para criar modelos dentro de cada esquema apenas aos usuários que precisam deles.
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.
Os objetos Snowflake ML são objetos de nível de esquema, o que significa que os usuários podem criar objetos Snowflake ML em qualquer esquema no qual tenham OWNERSHIP ou um privilégio CREATE apropriado (por exemplo, CREATE MODEL REGISTRY). Portanto, o acesso ao Snowflake ML é melhor controlado limitando a propriedade e a criação de esquemas a usuários confiáveis. Conceda privilégios específicos para criar objetos Snowflake ML em cada esquema apenas aos usuários que precisam deles.
Nota
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.