View a markdown version of this page

Acessando locais do Amazon S3 - 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á.

Acessando locais do Amazon S3

AWS Lake Formation permite que você leia e grave os arquivos de dados subjacentes no Amazon Simple Storage Service (Amazon S3) para tabelas registradas AWS Glue Data Catalog no (Catálogo de dados). Isso fornece um único conjunto de permissões para consultas SQL e acesso direto a arquivos usando suas concessões de tabela existentes do Lake Formation. A Lake Formation estende sua funcionalidade de venda de credenciais para locais do Amazon S3 registrados no catálogo de dados. Quando seu aplicativo solicita acesso aos arquivos do Amazon S3 subjacentes a uma tabela do Catálogo de Dados, o Lake Formation avalia as permissões existentes em nível de tabela do chamador e, se autorizado, retorna credenciais do Amazon S3 com escopo curto para a localização registrada dessa tabela.

Habilite o acesso direto aos locais do Amazon S3

Para habilitar esse recurso, você deve concluir as etapas a seguir.

Pré-requisitos

Preencha os seguintes pré-requisitos antes de ativar o sinalizador de recurso:

  • Registre locais do Amazon S3 — Catalogue suas tabelas no catálogo de dados de seus locais do Amazon S3 e registre-as no Lake Formation fornecendo a conta do proprietário do bucket do Amazon S3. Quando você registra um local, esse caminho do Amazon S3 e todas as pastas sob esse caminho são registrados. Para obter mais informações, consulte Registrando uma localização do Amazon S3.

  • Conceda permissões do Lake Formation — Conceda permissões do Lake Formation SELECT (ouSUPER) em tabelas para seus cientistas de dados e aplicativos usando o console ou as APIs do Lake Formation. Se você já usa o Lake Formation para acessar tabelas com serviços como Athena ou Amazon EMR, isso já está configurado.

  • Habilitar integração de aplicativos com acesso total à tabela — Ative a integração de aplicativos com acesso total à tabela para permitir a venda de credenciais para o local da tabela registrada. Para obter mais informações, consulte Integração de aplicativos para acesso total à tabela.

Ativar o sinalizador de recurso

Ative a fs.s3a.lakeformation.access.grants.enabled bandeira nos mecanismos compatíveis:

fs.s3a.lakeformation.access.grants.enabled = true
  • Amazon EMR no Amazon EC2 — EMR 7.13 ou posterior

  • Amazon EMR no EKS — EMR 7.13 ou posterior

  • Amazon EMR Serverless — EMR 7.13 ou posterior

Depois de configurado, você pode ler ou gravar imediatamente arquivos de dados do EMR usando APIs padrão.

Para obter mais informações sobre a integração com o Amazon EMR, consulte a venda de credenciais baseada em caminhos do Lake Formation no Guia de gerenciamento do Amazon EMR.

Como funciona

O acesso à localização do Lake Formation-based Amazon S3 segue esse fluxo:

  1. Um diretor ou função solicita acesso aos arquivos de dados do Amazon S3 por meio de um serviço, como um trabalho do Amazon EMR Spark ou um pipeline de processamento de dados.

  2. O plug-in AWS SDK integrado ao EMR intercepta a solicitação do Amazon S3 e chama a API Lake Formation. GetTemporaryDataLocationCredentials

  3. O Lake Formation verifica se o caminho do Amazon S3 corresponde a um local registrado e a uma tabela catalogada e avalia as permissões do chamador na tabela associada. AWS Glue

  4. Se o chamador tiver SELECT ou tiver SUPER permissões na tabela correspondente com acesso total à tabela, o Lake Formation vende credenciais temporárias com escopo específico para esse local do Amazon S3. SELECTconcede credenciais READ; SUPER concede credenciais READWRITE.

  5. O plug-in usa essas credenciais para concluir a solicitação do Amazon S3, e o Amazon S3 fornece os dados para o aplicativo.

  6. Todas as operações de venda automática de credenciais são registradas CloudTrail, fornecendo uma trilha de auditoria para acesso aos dados.

Esse processo é transparente para você e você simplesmente usará as permissões existentes do Lake Formation com APIs padrão baseadas em arquivos.

