View a markdown version of this page

Acesso baseado em caminhos do S3 usando Lake Formation para Amazon EMR Spark - 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á.

Acesso baseado em caminhos do S3 usando Lake Formation para Amazon EMR Spark

Com as versões 7.13.0 e posteriores do Amazon EMR, você pode usar o plug-in AWS Lake Formation Access Grants para obter credenciais temporárias para caminhos do S3 registrados no Lake Formation. Isso permite que as consultas do Spark que fazem referência direta aos caminhos do S3 usem as Formation-vended credenciais do Lake, além da venda de credenciais existente com base no nome da tabela fornecida pelo Full Table Access (FTA).

O plug-in Lake Formation Access Grants se integra ao sistema de arquivos S3A no Spark. Quando ativado, o S3A usa o plug-in para chamar a GetTemporaryDataLocationCredentialsAPI Lake Formation para obter credenciais temporárias para caminhos do S3 que pertencem às tabelas do Lake. Formation-registered

Esse plug-in é útil quando seus trabalhos do Spark leem ou gravam dados referenciando caminhos do S3 diretamente (por exemplo,spark.read.parquet("s3a://my-bucket/my-table/")) em vez de usar nomes de tabelas. O plug-in também oferece suporte opcional às credenciais de função do S3 Access Grants ou do IAM quando o acesso ao Lake Formation é negado.

Relação com o Full Table Access (FTA)

O recurso Full Table Access existente usa a GetTemporaryGlueTableCredentialsAPI, que vende credenciais com base nos nomes das tabelas. O plug-in Lake Formation Access Grants usa a GetTemporaryDataLocationCredentialsAPI, que vende credenciais com base nos caminhos do S3.

Você pode usar os dois recursos juntos. Quando ambas estão habilitadas, as credenciais de FTA têm precedência para consultas de nomes de tabelas, enquanto o plug-in lida com consultas diretas de caminhos do S3.

Pré-requisitos

Antes de usar o plug-in Lake Formation Access Grants, conclua as seguintes etapas:

  • Configure o Full Table Access (FTA) para seu ambiente Amazon EMR. Para instruções, consulte .

  • No console do Lake Formation, registre o caminho do S3 com a conta do proprietário:

    1. Navegue até os locais do Data Lake.

    2. Selecione o local e ative Registrar caminho S3 com a conta do proprietário.

  • Conceda à função de tempo de execução as permissões apropriadas do Lake Formation na tabela:

    • Para ler os dados da tabela, conceda SELECT permissão total à função de tempo de execução na tabela.

    • Para modificar os dados da tabela, conceda a SUPER permissão da função de tempo de execução na tabela.

Ative o plug-in Lake Formation Access Grants

Para ativar o plug-in, defina as seguintes propriedades de configuração do S3A em sua sessão do Spark:

Propriedades de configuração do plugin Lake Formation Access Grants
Propriedade Padrão Description
fs.s3a.lakeformation.access.grants.enabled FALSE Ativa o plug-in Lake Formation Access Grants.
fs.s3a.lakeformation.access.grants.fallback.to.iam FALSE Permite o retorno às concessões de acesso do S3 ou às credenciais da função do IAM se o Lake Formation negar o acesso.

Comportamento de fallback

Quando fs.s3a.lakeformation.access.grants.fallback.to.iam está definido comotrue, o plug-in usa uma cadeia de fallback se o Lake Formation negar o acesso. Isso é útil em cenários em que alguns caminhos do S3 são registrados no Lake Formation e outros são gerenciados por meio do S3 Access Grants ou políticas do IAM.

Quando o fallback está ativado, o plug-in tenta obter as credenciais na seguinte ordem:

  1. Lake Formation — O plugin chama GetTemporaryDataLocationCredentials. Se o Lake Formation conceder acesso, o plug-in retornará essas credenciais.

  2. S3 Access Grants — Se o Lake Formation negar o acesso, o plug-in verifica se o S3 Access Grants pode fornecer credenciais para o caminho solicitado. Se uma instância do S3 Access Grants cobrir o caminho e o chamador tiver uma concessão correspondente, o plug-in usará essas credenciais.

  3. Função do IAM — Se tanto o Lake Formation quanto o S3 Access Grants negarem acesso, o plug-in retornará às credenciais da função do IAM anexadas ao trabalho.

Considerações e limitações

  • O plug-in suporta os formatos de tabela Apache Hive, Apache Hudi e Delta Lake. O Apache Iceberg não é suportado atualmente.

  • Atualmente, o plug-in não é compatível com o modo Amazon EMR Spark Fine-Grained Access Control (FGAC).

  • Path-based a venda de credenciais requer um mapeamento 1:1 entre uma tabela e sua localização no S3 no AWS Glue Data Catalog.