Atualizar as permissões AWS Glue de dados para o modelo AWS Lake Formation - AWS Lake Formation

Atualizar as permissões AWS Glue de dados para o modelo AWS Lake Formation

Permissões AWS Lake Formation garantem controle de acesso para dados em seu data lake. Você pode usar o modelo de permissões do Lake Formation para gerenciar seus locais de dados e objetos do AWS Glue Data Catalog existentes no Amazon Simple Storage Service (Amazon S3).

O modelo de permissões do Lake Formation usa permissões granulares do AWS Identity and Access Management (IAM) para acesso ao serviço de API. O Lake Formation usa a funcionalidade Filtragem de dados e segurança por célula no Lake Formation para restringir o acesso à tabela em nível de coluna, linha e célula para os usuários e as respectivas aplicações. Em comparação, o modelo do AWS Glue concede acesso aos dados por meio de políticas do IAM baseadas em identidade e recursos.

Para fazer a troca, siga as etapas deste guia.

Para ter mais informações, consulte Visão geral das permissões do Lake Formation .

Sobre permissões padrão

Para manter a compatibilidade com versões anteriores do AWS Glue, por padrão, o AWS Lake Formation concede a permissão Super ao grupo IAMAllowedPrincipals em todos os recursos do AWS Glue existentes do catálogo de dados e concede a permissão Super em novos recursos do catálogo de dados se as configurações de controle de acesso usando apenas IAM estiverem ativadas. Isso efetivamente faz com que o acesso aos recursos do catálogo de dados e aos locais do Amazon S3 seja controlado exclusivamente pelas políticas do AWS Identity and Access Management (IAM). O grupo IAMAllowedPrincipals inclui todos os usuários e funções do IAM que têm permissão para acessar seus objetos do catálogo de dados por meio de suas políticas do IAM. A permissão Super possibilita que uma entidade principal execute todas as operações suportadas do Lake Formation no banco de dados ou na tabela em que ela foi concedida.

Você pode começar a usar o Lake Formation para gerenciar o acesso aos seus dados registrando os locais dos recursos existentes do catálogo de dados no Lake Formation ou usando o modo de acesso híbrido. Ao registrar a localização do Amazon S3 no modo de acesso híbrido, você pode habilitar as permissões do Lake Formation optando por entidades principais para bancos de dados e tabelas nesse local.

Para facilitar a transição das permissões do data lake de um modelo do IAM e do Amazon S3 para as permissões do Lake Formation, recomendamos que você use o modo de acesso híbrido para o catálogo de dados. Com o modo de acesso híbrido, você tem um caminho incremental em que pode habilitar as permissões do Lake Formation para um conjunto específico de usuários sem interromper outros usuários ou workloads existentes.

Para ter mais informações, consulte Modo de acesso híbrido.

Desative as configurações padrão do catálogo de dados para transferir todos os usuários existentes de uma tabela para o Lake Formation em uma única etapa.

Para começar a usar as permissões do Lake Formation com bancos de dados e tabelas do catálogo de dados do AWS Glue existentes, você deve fazer o seguinte:

  1. Determine as permissões do IAM existentes dos seus usuários para cada banco de dados e tabela.

  2. Replique essas permissões no Lake Formation.

  3. Para cada local do Amazon S3 que contém dados:

    1. Revogue a permissão Super do grupo IAMAllowedPrincipals em cada recurso do catálogo de dados que faça referência a esse local.

    2. Registre o local com o Lake Formation.

  4. Limpe as políticas do IAM de controle de acesso fino existentes.

Importante

Para adicionar novos usuários durante o processo de transição do seu catálogo de dados, você deve configurar permissões granulares do AWS Glue no IAM como antes. Você também deve replicar essas permissões no Lake Formation conforme descrito nesta seção. Se os novos usuários tiverem as políticas gerais do IAM descritas neste guia, eles poderão listar quaisquer bancos de dados ou tabelas que tenham a permissão Super concedida para IAMAllowedPrincipals. Eles também podem visualizar os metadados desses recursos.

