Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Configurar o acesso entre contas para um Catálogo de Dados do AWS Glue compartilhado usando o Amazon Athena - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar o acesso entre contas para um Catálogo de Dados do AWS Glue compartilhado usando o Amazon Athena

Criado por Denis Avdonin (AWS)

Resumo

Esse padrão fornece step-by-step instruções, incluindo exemplos de políticas do AWS Identity and Access Management (IAM), para configurar o compartilhamento entre contas de um conjunto de dados armazenado em um bucket do Amazon Simple Storage Service (Amazon S3) usando o AWS Glue Data Catalog. Você pode armazenar o conjunto de dados em um bucket do S3. Os metadados são coletados por um crawler do AWS Glue e colocados no catálogo de dados do AWS Glue. O bucket do S3 e o Catálogo de Dados do AWS Glue residem em uma conta da AWS chamada de conta de dados. Você pode fornecer acesso às entidades principais do IAM em outra conta da AWS chamada de conta do consumidor. Os usuários podem consultar os dados na conta do consumidor usando o mecanismo de consulta de tecnologia sem servidor Amazon Athena.

Pré-requisitos e limitações

Pré-requisitos

Versões do produto

Esse padrão funciona somente com a versão 2 do mecanismo Athena e a versão 3 do mecanismo Athena. Recomendamos que você faça upgrade para a versão 3 do mecanismo Athena. Se você não conseguir fazer o upgrade da versão 1 do mecanismo Athena para a versão 3, siga a abordagem do Acesso entre contas ao Catálogo de Dados do AWS Glue com o Amazon Athena no blog de Big Data da AWS.

Arquitetura

Pilha de tecnologias de destino

  • Amazon Athena

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Glue

  • AWS Identity and Access Management (IAM)

  • AWS Key Management Service (AWS KMS)

O diagrama a seguir mostra uma arquitetura que usa permissões do IAM para compartilhar dados em um bucket do S3 em uma conta da AWS (conta de dados) com outra conta da AWS (conta de consumidor) por meio do Catálogo de Dados do AWS Glue.

Compartilhamento de um conjunto de dados em um bucket S3 entre uma conta de dados e uma conta de consumidor usando o AWS Glue Data Catalog.

O diagrama mostra o seguinte fluxo de trabalho:

  1. A política de bucket do S3 na conta de dados concede permissões para um perfil do IAM na conta do consumidor e para o perfil de serviço do crawler AWS Glue na conta de dados.

  2. A política de chaves do AWS KMS na conta de dados concede permissões para o perfil do IAM na conta do consumidor e para o perfil de serviço do crawler AWS Glue na conta de dados.

  3. O crawler do AWS Glue na conta de dados descobre o esquema dos dados armazenados no bucket do S3.

  4. A política de recursos do Catálogo de Dados do AWS Glue na conta de dados concede acesso ao perfil do IAM na conta do consumidor.

  5. Um usuário cria uma referência de catálogo nomeada na conta do consumidor usando um comando da AWS CLI.

  6. Uma política do IAM concede a um perfil do IAM na conta do consumidor acesso aos recursos na conta de dados. A política de confiança da função do IAM permite que os usuários na conta do consumidor assumam a função do IAM.

  7. Um usuário na conta do consumidor assume o perfil do IAM e acessa objetos no catálogo de dados usando consultas SQL.

  8. O mecanismo de tecnologia sem servidor do Athena executa as consultas SQL.

nota

As melhores práticas do IAM recomendam que você conceda permissões para uma função do IAM e use a federação de identidades.

Ferramentas

  • O Amazon Athena é um serviço de consultas interativas que facilita a análise de dados diretamente no Amazon S3 usando SQL padrão.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

  • O AWS Glue é um serviço de extração, transformação e carregamento (ETL) totalmente gerenciado. Ele ajuda você a categorizar de forma confiável, limpar, enriquecer e mover dados de forma confiável entre armazenamento de dados e fluxos de dados.

  • O AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.

  • O AWS Key Management Service (AWS KMS) ajuda você a criar e controlar chaves criptográficas para proteger seus dados.

Épicos

TarefaDescriçãoHabilidades necessárias

Conceder acesso aos dados no bucket do S3.

Crie uma política de bucket do S3 com base no modelo a seguir e atribua a política ao bucket em que os dados estão armazenados.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }

A política de bucket concede permissões para o perfil do IAM na conta do consumidor e para o perfil de serviço do crawler AWS Glue na conta de dados.