# Read raw data (Lake Formation-based S3 Location access) raw_df = spark.read.json("s3://finance-datalake/raw/transactions/dt=2024-03-21/") # Read governed data (Lake Formation-based S3 Location access) transactions_df = spark.read.parquet("s3://data-lake/transactions/year=2026/") # Write processed data (Lake Formation-based S3 Location access) processed_df.write \ .mode("append") \ .partitionBy("transaction_date") \ .parquet("s3://finance-datalake/processed/transactions/") print("ETL complete. Records written:", processed_df.count())
Requisitos de permissão

Atualmente, o recurso vende credenciais somente quando o chamador tem acesso total à tabela, ou seja, SELECT em todas as colunas sem filtros de linha ou coluna. Se uma tabela tiver filtros em nível de linha ou coluna aplicados, os chamadores devem continuar usando mecanismos confiáveis, como Athena, Amazon EMR AWS Glue ou Amazon Redshift, que podem aplicar esses filtros. Isso garante que os limites de segurança permaneçam consistentes.

Cross-account acesso

O acesso simplificado do Lake Formation aos locais do Amazon S3 funciona com recursos de compartilhamento entre contas. Quando você compartilha uma tabela com outra AWS conta por meio do Lake Formation, os destinatários podem acessar os arquivos de dados subjacentes do Amazon S3 usando suas permissões do Lake Formation, sujeitos aos mesmos requisitos completos de acesso à tabela.

O recurso oferece suporte ao mecanismo de link de recursos do Lake Formation para acesso entre contas. Quando uma conta de consumidor tem permissões em uma tabela compartilhada, o Lake Formation vende credenciais com escopo definido para a localização do Amazon S3 da conta registrada, permitindo acesso contínuo aos dados entre contas sem exigir políticas separadas de bucket do Amazon S3 ou funções do IAM entre contas.

Locais aninhados do Amazon S3

Quando várias tabelas apontam para locais aninhados no mesmo bucket, o Lake Formation aplica o seguinte comportamento:

  • Ao acessars3://bucket, você recebe permissões correspondentes à tabela registrada no nível do bucket.

  • Ao acessars3://bucket/folder1, você recebe permissões correspondentes à tabela registrada nesse caminho específico.

  • Para acessar pastas sem uma tabela registrada (por exemplo,s3://bucket/folder2), você recebe permissões do local registrado principal mais próximo.

  • Se várias tabelas forem registradas no mesmo local, o Lake Formation retornará um erro devido a permissões conflitantes.

Auditoria e conformidade

Todas as operações de venda automática de credenciais são registradas CloudTrail, fornecendo uma trilha de auditoria para acesso aos dados. Quando o Lake Formation vende credenciais por meio da GetTemporaryDataLocationCredentials API, CloudTrail registra:

  • O principal (usuário ou função)

  • Timestamp

  • Local do Amazon S3

  • AWS GlueTabela associada

As chamadas subsequentes da API do Amazon S3 feitas com essas credenciais também são registradas como eventos de dados do Amazon CloudTrail S3, com o contexto vinculando-as à concessão de permissão do Lake Formation. Isso fornece aos auditores uma visibilidade completa sobre quem acessou quais dados, quando e por qual caminho de permissão, tudo em um único CloudTrail fluxo de log.

Compatível AWS serviços

O acesso simplificado do Lake Formation aos locais do Amazon S3 funciona com:

  • Amazon EMR no Amazon EC2 (EMR 7.13 ou posterior)

  • Amazon EMR no EKS (EMR 7.13 ou posterior)

  • Amazon EMR Serverless (EMR 7.13 ou posterior)

Plugin de código aberto para serviços de terceiros

Você também pode integrar seus Trino aplicativos Apache Spark ou aplicativos usando APIs ou por meio de um plug-in de código aberto fornecido pela AWS. Para obter mais informações, consulte aws-lakeformation-accessgrants-plugin-java-v2 em. GitHub

Considerações

Observe as seguintes considerações ao usar a venda de credenciais para locais do Amazon S3:

  • A venda de credenciais para locais do Amazon S3 não é suportada entre regiões.

  • A venda de credenciais é suportada para locais do Amazon S3 incluídos como o local principal da tabela.