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¶
Para revogar o acesso a todos os recursos do Snowflake AI que estão disponíveis aos usuários por padrão, revogue as funções de banco de dados CORTEX_USER e COPILOT_USER da função PUBLIC. Você pode conceder essas funções a funções específicas que deseja que tenham acesso aos recursos e, em seguida, conceder essas funções a usuários específicos, conforme necessário (não é possível conceder funções de banco de dados diretamente aos usuários, mas deve concedê-las a funções que possam ser assumidas pelos usuários).
Use SQL como o seguinte para revogar o acesso às funções CORTEX_USER e COPILOT_USER da função PUBLIC e, em seguida, concedê-las a funções e usuários específicos.
-- 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;
Nota
Se você concedeu CORTEX_USER e COPILOT_USER a outras funções, revogue-as dessas funções para bloquear completamente o uso de recursos de AI do Snowflake pelos usuários.
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;
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 |
|---|---|---|---|
Função de banco de dados CORTEX_USER |
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 |
||
Função de banco de dados CORTEX_USER |
|||
✔ |
Parâmetro de conta ENABLE_CORTEX_ANALYST |
||
✔ |
CREATE MODEL no esquema em que você cria modelos ajustados |
||
Função de banco de dados CORTEX_USER |
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 |
||
Função de banco de dados CORTEX_USER |
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 |
|
Função de banco de dados COPILOT_USER |
|||
Função de banco de dados CORTEX_USER |
Depende do controle de acesso para o Cortex Agent ou Search Service subjacente |
Desativar funções AISQL e modelos específicos¶
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¶
A função ACCOUNTADMIN tem acesso completo a todos os recursos em uma conta Snowflake, incluindo recursos de AI do Snowflake. Revogar as funções CORTEX_USER e COPILOT_USER de PUBLIC não impede que ACCOUNTADMIN use esses recursos. Mesmo se o acesso de ACCOUNTADMIN a recursos de AI forem revogados, um usuário com acesso a ACCOUNTADMIN pode sempre conceder acesso a essa função (ou a qualquer outra função) novamente.
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¶
Os recursos de ML do Snowflake não são recursos de AI, portanto, o acesso a eles não é controlado pela função CORTEX_USER.
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¶
O Snowflake ML permite que você crie, implante e gerencie modelos personalizados de aprendizado de máquina desenvolvidos em Python, na escala do Snowflake. A criação e o uso de objetos do Snowflake ML, incluindo o registro do modelo, o repositório de recursos e os modelos e suas versões, não são controlados pela função CORTEX_USER.
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
Usuários com o privilégio CREATE MODEL em um esquema também pode criar modelos usando o ajuste fino do Cortex. No entanto, o uso de modelos com ajuste fino do Cortex requer a função de banco de dados CORTEX_USER.