Administrador de nuvem

(Se necessário) Conceder acesso à chave de criptografia de dados.

Se o bucket do S3 for criptografado por uma chave do AWS KMS, conceda permissão kms:Decrypt na chave para o perfil do IAM na conta do consumidor e para o perfil de serviço do crawler do AWS Glue na conta de dados.

Atualize a política de chave com a seguinte instrução:

{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Administrador de nuvem

Conceder ao crawler o acesso aos dados.

Anexe a seguinte política do IAM ao perfil de serviço do crawler:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }
Administrador de nuvem

(Se necessário) Conceder ao crawler o acesso à chave de criptografia de dados.

Se o bucket do S3 for criptografado por uma chave do AWS KMS, conceda a permissão kms:Decrypt sobre a chave para o perfil de serviço do crawler, anexando a ela a seguinte política:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Administrador de nuvem

Conceder ao perfil do IAM na conta do consumidor e ao crawler o acesso ao catálogo de dados.

  1. Faça login no Console de Gerenciamento da AWS e abra o Console do AWS Glue.

  2. No painel de navegação, em Catálogo de dados, escolha Configurações.

  3. Na seção Permissões, adicione a seguinte declaração e escolha Salvar.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action" : "glue:*", "Resource" : [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Essa política permite todas as ações do AWS Glue em todos os bancos de dados e tabelas na conta de dados. Você pode personalizar a política para conceder somente as permissões necessárias aos consumidores das entidades principais. Por exemplo, você pode fornecer acesso somente de leitura a tabelas ou visualizações específicas em um banco de dados.

Administrador de nuvem

Configurar permissões na conta de dados

TarefaDescriçãoHabilidades necessárias

Conceder acesso aos dados no bucket do S3.

Crie uma política de bucket do S3 com base no modelo a seguir e atribua a política ao bucket em que os dados estão armazenados.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }

A política de bucket concede permissões para o perfil do IAM na conta do consumidor e para o perfil de serviço do crawler AWS Glue na conta de dados.

Administrador de nuvem

(Se necessário) Conceder acesso à chave de criptografia de dados.

Se o bucket do S3 for criptografado por uma chave do AWS KMS, conceda permissão kms:Decrypt na chave para o perfil do IAM na conta do consumidor e para o perfil de serviço do crawler do AWS Glue na conta de dados.

Atualize a política de chave com a seguinte instrução:

{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Administrador de nuvem

Conceder ao crawler o acesso aos dados.

Anexe a seguinte política do IAM ao perfil de serviço do crawler:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }
Administrador de nuvem

(Se necessário) Conceder ao crawler o acesso à chave de criptografia de dados.

Se o bucket do S3 for criptografado por uma chave do AWS KMS, conceda a permissão kms:Decrypt sobre a chave para o perfil de serviço do crawler, anexando a ela a seguinte política:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Administrador de nuvem

Conceder ao perfil do IAM na conta do consumidor e ao crawler o acesso ao catálogo de dados.

  1. Faça login no Console de Gerenciamento da AWS e abra o Console do AWS Glue.

  2. No painel de navegação, em Catálogo de dados, escolha Configurações.

  3. Na seção Permissões, adicione a seguinte declaração e escolha Salvar.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action" : "glue:*", "Resource" : [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Essa política permite todas as ações do AWS Glue em todos os bancos de dados e tabelas na conta de dados. Você pode personalizar a política para conceder somente as permissões necessárias aos consumidores das entidades principais. Por exemplo, você pode fornecer acesso somente de leitura a tabelas ou visualizações específicas em um banco de dados.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Criar uma referência nomeada para o catálogo de dados.

Para criar uma referência de catálogo de dados nomeada, use CloudShellou uma AWS CLI instalada localmente para executar o seguinte comando:

aws athena create-data-catalog --name <shared catalog name> --type GLUE --parameters catalog-id=<data account id>
Administrador de nuvem

Conceder ao perfil do IAM na conta do consumidor o acesso aos dados.

Anexe a política a seguir ao perfil do IAM na conta do consumidor para conceder ao perfil o acesso entre contas aos dados:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" }, { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Em seguida, use o modelo a seguir para especificar quais usuários podem aceitar o perfil do IAM em sua política de confiança:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<consumer account id>:user/<IAM user>" }, "Action": "sts:AssumeRole" } ] }

Por fim, conceda permissões ao usuário para assumir o perfil do IAM anexando a mesma política ao grupo de usuários ao qual ele pertence.

