Como compartilhar um data lake usando o controle de acesso refinado do Lake Formation - AWS Lake Formation

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á.

Como compartilhar um data lake usando o controle de acesso refinado do Lake Formation

Este tutorial fornece step-by-step instruções sobre como você pode compartilhar conjuntos de dados de forma rápida e fácil usando o Lake Formation ao gerenciar vários Contas da AWS com AWS Organizations. Você define permissões específicas para controlar o acesso a dados confidenciais.

Os procedimentos a seguir também mostram como um administrador de data lake da Conta A pode fornecer acesso refinado à Conta B, e como um usuário na Conta B, atuando como administrador de dados, pode conceder acesso refinado à tabela compartilhada para outros usuários em suas contas. Os administradores de dados em cada conta podem delegar o acesso de forma independente a seus próprios usuários, dando autonomia a cada equipe ou linha de negócios (LOB).

O caso de uso pressupõe que você esteja usando AWS Organizations para gerenciar seu Contas da AWS. O usuário da Conta A em uma unidade organizacional (OU1) concede acesso aos usuários da Conta B emOU2. Você pode usar a mesma abordagem quando não estiver usando organizações, como quando você tem apenas algumas contas. O diagrama a seguir ilustra o controle de acesso refinado de conjuntos de dados em um data lake. O data lake está disponível na Conta A. O administrador do data lake da Conta A fornece acesso refinado à Conta B. O diagrama também mostra que um usuário da Conta B fornece acesso em nível de coluna à tabela de data lake da Conta A para outro usuário na Conta B.

AWS Organization structure with two OUs, showing data lake access and user permissions across accounts.

Público-alvo

Este tutorial é destinado a administradores de dados, engenheiros de dados e analistas de dados. A tabela a seguir lista os perfis usados neste tutorial:

Perfil Descrição
IAMadministrador Usuário que tem a política gerenciada pela AWS : AdministratorAccess.
Administrador do data lake

Usuário que tem a política AWS AWSLakeFormationDataAdmin gerenciada: anexado à função.

Analista de dados Usuário que tem a política AWS gerenciada: AmazonAthenaFullAccess anexado.

Pré-requisitos

Antes de começar este tutorial, você deve ter um Conta da AWS que possa ser usado para entrar como usuário administrativo com as permissões corretas. Para obter mais informações, consulte Conclua AWS as tarefas de configuração inicial.

O tutorial pressupõe que você esteja familiarizado comIAM. Para obter informações sobreIAM, consulte o Guia IAM do usuário.