Siga as etapas desta seção para atualizar para o modelo de permissões do Lake Formation.

Etapa 1: listar as permissões existentes dos usuários e das funções

Para começar a usar permissões do AWS Lake Formation com tabelas e bancos de dados do AWS Glue existentes, você deve primeiro determinar as permissões existentes dos seus usuários.

Importante

Antes de começar, realize as seguintes tarefas em Introdução ao Lake Formation.

Usar a operação da API

Use a operação da API ListPoliciesGrantingServiceAccess do AWS Identity and Access Management (IAM) para determinar as políticas do IAM anexadas a cada entidade principal (usuário ou função). A partir das políticas retornadas nos resultados, você pode determinar as permissões do IAM que são concedidas à entidade principal. Você deve invocar a API para cada entidade principal separadamente.

O exemplo da AWS CLI a seguir retorna a política anexada a um usuário glue_user1.

aws iam list-policies-granting-service-access --arn arn:aws:iam::111122223333:user/glue_user1 --service-namespaces glue

O comando retorna resultados semelhantes ao seguinte.

{ "PoliciesGrantingServiceAccess": [ { "ServiceNamespace": "glue", "Policies": [ { "PolicyType": "INLINE", "PolicyName": "GlueUserBasic", "EntityName": "glue_user1", "EntityType": "USER" }, { "PolicyType": "MANAGED", "PolicyArn": "arn:aws:iam::aws:policy/AmazonAthenaFullAccess", "PolicyName": "AmazonAthenaFullAccess" } ] } ], "IsTruncated": false }

Uso do AWS Management Console

Você também pode ver essas informações no console do AWS Identity and Access Management (IAM), na guia Acessar o advisor na página Resumo do usuário ou da função:

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

  2. No painel de navegação, selecione Usuários ou Funções.

  3. Escolha um nome na lista para abrir a página Resumo e escolha a guia Supervisor de Acesso.

  4. Inspecione cada uma das políticas para determinar a combinação de bancos de dados, tabelas e ações para as quais cada usuário tem permissões.

    Lembre-se de inspecionar as funções, além dos usuários, durante esse processo, pois seus trabalhos de processamento de dados podem estar assumindo funções para acessar os dados.

Utilizar o AWS CloudTrail

Outra forma de determinar suas permissões existentes é procurar no AWS CloudTrail por chamadas de API do AWS Glue, em que o campo additionaleventdata dos logs contém uma entrada insufficientLakeFormationPermissions. Essa entrada lista o banco de dados e a tabela nos quais o usuário precisa das permissões do Lake Formation para realizar a mesma ação.

Esses são logs de acesso a dados, portanto, não é garantido que produzam uma lista abrangente de usuários e suas permissões. Recomendamos escolher um intervalo de tempo amplo para capturar a maioria dos padrões de acesso aos dados de seus usuários, por exemplo, várias semanas ou meses.

Para obter mais informações, consulte Visualizar eventos com o histórico de eventos CloudTrail no Guia do usuário do AWS CloudTrail.

Em seguida, você pode configurar as permissões do Lake Formation de acordo com as permissões do AWS Glue. Consulte Etapa 2: configurar permissões equivalentes do Lake Formation.

Etapa 2: configurar permissões equivalentes do Lake Formation

Ao usar as informações coletadas em Etapa 1: listar as permissões existentes dos usuários e das funções, conceda permissões do AWS Lake Formation que correspondam às permissões do AWS Glue. Use qualquer um dos métodos a seguir para realizar as concessões:

Para ter mais informações, consulte Visão geral das permissões do Lake Formation .

Depois de configurar as permissões do Lake Formation, siga para a Etapa 3: conceder aos usuários permissões do IAM para usar o Lake Formation.

Etapa 3: conceder aos usuários permissões do IAM para usar o Lake Formation

Para usar o modelo de permissões do AWS Lake Formation, as entidades principais devem ter permissões do AWS Identity and Access Management (IAM) nas APIs do Lake Formation.

