Gerenciamento de usuários e acesso a salas limpas¶
Visão geral¶
Este tópico descreve como um administrador da conta gerencia o acesso dos usuários à UI e à API de salas limpas na conta deles.
O acesso à UI e à API de salas limpas é concedido separadamente. As salas limpas definem várias funções de aplicativo que permitem o acesso à API e a várias subseções da UI. O administrador da conta cria uma função personalizada, concede as funções de aplicativo desejadas para permitir acesso detalhado à UI e à API e, depois disso, concede a função a vários usuários na conta.
Essa estratégia utiliza o modelo de controle de acesso baseado em função (Role-Based Access Control, RBAC) do Snowflake para delegar os privilégios de maneira adequada aos usuários e colaboradores da sala limpa nas respectivas contas. Para obter mais informações sobre RBAC, consulte Visão geral do controle de acesso. Para ver quais usuários receberam uma função específica, execute o seguinte comando SQL:
SHOW GRANTS OF ROLE <role_name>;
Dica
Este tópico usa os seguintes termos:
Usuários de sala limpa: Usuários que receberam acesso à UI ou à API de salas limpas na conta Snowflake.
Colaboradores de sala limpa: Consumidores convidados a ingressar em uma sala limpa pelo provedor da sala limpa. Um colaborador também é um usuário de sala limpa, ou seja, ele deve ter acesso à UI ou à API de salas limpas para poder aceitar um convite e usar a sala limpa.
Gerenciamento do acesso à UI de salas limpas¶
Um usuário pode acessar a UI de salas limpas com as funções adequadas. Um usuário de sala limpa também deve receber um warehouse padrão e ter o privilégio USAGE nele.
As seguintes funções concedem permissão para gerenciar ou acessar a UI de salas limpas:
ACCOUNTADMIN: função usada para instalar ou desinstalar o ambiente de salas limpas. Essa função também permite o acesso à página Snowflake Admin na UI de salas limpas. Os administradores de conta usam essa página para gerenciar o usuário de serviço e os recursos da conta, como preenchimento automático entre nuvens, tabelas externas e Iceberg e registro de conjunto de dados para usuários da UI. Essa função tem todos os privilégios da UI de salas limpas. Um usuário que faz execuções como ACCOUNTADMIN não precisa de outras funções de aplicativo da UI.
MANAGE_CLEANROOMS: função de aplicativo que permite criar, atualizar, excluir e instalar salas limpas, bem como criar, atualizar, excluir e executar análises na UI de salas limpas.
MANAGE_DCR_PROFILE_AND_FEATURES: função de aplicativo que fornece acesso à página Profile & Features na seção Admin da UI, em que é possível gerenciar o perfil da empresa e controlar os conectores de terceiro que podem ser usados em salas limpas.
MANAGE_DCR_CONNECTORS: função de aplicativo que fornece acesso à página Connectors na UI, em que é possível configurar conectores de terceiro.
MANAGE_DCR_COLLABORATORS: função de aplicativo que fornece acesso à página Collaborators na UI, em que é possível gerenciar a lista de colaboradores aprovados disponíveis para provedores de sala limpa na UI. Essa função não controla a lista de colaboradores disponíveis para os provedores ao usar a API. Os usuários da API podem convidar qualquer pessoa para colaborar. Para obter mais informações, consulte Gerencie os colaboradores da clean room.
Exemplo
O código a seguir mostra como criar uma função personalizada, conceder a ela vários recursos da UI e, em seguida, conceder a função personalizada a um usuário.
-- Create the role.
USE ROLE ACCOUNTADMIN;
CREATE ROLE dcr_access;
-- Grant capabilities to the new role.
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_CLEANROOMS TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_COLLABORATORS TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_PROFILE_AND_FEATURES TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_CONNECTORS TO ROLE dcr_access;
-- Assign the role to a user.
-- You must also grant access to a default warehouse to the role.
GRANT USAGE ON WAREHOUSE <your_warehouse> TO ROLE dcr_access;
ALTER USER <some_user> SET DEFAULT_WAREHOUSE = <your_warehouse>;
GRANT ROLE dcr_access to USER <some_user>;
Gerenciamento de usuários de API¶
O acesso à API é gerenciado por meio de funções. As seguintes funções do Snowflake são usadas para acessar ou gerenciar a API:
ACCOUNTADMIN: a função usada para instalar ou desinstalar o ambiente de salas limpas. Essa função não inclui SAMOOHA_APP_ROLE. Para usar a API, você deve usar SAMOOHA_APP_ROLE.
SAMOOHA_APP_ROLE: essa função concede permissão total à API de salas limpas nesta conta. (Essa função é usada pela UI de salas limpas para se comunicar com a API.)
Função de desenvolvedor somente execução: alguém que usa SAMOOHA_APP_ROLE pode conceder o uso em uma função de acesso limitado. Essa função, também chamada de função de execução, concede permissão para usar um subconjunto de procedimentos da API em um subconjunto de salas limpas no contexto do consumidor. Essas funções limitadas podem ser concedidas a funções para permitir o uso com escopo em sua conta para usuários específicos, como analistas de dados.
Conceda ou revogue o acesso completo à API¶
A função SAMOOHA_APP_ROLE concede ao usuário acesso total à API a todas as salas limpas em uma conta.
Conceda acesso total à API:
USE ROLE ACCOUNTADMIN;
GRANT ROLE SAMOOHA_APP_ROLE TO USER <user_name>;
Revogue o acesso total à API:
USE ROLE ACCOUNTADMIN;
REVOKE ROLE SAMOOHA_APP_ROLE FROM USER <user_name>;
Conceda acesso limitado à API¶
Você pode conceder acesso limitado à API a salas limpas especificadas em sua conta. O acesso limitado permite chamar apenas um subconjunto de procedimentos do consumidor, como consumer.run_analysis
, mas não permite instalar, criar, ingressar ou modificar uma sala limpa.
Veja a seguir como conceder acesso limitado a um usuário:
Um usuário com acesso total à API, que pode conceder a função SAMOOHA_APP_ROLE, cria uma nova função e designa funcionalidade limitada a essa função:
-- Create the role. USE ROLE ACCOUNTADMIN; CREATE ROLE MARKETING_ANALYST_ROLE; GRANT USAGE ON WAREHOUSE APP_WH TO MARKETING_ANALYST_ROLE; -- Or whichever warehouse you are using -- Grant limited functionality to the role for a subset of clean rooms. CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role( [$cleanroom_1, $cleanroom_2], 'MARKETING_ANALYST_ROLE' ); -- Grant the role to a user. GRANT ROLE MARKETING_ANALYST_ROLE TO USER george.washington;
Em seguida, o usuário usa sua função limitada para executar ações específicas na conta da clean room:
-- User george.washington logs in and uses the limited role. USE WAREHOUSE APP_WH USE ROLE MARKETING_ANALYST_ROLE; USE SECONDARY ROLES NONE; -- Consumer-run analyses should succeed. CALL samooha_by_snowflake_local_db.consumer.run_analysis( $cleanroom_name, 'prod_overlap_analysis', ['MY_DB.MYDATA.CONVERSIONS'], -- Consumer tables ['MY_DB.MYDATA.EXPOSURES'], -- Provider tables object_construct( 'max_age', 30 ) ); -- Clean room creation and management procedures fail. CALL samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
Revogue o acesso limitado à API¶
Para revogar os privilégios de execução em uma sala limpa específica de uma determinada função, chame revoke_run_on_cleanrooms_from_role.
Para revogar todos os privilégios de execução concedidos de um único usuário, revogue a função do usuário.
Gerencie os colaboradores da clean room¶
Colaboradores são usuários convidados a ingressar em uma sala limpa como consumidores por um provedor da sala limpa.
Ao usar a UI de salas limpas, os criadores podem convidar colaboradores de uma lista gerenciada por alguém que usa a função MANAGE_DCR_COLLABORATORS.
Ao usar a API de salas limpas, os provedores não são limitados por uma lista predefinida de colaboradores e podem adicionar qualquer colaborador de sala limpa pelo localizador da conta Snowflake. Se você quer convidar um colaborador sem uma conta Snowflake, deve primeiro criar uma conta gerenciada de sala limpa para ele.
Nota
Se um colaborador Snowflake tiver uma conta em uma região diferente de sua conta Snowflake, o administrador de conta deverá ativar o preenchimento automático entre nuvens antes que você possa adicioná-lo como colaborador.
Para gerenciar a lista de colaboradores usada na UI de salas limpas, você precisa da função MANAGE_DCR_COLLABORATORS.
Navegue até a página de login do Snowflake Data Clean Rooms.
Na navegação da esquerda, selecione Collaborators.
Faça uma das seguintes opções:
Se o colaborador tiver uma conta Snowflake, selecione Snowflake Partners » + Snowflake Partner. Responda às solicitações para inserir os detalhes da conta Snowflake do colaborador.
Se o colaborador não for um cliente Snowflake, selecione a guia Managed Accounts para criar uma conta gerenciada de clean room para ele.
Ao usar a API de salas limpas, os provedores podem adicionar colaboradores chamando o procedimento provider.add_consumers
.
Se o colaborador não é cliente Snowflake, alguém deve criar uma conta gerenciada de sala limpa para ele.