Habilite o Lake Formation com a Amazon EMR - Amazon EMR

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

Habilite o Lake Formation com a Amazon EMR

Com o Amazon EMR 6.15.0 e superior, quando você executa trabalhos do Spark na Amazon EMR em EC2 clusters que acessam dados no AWS Glue Data Catalog, você pode usar AWS Lake Formation para aplicar permissões em nível de tabela, linha, coluna e célula em tabelas baseadas em Hudi, Iceberg ou Delta Lake.

Nesta seção, abordamos como criar uma configuração de segurança e configurar o Lake Formation para trabalhar com a AmazonEMR. Também veremos como iniciar um cluster com a configuração de segurança criada para o Lake Formation.

Etapa 1: configurar uma função de tempo de execução para seu EMR cluster

Para usar uma função de tempo de execução para seu EMR cluster, você deve criar uma configuração de segurança. Com uma configuração de segurança, você pode aplicar opções consistentes de segurança, autorização e autenticação nos clusters.

  1. Crie um arquivo chamado lf-runtime-roles-sec-cfg.json com a configuração a seguir.

    { "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
  2. Em seguida, para garantir que a etiqueta da sessão possa autorizar o Lake Formation, defina a propriedade LakeFormationConfiguration/AuthorizedSessionTagValue como Amazon EMR.

  3. Use o comando a seguir para criar a configuração EMR de segurança da Amazon.

    aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json

    Como alternativa, você pode usar o EMRconsole da Amazon para criar uma configuração de segurança com configurações personalizadas.

Etapa 2: iniciar um EMR cluster da Amazon

Agora você está pronto para iniciar um EMR cluster com a configuração de segurança criada na etapa anterior. Para obter mais informações sobre configurações de segurança, consulte Usar configurações de segurança para definir a segurança do cluster e Funções de tempo de execução para Amazon EMR Steps.

Etapa 3a: Configurar permissões em nível de tabela baseadas no Lake Formation com funções de tempo de execução da Amazon EMR

Se você não precisar de um controle de acesso refinado no nível de coluna, linha ou célula, poderá configurar permissões no nível de tabela com o Glue Data Catalog. Para habilitar o acesso em nível de tabela, navegue até o AWS Lake Formation console e selecione a opção Configurações de integração de aplicativos na seção Administração na barra lateral. Em seguida, habilite a seguinte opção e escolha Salvar:

Permitir que mecanismos externos acessem dados em locais do Amazon S3 com acesso total à tabela

Filtragem de dados externos do Lake Formation

Etapa 3b: Configurar permissões em nível de coluna, linha ou célula baseadas no Lake Formation com funções de tempo de execução da Amazon EMR

Para aplicar permissões no nível de tabela e coluna com o Lake Formation, o administrador do data lake no Lake Formation deve definir o Amazon EMR como o valor da configuração da tag de sessão, AuthorizedSessionTagValue. O Lake Formation usa essa etiqueta de sessão para autorizar os chamadores e fornecer acesso ao data lake. Você pode definir essa etiqueta de sessão na seção Filtragem de dados externos do console do Lake Formation. Substituir 123456789012 com sua própria Conta da AWS identidade.

Filtragem de dados externos do Lake Formation

Etapa 4: Configurar subsídios do AWS Glue e do Lake Formation para funções EMR de tempo de execução da Amazon

Para continuar com a configuração do controle de acesso baseado em Lake Formation com funções de tempo de EMR execução da Amazon, você deve configurar subsídios do AWS Glue e do Lake Formation para funções EMR de tempo de execução da Amazon. Para permitir que suas funções IAM de tempo de execução interajam com o Lake Formation, conceda a elas acesso com lakeformation:GetDataAccess glue:Get* e.

As permissões do Lake Formation controlam o acesso aos recursos do AWS Glue Data Catalog, aos locais do Amazon S3 e aos dados subjacentes nesses locais. IAMas permissões controlam o acesso ao Lake Formation, ao AWS Glue APIs e aos recursos. Embora você possa ter a permissão do Lake Formation para acessar uma tabela no catálogo de dados (SELECT), sua operação falhará se você não tiver a IAM permissão no glue:Get*API. Para obter mais detalhes sobre o controle de acesso do Lake Formation, consulte a visão geral do controle de acesso do Lake Formation.

  1. Crie o arquivo emr-runtime-roles-lake-formation-policy.json com o conteúdo a seguir.

    { "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
  2. Crie a IAM política relacionada.

    aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
  3. Para atribuir essa política às suas funções IAM de tempo de execução, siga as etapas em Gerenciamento de AWS Lake Formation permissões.

Já é possível usar perfis de runtime e o Lake Formation para aplicar permissões em nível de tabela e coluna. Você também pode usar uma identidade de origem para controlar ações e monitorar operações com AWS CloudTrail. Para obter um end-to-end exemplo detalhado, consulte Introdução às funções de tempo de execução para EMR as etapas da Amazon.