Configurar o acesso entre contas do AWS Glue no Athena para Spark - Amazon Athena

Configurar o acesso entre contas do AWS Glue no Athena para Spark

Este tópico mostra como a conta do consumidor 666666666666 e a conta do proprietário 999999999999 podem ser configuradas para acesso entre contas do AWS Glue. Quando as contas são configuradas, a conta do consumidor pode executar consultas do Athena para Spark nos bancos de dados e tabelas do AWS Glue do proprietário.

Etapa 1: fornecer acesso aos perfis de consumidor no AWS Glue

No AWS Glue, o proprietário cria uma política que fornece aos perfis do consumidor acesso ao catálogo de dados do AWS Glue do proprietário.

Adicionar uma política do AWS Glue que permita que um perfil de consumidor acesse o catálogo de dados do proprietário
  1. Usando a conta do proprietário do catálogo, faça login no AWS Management Console.

  2. Abra o console do AWS Glue em https://console.aws.amazon.com/glue/.

  3. No painel de navegação, expanda Data Catalog e escolha Configurações do catálogo.

  4. Na página Configurações do catálogo de dados, na seção Permissões, adicione uma política como a seguir. Essa política fornece perfis para a conta do consumidor 666666666666 acessar o catálogo de dados na conta do proprietário 999999999999.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Cataloguers", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::666666666666:role/Admin", "arn:aws:iam::666666666666:role/AWSAthenaSparkExecutionRole" ] }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-west-2:999999999999:catalog", "arn:aws:glue:us-west-2:999999999999:database/*", "arn:aws:glue:us-west-2:999999999999:table/*" ] } ] }

Etapa 2: configurar a conta de consumidor para acesso

Na conta do consumidor, crie uma política para permitir o acesso ao AWS Glue Data Catalog, aos bancos de dados e às tabelas do proprietário e anexe a política a um perfil. O exemplo a seguir usa a conta de consumidor 666666666666.

Criar uma política do AWS Glue para acesso ao AWS Glue Data Catalog do proprietário
  1. Usando a conta do consumidor, faça login no AWS Management Console.

  2. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  3. No painel de navegação, expanda Gerenciamento de acesso e escolha Políticas.

  4. Escolha Criar política.

  5. Na página Especificar permissões, escolha JSON.

  6. No Editor de políticas, insira uma instrução JSON como a seguir que permite ações do AWS Glue no catálogo de dados da conta do proprietário.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1:999999999999:catalog", "arn:aws:glue:us-east-1:999999999999:database/*", "arn:aws:glue:us-east-1:999999999999:table/*" ] } ] }
  7. Escolha Próximo.

  8. Na página Revisar e criar, para Nome da política, insira um nome para a política.

  9. Escolha Criar política.

Em seguida, você usa o console do IAM na conta do consumidor para anexar a política que você acabou de criar ao perfil ou aos perfis do IAM que a conta do consumidor usará para acessar o catálogo de dados do proprietário.

Anexar a política do AWS Glue  aos perfis na conta do consumidor
  1. No painel de navegação do console do IAM da conta do consumidor, escolha Perfis.

  2. Na página Perfis, encontre o perfil ao qual você deseja anexar a política.

  3. Escolha Adicionar permissões e depois Anexar políticas.

  4. Encontre a política que você acabou de criar.

  5. Marque a caixa de seleção da política e escolha Adicionar permissões.

  6. Repita as etapas para adicionar a política a outros perfis que você deseja usar.

Etapa 3: configurar uma sessão e criar uma consulta

No Athena Spark, na conta do solicitante, usando o perfil especificado, crie uma sessão para testar o acesso criando um caderno ou editando uma sessão atual. Ao configurar as propriedades da sessão, especifique uma das seguintes opções:

  • O separador de catálogo do AWS Glue: com essa abordagem, você inclui o ID da conta do proprietário em suas consultas. Use esse método se você for usar a sessão para consultar catálogos de dados de diferentes proprietários.

  • O ID do catálogo do AWS Glue: com essa abordagem, você consulta o banco de dados diretamente. Esse método será mais conveniente se você for usar a sessão para consultar o catálogo de dados de somente um proprietário.

Ao editar as propriedades da sessão, adicione o seguinte:

{ "spark.hadoop.aws.glue.catalog.separator": "/" }

Ao executar uma consulta em uma célula, use uma sintaxe como a do exemplo a seguir. Observe que na cláusula FROM, o separador e o ID do catálogo e são necessários antes do nome do banco de dados.

df = spark.sql('SELECT requestip, uri, method, status FROM `999999999999/mydatabase`.cloudfront_logs LIMIT 5') df.show()

Ao editar as propriedades da sessão, insira a propriedade a seguir. Substitua 999999999999 pelo ID da conta do proprietário.

{ "spark.hadoop.hive.metastore.glue.catalogid": "999999999999" }

Ao executar uma consulta em uma célula, use uma sintaxe como a seguir. Observe que na cláusula FROM, o separador e ID do catálogo não são necessários antes do nome do banco de dados.

df = spark.sql('SELECT * FROM mydatabase.cloudfront_logs LIMIT 10') df.show()

Recursos adicionais

Configurar o acesso entre contas aos catálogos de dados do AWS Glue

Managing cross-account permissions using both AWS Glue and Lake Formation no Guia do desenvolvedor do AWS Lake Formation.

Configure o acesso entre contas para um AWS Glue Data Catalog compartilhado usando o Amazon Athena nos Padrões de orientação prescritiva da AWS.