Snowflake Data Clean Rooms: Tarefas do administrador¶
Este tópico descreve as tarefas do administrador de uma Snowflake Data Clean Room. Para obter mais informações sobre como implementar um ambiente limpo pela primeira vez, consulte Visão geral de Snowflake Data Clean Rooms.
Gerenciamento de usuários de clean room¶
O acesso à UI e API é gerenciado por meio de funções de aplicativo. Diferentes funções concedem acesso à API e UI.
O usuário também deve receber a atribuição de um warehouse padrão e ter permissão de uso nele.
Gerenciamento de acesso à UI de clean room¶
Para conceder acesso à UI de clean room, atribua as funções de UI de clean room apropriadas a um usuário ou subfunção. As seguintes funções são usadas para acessar ou gerenciar a UI de clean room:
ACCOUNTADMIN: usado para instalar ou desinstalar o ambiente da clean room. Concede acesso à página Snowflake Admin, usada para gerenciar o usuário do 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 de UI. Essa função inclui os privilégios de todas as outras funções de clean room.
MANAGE_CLEANROOMS: permite criar, atualizar, excluir e instalar clean rooms, além de criar, atualizar, excluir e executar análises na UI de clean room.
MANAGE_DCR_PROFILE_AND_FEATURES: concede acesso à página Profile & Features na seção
:ui:Admin
, onde você pode gerenciar o perfil da empresa e controlar quais conectores de terceiros podem ser usados em clean rooms.MANAGE_DCR_CONNECTORS: concede acesso à página Connectors, onde você pode configurar conectores de terceiros.
MANAGE_DCR_COLLABORATORS: concede acesso à página Collaborators, onde você pode gerenciar a lista de colaboradores aprovados para os usuários da UI. Não controla a lista de colaboradores disponíveis para os usuários da API, que podem convidar qualquer conta Snowflake para colaborar.
Exemplo
USE ROLE ACCOUNTADMIN;
CREATE ROLE dcr_access;
-- Choose your privileges:
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;
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¶
As clean rooms definem as seguintes funções para gerenciar o acesso à UI e API. Todas as funções são funções de aplicativo, dentro do escopo SAMOOHA_BY_SNOWFLAKE.
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 Clean Room.
SAMOOHA_APP_ROLE: concede permissão total para a API de clean room nesta conta. (Essa função é usada pelo aplicativo Web para se comunicar com a API.
Função de desenvolvedor apenas para execução: os usuários com SAMOOHA_APP_ROLE podem criar 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 de API em um subconjunto de clean rooms. Essas funções limitadas podem ser concedidas a usuários para fornecer uso com escopo em sua conta para usuários específicos, como analistas de dados. Crie funções limitadas chamando
consumer.grant_run_on_cleanrooms_to_role
.
Conceda ou revogue o acesso completo à API¶
A função SAMOOHA_APP_ROLE concede acesso total à API para todas as clean rooms 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 para clean rooms específicas em sua conta. O acesso limitado concede a capacidade de executar apenas um subconjunto de procedimentos do consumidor, como consumer.run_analysis
, mas não a capacidade de criar, unir ou modificar clean rooms.
Veja a seguir como conceder acesso limitado a um usuário:
Um usuário com acesso total que pode conceder a função SAMOOHA_APP_ROLE cria uma nova função e atribui a ela permissões limitadas:
-- 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 the role limited privileges on 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; -- 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');
Para ver quais usuários receberam uma função específica:
SHOW GRANTS OF ROLE <run_role_name>;
Revogue o acesso limitado à API¶
Para revogar os privilégios de execução dessa função, acesse
consumer.revoke_run_on_cleanrooms_from_role
.Para revogar os privilégios de execução de um único usuário, revogue a função do usuário.
Gerencie os colaboradores da clean room¶
Colaboradores são usuários convidados para participar de uma clean room pelo criador da clean room.
Ao usar a UI de clean room, os criadores podem convidar os colaboradores de uma lista. Essa lista é gerenciada por alguém com a função MANAGE_DCR_COLLABORATORS.
Os usuários da API de clean room não estão limitados a uma lista predefinida e podem adicionar qualquer colaborador de clean room pelo localizador de contas Snowflake.
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.
Se quiser convidar um colaborador sem uma conta Snowflake, você deve primeiro criar uma conta gerenciada de clean room para ele.
Para fazer a curadoria da lista de colaboradores usada na UI de clean room, você precisa da função MANAGE_DCR_COLLABORATORS.
/INCLUDE/cleanrooms/text/text-sign-in-page.txt
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 clean room, os provedores podem adicionar colaboradores pelo localizador de contas Snowflake usando o procedimento provider.add_consumers
.
Adição de opções de warehouse¶
Qualquer warehouse para o qual a função SAMOOHA_APP_ROLE tenha privilégios de uso e operação pode ser usado para executar análises. Para adicionar warehouses que podem ser usados por usuários de salas limpas para executar análises, crie um warehouse e conceda privilégios nele para SAMOOHA_APP_ROLE.
Por exemplo, para adicionar um warehouse my_big_warehouse
que pode ser usado para executar análises, execute os seguintes comandos em uma planilha:
USE ROLE ACCOUNTADMIN;
CREATE WAREHOUSE my_big_warehouse WITH WAREHOUSE_SIZE = X5LARGE;
GRANT USAGE, OPERATE ON WAREHOUSE my_big_warehouse TO ROLE SAMOOHA_APP_ROLE;
Monitoramento da atividade do aplicativo da Web¶
Como administrador, você pode rastrear o que os usuários estão fazendo no aplicativo da Web monitorando o histórico de consultas em sua conta Snowflake. Você pode identificar as entradas do histórico de consultas que correspondem à atividade no aplicativo Web porque o valor de user_name
é o nome do usuário de serviço que foi criado quando a conta Snowflake foi configurada.
Você pode usar a tag de consulta user_email
para identificar qual usuário da sala limpa executou uma ação.
Para acessar o histórico de consultas do seu ambiente de sala limpa, siga um destes procedimentos, conforme sua escolha entre SQL ou Snowsight:
- Snowsight:
Entre na conta Snowflake associada ao seu ambiente de sala limpa como um usuário com a função ACCOUNTADMIN.
Selecione Monitoring » Query History.
Use o filtro User para selecionar o usuário da conta de serviço associado ao ambiente de sala limpa.
- SQL:
Executar consultas contra a exibição QUERY_HISTORY no esquema ACCOUNT_USAGE do banco de dados SNOWFLAKE compartilhado.
Por exemplo, para rastrear a atividade do aplicativo web do usuário
joe@example.com
, execute o seguinte código:SELECT *, TRY_PARSE_JSON(query_tag) AS query_tag_details FROM snowflake.account_usage.query_history WHERE query_tag_details IS NOT NULL AND query_tag_details:request_type = 'DCR' AND query_tag_details:user_email = 'joe@example.com';
Monitoramento de análises executadas pelo provedor¶
Uma análise executada pelo provedor se refere ao processo em que um provedor cria e compartilha uma sala limpa e, em seguida, executa uma análise na sala limpa depois que o consumidor vincula seus dados. Essas análises são executadas na conta do consumidor, não do provedor. Esta seção descreve como o consumidor pode rastrear as consultas executadas pelas análises do provedor na sala limpa.
Snowflake Data Clean Rooms atribui uma tag de consulta a cada consulta executada para uma análise executada pelo provedor. Esta tag de consulta assume o formato cleanroom_UUID_provider_account_locator
. Um consumidor pode recuperar todas as consultas associadas às análises executadas pelo provedor pesquisando a tag de consulta no histórico de consulta de sua conta.
Para recuperar a consulta, primeiro obtenha o UUID para uma sala limpa e depois procure pela tag de consulta. No código a seguir, substitua cleanroom_name
e provider_account_locator
pelos valores apropriados.
-- Retrieve clean room UUID
SELECT cleanroom_id FROM samooha_by_snowflake_local_db.public.cleanroom_record
WHERE cleanroom_name = '<cleanroom_name>';
-- Retrieve queries with provider-run query tag
SELECT * FROM snowflake.account_usage.query_history
WHERE query_tag = cleanroom_id || '<provider_account_locator>;
Você também pode Snowsight usar para filtro o histórico de consulta pela tag de consulta apropriada depois de usar SQL para recuperar o UUID da sala limpa.
Personalize os conectores disponíveis¶
Os conectores permitem que você integre seu ambiente de sala limpa com seus parceiros de ecossistema. Como administrador da sala limpa de um provedor, você pode personalizar o ambiente de sala limpa para limitar quais conectores aparecem como opções para o usuário da sala limpa. Por exemplo, se você tiver apenas um parceiro de ativação preferencial, poderá configurar o ambiente de sala limpa para que o parceiro seja a única opção quando um consumidor ativar os resultados de uma análise em uma sala limpa.
Nota
Suas personalizações se aplicam somente a novas salas limpas.
Para controlar quais conectores estão disponíveis em uma clean room, você precisa da função MANAGE_DCR_CONNECTORS.
No painel de navegação à esquerda, selecione Admin » Profile & Features.
Opcional: para personalizar os conectores de ativação, siga estas etapas:
No bloco Activation, selecione Edit.
Selecione quais opções de ativação você deseja exibir e, em seguida, selecione Save.
Opcional: para personalizar conectores de identidade e provedor de dados, siga estas etapas:
No bloco Identity & Data Provider, selecione Edit.
Selecione quais opções de identidade você deseja exibir e, em seguida, selecione Save.
Coloque sua marca em suas salas limpas¶
Você pode configurar um perfil para seu ambiente de sala limpa para que cada sala limpa criada seja identificada com seu logotipo e nome da empresa. Para definir o logotipo e o nome de sua empresa, você precisa da função MANAGE_DCR_PROFILE_AND_FEATURES.
No painel de navegação à esquerda, selecione Admin » Profile & Features.
Na seção Company profile, faça o seguinte:
Carregue um logotipo para sua empresa no formato JPG ou PNG. Este logotipo aparecerá em todas as salas limpas que forem criadas.
Edite Company Name para definir o nome que você deseja que apareça nas salas limpas criadas em seu ambiente.
Habilitação de login único (SSO)¶
Para ativar o login único (SSO) com a autenticação Snowflake, entre em contato com o suporte Snowflake.
Permissão para autenticação de par de chaves¶
O usuário da conta de serviço que o ambiente de sala limpa usa para se comunicar com sua conta Snowflake usa autenticação de par de chaves para autenticar. Se sua conta Snowflake usar políticas de autenticação para controlar como os usuários são autenticados, a política de autenticação que controla o usuário da conta de serviço deverá permitir a autenticação de par de chaves.
Para permitir a autenticação por par de chaves, remova todas as políticas de autenticação ou adicione uma política de autenticação com AUTHENTICATION_METHODS = ALL
ou AUTHENTICATION_METHODS = KEYPAIR
. Se sua conta Snowflake tiver uma política de autenticação em nível de conta que não permita autenticação de par de chaves, você precisará criar uma nova política de autenticação com o parâmetro apropriado e, em seguida, atribuir a política ao usuário da conta de serviço que foi criado durante o processo de instalação.
Você pode verificar suas políticas de autenticação executando este comando:
SHOW AUTHENTICATION POLICIES;
Uma tabela de resultados vazia indica que não há políticas, o que significa que a autenticação de par de chaves é permitida.
Habilitação ou desabilitação da ativação na UI de clean room¶
Ao usar a UI de clean room, a ativação é controlada globalmente por um administrador de clean room. A ativação na API de clean room é controlada no nível da clean room pelo provedor.
Esta seção mostra como habilitar ou desabilitar a ativação ao usar a UI de clean room. Para saber como habilitar a ativação ao usar a API, leia as instruções de ativação.
A ativação do provedor e consumidor é habilitada por padrão em sua conta de clean room ao usar a UI de clean room. A ativação de terceiros deve ser ativada manualmente.
Veja a seguir como habilitar ou desabilitar a ativação para usuários de UI em sua conta:
Faça login no ambiente da clean room no aplicativo da Web como administrador da DCR.
Selecione Admin » Profile & Features.
Na seção Activation, selecione Edit.
Para gerenciar a ativação do consumidor: marque ou desmarque a caixa de seleção ao lado de Collaborator Account.
Para gerenciar a ativação do provedor: marque ou desmarque a caixa de seleção ao lado do nome de sua própria conta.
Para gerenciar a ativação de terceiros: marque ou desmarque a caixa de seleção ao lado do destino de ativação de terceiros que você deseja habilitar ou desabilitar. A ativação de terceiros é habilitada por meio de conectores e está disponível apenas na UI de clean room. Consulte a lista de conectores de terceiros disponíveis.
Configuração de políticas de rede¶
Se sua conta Snowflake usar uma política de redes para controlar o tráfego de rede, você deve permitir explicitamente o tráfego de endereços IP que o aplicativo da Web usa para se comunicar com sua conta Snowflake.
Localize a região da conta de provedor de nuvem na tabela abaixo e configure a política de redes da conta para permitir todos os endereços IP listados nessa linha:
Região da conta Snowflake |
Permita esses endereços IP para o aplicativo da Web |
---|---|
|
52.7.249.136
34.195.16.248
52.7.210.215
|
|
15.223.145.218
3.96.6.109
15.222.142.44
|
|
54.93.86.99
3.126.238.8
3.127.143.168
|
|
35.154.94.29
13.235.168.249
15.206.48.175
|
|
13.228.90.174
52.220.42.130
52.220.249.16
|
|
52.65.205.236
52.62.198.227
3.104.160.96
|
Veja detalhes sobre a conta de serviço para este ambiente¶
O aplicativo Web usa uma conta de serviço para se comunicar com o Snowflake. Essa conta de serviço foi criada pelo administrador de conta quando ele instalou o ambiente de Clean Room para essa conta.
Você não pode modificar os detalhes sobre o usuário da conta de serviço.
Para ver os detalhes sobre a conta de serviço desse ambiente de Clean Room, você precisa da função MANAGE_DCR_PROFILE_AND_FEATURES.
/INCLUDE/cleanrooms/text/text-sign-in-page.txt
Navegue até Admin > Snowflake Admin.
Na página Snowflake Admin, você pode ver informações como o nome do usuário de serviço e o e-mail do usuário de serviço.