Administrador de nuvem

(Se necessário) Conceder ao perfil do IAM na conta do consumidor o acesso à chave de criptografia de dados.

Se o bucket do S3 for criptografado por uma chave do AWS KMS, conceda a permissão kms:Decrypt sobre a chave para o perfil do IAM na conta do consumidor, anexando a ela a seguinte política:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Administrador de nuvem

Mudar para o perfil do IAM na conta do consumidor para acessar os dados.

Como consumidor de dados, mude para o perfil do IAM para acessar os dados na conta de dados.

Consumidor de dados

Acessar os dados.

Dados da consulta usando o Athena. Por exemplo, abra o editor de consultas do Athena e execute a seguinte consulta:

SELECT * FROM <shared catalog name>.<database name>.<table name>

Em vez de usar uma referência de catálogo nomeada, você também pode se referir ao catálogo pelo seu nome do recurso da Amazon (ARN).

nota

Se você usar uma referência de catálogo dinâmico em uma consulta ou exibição, coloque a referência entre aspas duplas de escape (\”). Por exemplo:

SELECT * FROM \"glue:arn:aws:glue:<region>:<data account id>:catalog\".<database name>.<table name>

Para obter mais informações, consulte Acesso entre contas aos catálogos de dados do AWS Glue no Guia do usuário do Amazon Athena.

Consumidor de dados

Acessar os dados da conta do consumidor

TarefaDescriçãoHabilidades necessárias

Criar uma referência nomeada para o catálogo de dados.

Para criar uma referência de catálogo de dados nomeada, use CloudShellou uma AWS CLI instalada localmente para executar o seguinte comando:

aws athena create-data-catalog --name <shared catalog name> --type GLUE --parameters catalog-id=<data account id>
Administrador de nuvem

Conceder ao perfil do IAM na conta do consumidor o acesso aos dados.

Anexe a política a seguir ao perfil do IAM na conta do consumidor para conceder ao perfil o acesso entre contas aos dados:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" }, { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Em seguida, use o modelo a seguir para especificar quais usuários podem aceitar o perfil do IAM em sua política de confiança:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<consumer account id>:user/<IAM user>" }, "Action": "sts:AssumeRole" } ] }

Por fim, conceda permissões ao usuário para assumir o perfil do IAM anexando a mesma política ao grupo de usuários ao qual ele pertence.

Administrador de nuvem

(Se necessário) Conceder ao perfil do IAM na conta do consumidor o acesso à chave de criptografia de dados.

Se o bucket do S3 for criptografado por uma chave do AWS KMS, conceda a permissão kms:Decrypt sobre a chave para o perfil do IAM na conta do consumidor, anexando a ela a seguinte política:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Administrador de nuvem

Mudar para o perfil do IAM na conta do consumidor para acessar os dados.

Como consumidor de dados, mude para o perfil do IAM para acessar os dados na conta de dados.

Consumidor de dados

Acessar os dados.

Dados da consulta usando o Athena. Por exemplo, abra o editor de consultas do Athena e execute a seguinte consulta:

SELECT * FROM <shared catalog name>.<database name>.<table name>

Em vez de usar uma referência de catálogo nomeada, você também pode se referir ao catálogo pelo seu nome do recurso da Amazon (ARN).

nota

Se você usar uma referência de catálogo dinâmico em uma consulta ou exibição, coloque a referência entre aspas duplas de escape (\”). Por exemplo:

SELECT * FROM \"glue:arn:aws:glue:<region>:<data account id>:catalog\".<database name>.<table name>

Para obter mais informações, consulte Acesso entre contas aos catálogos de dados do AWS Glue no Guia do usuário do Amazon Athena.

Consumidor de dados

Recursos relacionados

Mais informações

Usando o Lake Formation como uma alternativa para compartilhamento entre contas

Você também pode usar o AWS Lake Formation para compartilhar o acesso aos objetos do catálogo do AWS Glue entre contas. O Lake Formation fornece controle de acesso refinado no nível de coluna e linha, controle de acesso baseado em tags, tabelas governadas para transações ACID e outras funcionalidades. Embora o Lake Formation esteja bem integrado ao Athena, ele requer configuração adicional em comparação com a abordagem exclusiva de IAM desse padrão. Recomendamos que você considere a decisão de usar o Lake Formation ou os controles de acesso somente do IAM dentro do contexto mais amplo da arquitetura geral da solução. As considerações incluem quais outros serviços estão envolvidos e como eles se integram às duas abordagens.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.