Crie a política a seguir no IAM e a anexe a todos os usuários que precisam acessar seu data lake. Atribua o nome LakeFormationDataAccess à política.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" } ] }

Em seguida, atualize para as permissões do Lake Formation, um local de dados por vez. Consulte Etapa 4: mude seus armazenamentos de dados para o modelo de permissões do Lake Formation.

Etapa 4: mude seus armazenamentos de dados para o modelo de permissões do Lake Formation

Atualize para as permissões do Lake Formation, um local de dados por vez. Para isso, repita essa seção inteira até ter registrado todos os caminhos do Amazon Simple Storage Service (Amazon S3) referenciados pelo catálogo de dados.

Verifique permissões do Lake Formation

Antes de registrar um local, execute uma etapa de verificação para garantir que as entidades principais corretas tenham as permissões necessárias para o Lake Formation e que nenhuma permissão para o Lake Formation seja concedida às entidades principais que não deveriam tê-las. Ao usar a operação da API GetEffectivePermissionsForPath do Lake Formation, identifique os recursos do catálogo de dados que fazem referência à localização do Amazon S3, junto com as entidades principais que têm permissões sobre esses recursos.

A AWS CLI de exemplo a seguir retorna os bancos de dados e tabelas do catálogo de dados que fazem referência a products do bucket do Amazon S3.

aws lakeformation get-effective-permissions-for-path --resource-arn arn:aws:s3:::products --profile datalake_admin

Observe a opção profile. Recomendamos que você execute o comando como administrador do data lake.

A seguir está um trecho dos resultados retornados.

{ "PermissionsWithGrantOption": [ "SELECT" ], "Resource": { "TableWithColumns": { "Name": "inventory_product", "ColumnWildcard": {}, "DatabaseName": "inventory" } }, "Permissions": [ "SELECT" ], "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1", "DataLakePrincipalType": "IAM_USER" } },...
Importante

Se o catálogo de dados do AWS Glue estiver criptografado, GetEffectivePermissionsForPath retornará somente bancos de dados e tabelas que foram criados ou modificados após a disponibilidade geral do Lake Formation.

Proteja os recursos existentes do catálogo de dados

Em seguida, revogue a permissão Super de cada tabela e banco de dados IAMAllowedPrincipals que você identificou para o local.

Atenção

Se você tiver uma automação que cria bancos de dados e tabelas no catálogo de dados, as etapas a seguir podem fazer com que as tarefas de automação e extração, transformação e carregamento (ETL) posteriores falhem. Prossiga somente depois de modificar seus processos existentes ou conceder permissões explícitas do Lake Formation às entidades principais necessárias. Para obter informações sobre as permissões do Lake Formation, consulte Referência de permissões do Lake Formation.

Para revogar Super de IAMAllowedPrincipals em uma tabela
  1. Abra o console do AWS Lake Formation em https://console.aws.amazon.com/lakeformation/. Faça login como administrador de data lake.

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

  3. Na página Tabelas, selecione o botão de opção ao lado da tabela desejada.

  4. No menu Ações, selecione Revogar.

  5. Na caixa de diálogo Revogar permissões, na lista de usuários e funções do IAM, role para baixo até o título Grupo e escolha IAMAllowedPrincipals.

  6. Em Permissões da tabela, verifique se a opção Super está selecionada e escolha Revogar.

Para revogar Super de IAMAllowedPrincipals em um banco de dados
  1. Abra o console do AWS Lake Formation em https://console.aws.amazon.com/lakeformation/. Faça login como administrador de data lake.

  2. No painel de navegação, escolha Bancos de dados.

  3. Na página Banco de dados, selecione o botão de opção ao lado do banco de dados desejado.

  4. No menu Ações, escolha Editar.

  5. Na página Editar banco de dados, desmarque Usar somente o controle de acesso do IAM para novas tabelas nesse banco de dados e escolha Salvar.

  6. De volta à página Banco de dados, verifique se o banco de dados ainda está selecionado e, no menu Ações, escolha Revogar.

  7. Na caixa de diálogo Revogar permissões, na lista de usuários e funções do IAM, role para baixo até o título Grupo e escolha IAMAllowedPrincipals.

  8. Em Permissões de banco de dados, verifique se a opção Super está selecionada e escolha Revogar.

