Snowflake Data Clean Room: Dados externos de um bucket Amazon S3¶
Os dados analisados em uma Snowflake Data Clean Room podem ser nativos do Snowflake, residir externamente no armazenamento do provedor de nuvem ou ambos. Um conector permite que os colaboradores acessem dados externos de um provedor de nuvem de dentro da sala limpa.
O conector de dados externo usa tabelas externas do Snowflake para disponibilizar dados. Esteja ciente de que há um risco maior de segurança associado à vinculação de tabelas externas em uma sala limpa. Como resultado, o provedor deve permitir explicitamente o uso de tabelas externas na sala limpa antes que os consumidores possam usar um conector para incluir dados externos. Se o provedor usar o conector de dados externo, o consumidor será avisado de que tabelas externas estão sendo usadas para que ele possa decidir se deseja instalar a sala limpa.
Este tópico descreve como usar um conector para que analistas de sala limpa possam acessar dados externos de um bucket do Amazon bucket S3.
Importante
Conectores de terceiros não são oferecidos pela Snowflake e podem estar sujeitos a termos adicionais. Essas integrações são disponibilizadas para sua conveniência, mas você é responsável por qualquer conteúdo enviado ou recebido das integrações.
Os clientes são responsáveis por obter todos os consentimentos necessários em conexão com o uso das Snowflake Data Clean Rooms. Certifique-se de estar em conformidade com as leis e regulamentações aplicáveis ao usar os Snowflake Data Clean Rooms, inclusive em conexão com conectores de terceiro para fins de ativação.
Pré-requisitos¶
Para usar o conector para dados externos:
O provedor deve permitir explicitamente o uso de tabelas externas na sala limpa.
Os arquivos devem estar no formato parquet.
Conexão a um bucket S3¶
O processo para permitir que colaboradores de salas limpas acessem dados do armazenamento do Amazon S3 consiste nas seguintes etapas:
No AWS, conclua estes procedimentos:
Crie uma política IAM com permissões específicas.
Crie uma função IAM que faça referência à nova política IAM.
No ambiente de sala limpa, crie o conector.
No AWS, atualize a função IAM com os identificadores de conta de serviço do ambiente de sala limpa.
No ambiente de sala limpa, autentique o conector com o AWS.
Criação de uma política de IAM no AWS¶
A Snowflake recomenda que você crie uma política IAM dedicada para que o conector que inclua as permissões necessárias para acessar o bucket S3. Em uma etapa subsequente, você adiciona essa política a uma função IAM que representa a identidade do conector.
Para concluir este procedimento, você precisa saber a região da conta associada ao ambiente da sala limpa.
Para encontrar a região da conta associada a um ambiente de sala limpa, entre na sala limpa, e selecione Connectors » Cleanrooms » Snowflake.
Para criar uma política IAM que contenha permissões para o bucket S3:
Faça login na AWS Management Console.
No painel Console Home, selecione Identity and Access Management (IAM).
Na navegação da esquerda, selecione Account settings.
Na seção Security Token Service (STS), encontre a região da conta associada ao ambiente de sala limpa e mude para Active.
Na navegação da esquerda, selecione Policies.
Selecione Create policy.
Na seção Policy editor, selecione JSON.
Copie e cole o seguinte corpo de política no editor de política e edite o JSON para incluir o nome do seu bucket (
<bucket>
) e prefixo do caminho da pasta (<prefixo>
):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::<bucket>/<prefix>/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::<bucket>", "Condition": { "StringLike": { "s3:prefix": [ "<prefix>/*" ] } } } ] }
Certifique-se de manter o formato
:::
. Por exemplo, se o URI de seu bucket S3 fors3://sales/customers/
, o valor do campoResource
JSON seráarn:aws:s3:::sales/customers/*
.Selecione Next.
Insira um nome de política (por exemplo,
snowflake_cleanroom_access
) e selecione Create policy.
Criação de uma função IAM no AWS¶
A função AWS IAM representa a identidade do conector. Durante o processo de criação, você associa a função à nova política IAM que concede as permissões necessárias para que o conector acesse o bucket S3.
Para criar uma nova função IAM:
No painel Console Home em AWS, selecione Identity and Access Management (IAM).
Na navegação da esquerda, selecione Roles.
Selecione Create role.
Na seção Trusted entity type, selecione AWS account.
Na seção An AWS account, selecione Another AWS account.
No campo Account ID, insira um valor de espaço reservado temporário com 12 dígitos (por exemplo, o identificador da conta AWS atual). Você substituirá esse valor mais tarde.
Selecione Require external id e depois insira um valor de espaço reservado temporário, como
0000
. Você substituirá esse valor mais tarde.Selecione Next.
Na seção Permissions policies, encontre a política que você criou no procedimento anterior e marque sua caixa de seleção.
Selecione Next.
Insira um nome de função (por exemplo,
snowflake_cleanroom_connector
) e selecione Create role.
Cópia do bucket S3 e dos identificadores de função IAM¶
Ao criar o conector no ambiente de sala limpa, você precisa dos identificadores do bucket S3 e da função IAM. Antes de criar o conector, siga estas etapas para copiar e salvar esses identificadores:
Para copiar o identificador de função IAM:
No painel Console Home em AWS, selecione Identity and Access Management (IAM).
Na navegação da esquerda, selecione Roles.
Encontre a função que você criou no procedimento anterior e selecione-a para abri-la.
Na seção Summary, encontre ARN e selecione o ícone de cópia. Salve este identificador de função para uma etapa posterior.
Para copiar o identificador do bucket S3:
No painel Console Home em AWS, selecione S3.
Encontre o nome de seu bucket S3 e selecione-o para abri-lo. O bucket deve conter os dados que você deseja incluir na sala limpa.
Navegue até o prefixo do bucket e selecione Copy S3 URI. Salve este identificador de bucket para uma etapa posterior.
Não tente selecionar o botão na seção Objects.
Criação do conector e cópia dos detalhes da conta de serviço¶
Agora você está pronto para criar o conector no ambiente de sala limpa. Depois de criar o conector, copie os detalhes sobre sua conta de serviço para que ele possa ser associado à função IAM em AWS.
Para criar o conector em seu ambiente de sala limpa:
Navegue até a página de login do Snowflake Data Clean Rooms.
Digite seu endereço de e-mail e selecione Continue.
Insira sua senha.
Se você estiver associado a vários ambientes de sala limpa, selecione a conta Snowflake que deseja usar.
No painel de navegação à esquerda, selecione Connectors e expanda a seção Amazon Web Services.
No campo AWS Role ARN, insira o identificador da função IAM que você copiou do AWS como
arn:aws:iam::772412615275:role/mub00002_vhb71832_role
.No campo S3 Bucket URI, insira o identificador do bucket S3 que você copiou do AWS, como
s3://sales/customer_data/
.Selecione Create.
A sala limpa gera uma conta de serviço que ela usa para acessar o AWS.
Use o ícone de cópia para copiar os identificadores Principal e External ID da conta de serviço do conector e salve-os para o próximo procedimento.
Atualização da função IAM com detalhes da conta de serviço¶
Agora você está pronto para atualizar a função IAM com os identificadores associados à conta de serviço do conector. Para atualizar a função IAM:
Faça login na AWS Management Console.
No painel Console Home, selecione Identity and Access Management (IAM).
Na navegação da esquerda, selecione Roles.
Encontre a função que você criou anteriormente e selecione-a para abri-la.
Selecione a guia Trust relationships.
Selecione Edit trust policy.
Modifique o JSON da política de confiança para incluir os identificadores da conta de serviço do conector. Você copiou esses identificadores anteriormente. Fazer as seguintes mudanças em JSON:
Substitua o valor do campo
AWS
JSON pelo valor Principal que você copiou do ambiente de sala limpa.No exemplo a seguir, o valor de Principal no ambiente de sala limpa é
arn:aws:iam::115136555074:user/x4gy-s-p2345g38
.Substitua o valor do campo
sts:ExternalId
JSON pelo valor External ID que você copiou do ambiente de sala limpa.No exemplo a seguir, o valor de External ID no ambiente de sala limpa é
UCA56729_SFCRole=4447_uht2344sdf3mrWLNRM0y3bE=
.{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::115136555074:user/x4gy-s-p2345g38" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "UCA56729_SFCRole=4447_uht2344sdf3mrWLNRM0y3bE=" } } } ] }
Selecione Update policy.
Autenticação do conector¶
Agora você está pronto para autenticar o conector e garantir que ele possa acessar o bucket S3. Para autenticar o conector:
Se você estiver desconectado do ambiente de sala limpa, consulte Faça login no aplicativo da Web..
No ambiente de sala limpa, selecione Connectors e expanda a seção Amazon Web Services.
Selecione o bucket S3 ao qual você está se conectando e, em seguida, selecione Authenticate.
Remoção do acesso a dados externos no AWS¶
Para remover o acesso a um bucket S3 de um ambiente de sala limpa:
Navegue até a página de login do Snowflake Data Clean Rooms.
Digite seu endereço de e-mail e selecione Continue.
Insira sua senha.
Se você estiver associado a vários ambientes de sala limpa, selecione a conta Snowflake que deseja usar.
No painel de navegação à esquerda, selecione Connectors e expanda a seção Amazon Web Services.
Encontre o bucket S3 que está conectado no momento e selecione o ícone de lixeira.