Você precisa dos seguintes recursos para este tutorial:
  • Duas unidades organizacionais:

    • OU1— Contém a conta A

    • OU2— Contém a conta B

  • Um local (bucket) do data lake do Amazon S3 na Conta A.

  • Um usuário administrador de data lake na Conta A. Você pode criar um administrador de data lake usando o console Lake Formation (https://console.aws.amazon.com/lakeformation/) ou a PutDataLakeSettings operação do Lake FormationAPI.

  • Lake Formation configurado na Conta A e o local do data lake do Amazon S3 registrada com o Lake Formation na Conta A.

  • Dois usuários na Conta B com as seguintes políticas IAM gerenciadas:

    • testuser1 — tem as políticas AWS AWSLakeFormationDataAdmin gerenciadas anexadas.

    • testuser2 — Tem a política AWS AmazonAthenaFullAccess gerenciada anexada.

  • Um banco de dados testdb no banco de dados Lake Formation para a Conta B.

Etapa 1: Forneça acesso refinado a outra conta

Saiba como um administrador de data lake da Conta A fornece acesso refinado à Conta B.

Conceda acesso refinado a outra conta
  1. Faça login AWS Management Console https://console.aws.amazon.com/connect/na Conta A como administrador do data lake.

  2. Abra o console do Lake Formation (https://console.aws.amazon.com/lakeformation/) e escolha Começar.

  3. no painel de navegação, escolha Bancos de dados.

  4. Selecione Criar banco de dados.

  5. Na seção informações do Banco de dados, selecione Banco de dados.

  6. Em Nome, digite um nome (para este tutorial, usamos sampledb01).

  7. Certifique-se de que a opção Usar somente controle de IAM acesso para novas tabelas nesse banco de dados não esteja selecionada. Deixar essa opção desmarcada nos permite controlar o acesso a partir do Lake Formation.

  8. Selecione Criar banco de dados.

  9. Na página Bancos de dados, selecione seu banco de dados sampledb01.

  10. No menu Ações, selecione Conceder.

  11. Na seção Conceder permissões, selecione Conta externa.

  12. Para Conta da AWS ID ou ID AWS da organização, insira o ID da conta da Conta B emOU2.

  13. Em Tabela, selecione a tabela à qual você deseja que a Conta B tenha acesso (neste caso, usamos a tabela acc_a_area). Opcionalmente, você pode conceder acesso às colunas dentro da tabela, o que fazemos neste caso.

  14. Em Incluir colunas, selecione as colunas às quais você deseja que a Conta B tenha acesso (para este caso, concedemos permissões para digitar, nomear e identificadores).

  15. Em Colunas, selecione Incluir colunas.

  16. Em Permissões de tabela, selecione Selecionar.

  17. Para Permissões concedidas, marque Selecionar. As permissões concedidas são necessárias para que os usuários administradores na Conta B possam conceder permissões a outros usuários na Conta B.

  18. Selecione Conceder.

  19. No painel de navegação, selecione Tabelas.

  20. Você pode ver uma conexão ativa na seção Contas da AWS e AWS organizações com acesso.

Crie um link de recurso

Serviços integrados, como o Amazon Athena, não podem acessar diretamente bancos de dados ou tabelas entre contas. Portanto, você precisa criar um link de recurso para que o Athena possa acessar links de recursos em sua conta para bancos de dados e tabelas em outras contas. Crie um link de recurso para a tabela (acc_a_area) para que os usuários da Conta B possam consultar seus dados com o Athena.

  1. Faça login no AWS console https://console.aws.amazon.com/connect/na Conta B comotestuser1.

  2. No console do Lake Formation (https://console.aws.amazon.com/lakeformation/), no painel de navegação, escolha Tabelas. Você deve ver as tabelas às quais a Conta A forneceu acesso.

  3. Selecione a tabela acc_a_area.

  4. No menu Ações, selecione Criar link de recurso.

  5. Em Nome do link do recurso, digite um nome (para este tutorial, acc_a_area_rl).

  6. Em Banco de dados, selecione o banco de dados (testdb).

  7. Escolha Criar.

  8. No painel de navegação, selecione Tabelas.

  9. Selecione a tabela acc_b_area_rl.

  10. No menu Ações, selecione Exibir dados.

    Você será redirecionado para o console do Athena, onde deverá ver o banco de dados e a tabela.

    Agora você pode executar uma consulta na tabela para ver o valor da coluna para o qual o acesso foi fornecido ao testuser1 da Conta B.

Etapa 2: Forneça acesso refinado a um usuário na mesma conta

Esta seção mostra como um usuário na Conta B (testuser1), atuando como administrador de dados, fornece acesso refinado a outro usuário na mesma conta (testuser2) ao nome da coluna na tabela compartilhada aac_b_area_rl.

Conceda acesso refinado a um usuário na mesma conta
  1. Faça login no AWS console https://console.aws.amazon.com/connect/na Conta B comotestuser1.

  2. No console do Lake Formation, no painel de navegação, selecione Tabelas.

    É possível conceder permissões em uma tabela por meio do link do recurso. Para fazer isso, na página Tabelas, selecione o link do recurso acc_b_area_rl, e no menu Ações, selecione Conceder no destino.

  3. Na seção Conceder permissões, selecione Minha conta.

  4. Para IAMusuários e funções, escolha o usuáriotestuser2.

  5. Em Coluna, escolha o nome da coluna.

  6. Em Permissões de tabela, selecione Selecionar.

  7. Selecione Conceder.

    Após criar um link de recurso, somente você poderá visualizá-lo e acessá-lo. Para permitir que outros usuários da sua conta acessem o link do recurso, você precisa conceder permissões no próprio link do recurso. Você precisa conceder DESCRIBEnossas DROPpermissões. Na página Tabelas, selecione sua tabela novamente e, no menu Ações, selecione Conceder.

  8. Na seção Conceder permissões, selecione Minha conta.

  9. Para IAMusuários e funções, selecione o usuáriotestuser2.

  10. Para permissões de links de recursos, selecione Descrever.

  11. Selecione Conceder.

  12. Faça login no AWS console na Conta B comotestuser2.

    No console do Athena (https://console.aws.amazon.com/athena/), você deve ver o banco de dados e a tabela. acc_b_area_rl Agora você pode executar uma consulta na tabela para ver o valor da coluna que testuser2 tem acesso.