Ative as permissões do Lake Formation para sua localização no Amazon S3

Em seguida, registre o local do Amazon S3 com o Lake Formation. Para isso, você pode usar o processo descrito em Adicionar uma localização do Amazon S3 ao seu data lake. Ou utilize a operação da API RegisterResource, conforme descrito em APIs de fornecimento de credenciais.

nota

Se o local pai estiver registrado, você não precisa registrar locais filho.

Depois de concluir essas etapas e testar se seus usuários podem acessar seus dados, você atualizou com sucesso para as permissões do Lake Formation. Continue na próxima etapa, Etapa 5: proteja os novos recursos do catálogo de dados.

Etapa 5: proteja os novos recursos do catálogo de dados

Em seguida, assegure todos os novos recursos do catálogo de dados alterando as configurações padrão do catálogo de dados. Desative as opções de usar somente o controle de acesso do AWS Identity and Access Management (IAM) para novos bancos de dados e tabelas.

Atenção

Se você tiver uma automação que cria bancos de dados e tabelas no catálogo de dados, as etapas a seguir podem fazer com que as tarefas de automação e extração, transformação e carregamento (ETL) posteriores falhem. Prossiga somente depois de modificar seus processos existentes ou conceder permissões explícitas do Lake Formation às entidades principais necessárias. Para obter informações sobre as permissões do Lake Formation, consulte Referência de permissões do Lake Formation.

Para alterar as configurações padrão do catálogo de dados
  1. Abra o console do AWS Lake Formation em https://console.aws.amazon.com/lakeformation/. Faça login como usuário administrativo do IAM (o usuário Administrator ou outro usuário com a política AdministratorAccess AWS gerenciada).

  2. No painel de navegação, selecione Configurações.

  3. Na página Configurações do catálogo de dados, desmarque as duas caixas de seleção e escolha Salvar.

A próxima etapa é conceder aos usuários acesso a bancos de dados ou tabelas adicionais no futuro. Consulte Etapa 6: fornecer aos usuários uma nova política do IAM para acesso futuro ao data lake.

Etapa 6: fornecer aos usuários uma nova política do IAM para acesso futuro ao data lake

Para conceder aos seus usuários acesso a bancos de dados ou tabelas adicionais do Data Catalog no futuro, você deve fornecer a eles a política em linha de granularidade geral do AWS Identity and Access Management (IAM) que segue. Atribua o nome GlueFullReadAccess à política.

Importante

Se você anexar essa política a um usuário antes da revogação de Super de IAMAllowedPrincipals em cada banco de dados e tabela em seu catálogo de dados, esse usuário poderá visualizar todos os metadados de qualquer recurso ao qual Super tenha sido concedido a IAMAllowedPrincipals.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueFullReadAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions" ], "Resource": "*" } ] }
nota

As políticas em linha designadas nesta etapa e nas etapas anteriores contêm permissões mínimas do IAM. Para políticas sugeridas para administradores de data lake, analistas de dados e outras pessoas, consulte Referência de personas e permissões do IAM do Lake Formation.

Em seguida, prossiga para a Etapa 7: limpar políticas do IAM existentes.

Etapa 7: limpar políticas do IAM existentes

Depois de configurar as permissões do AWS Lake Formation e criar e anexar as políticas gerais de controle de acesso do AWS Identity and Access Management (IAM), conclua a seguinte etapa final:

  • Remova dos usuários, grupos e funções que as antigas políticas de controle de acesso refinado do IAM que você replicou no Lake Formation.

Ao fazer isso, você garante que essas entidades principais não tenham mais acesso direto aos dados no Amazon Simple Storage Service (Amazon S3). Em seguida, você pode gerenciar o acesso dessas entidades principais ao data lake inteiramente por meio do Lake Formation.