Usando as concessões de acesso do Amazon S3 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á.

Usando as concessões de acesso do Amazon S3 com a Amazon EMR

Visão geral do S3 Access Grants para a Amazon EMR

Com as EMR versões 6.15.0 e superiores da Amazon, o Amazon S3 Access Grants fornece uma solução de controle de acesso escalável que você pode usar para aumentar o acesso aos dados do Amazon S3 da Amazon. EMR Se você tiver uma configuração de permissão complexa ou grande para os dados do S3, poderá usar a funcionalidade Access Grants para escalar as permissões de dados do S3 para usuários, perfis e aplicações no seu cluster.

Use o S3 Access Grants para aumentar o acesso aos dados do Amazon S3 além das permissões concedidas pela função de tempo de execução ou IAM das funções associadas às identidades com acesso ao seu cluster. EMR Para obter mais informações, consulte Gerenciar o acesso com o S3 Access Grants no Guia do usuário do Amazon S3.

Para ver as etapas de uso do S3 Access Grants com outras EMR implantações da Amazon, consulte a seguinte documentação:

Como a Amazon EMR trabalha com o S3 Access Grants

As EMR versões 6.15.0 e superiores da Amazon fornecem uma integração nativa com o S3 Access Grants. Você pode ativar o S3 Access Grants na Amazon EMR e executar trabalhos do Spark. Quando um trabalho do Spark faz uma solicitação de dados do S3, o Amazon S3 fornece credenciais temporárias que têm como escopo o bucket, prefixo ou objeto específico.

A seguir está uma visão geral de alto nível de como a Amazon EMR obtém acesso aos dados protegidos pelo S3 Access Grants.

Como a Amazon EMR trabalha com o S3 Access Grants
  1. Um usuário envia um trabalho do Amazon EMR Spark que usa dados armazenados no Amazon S3.

  2. A Amazon EMR solicita o S3 Access Grants para permitir o acesso ao bucket, prefixo ou objeto em nome desse usuário.

  3. O Amazon S3 retorna credenciais temporárias na forma de um token AWS Security Token Service (STS) para o usuário. O escopo do token é acessar o bucket, prefixo ou objeto do S3.

  4. A Amazon EMR usa o STS token para recuperar dados do S3.

  5. A Amazon EMR recebe os dados do S3 e retorna os resultados ao usuário.

Considerações sobre o S3 Access Grants com a Amazon EMR

Observe os seguintes comportamentos e limitações ao usar o S3 Access Grants com a AmazonEMR.

Suporte a recursos

  • O S3 Access Grants é compatível com as EMR versões 6.15.0 e superiores da Amazon.

  • O Spark é o único mecanismo de consulta compatível quando você usa o S3 Access Grants com a Amazon. EMR

  • Delta Lake e Hudi são os únicos formatos de tabela aberta compatíveis quando você usa o S3 Access Grants com a Amazon. EMR

  • Os seguintes EMR recursos da Amazon não são compatíveis com o S3 Access Grants:

    • Tabelas Apache Iceberg

    • LDAPautenticação nativa

    • Autenticação nativa do Apache Ranger

    • AWS CLI solicitações para o Amazon S3 que usam funções IAM

    • Acesso ao S3 por meio do protocolo de código aberto do S3A

  • A fallbackToIAM opção não é compatível com EMR clusters que usam propagação de identidade confiável com o IAM Identity Center.

  • O S3 Access Grants with só AWS Lake Formationé compatível com EMR clusters da Amazon que são executados na AmazonEC2.

Considerações comportamentais

  • A integração nativa do Apache Ranger com a Amazon EMR possui funcionalidade congruente com o S3 Access Grants como parte do plug-in S3 Apache Ranger. EMRFS Se você usa o Apache Ranger para controle de acesso refinado (FGAC), recomendamos que você use esse plug-in em vez do S3 Access Grants.

  • EMRA Amazon fornece um cache de credenciais EMRFS para garantir que o usuário não precise fazer solicitações repetidas das mesmas credenciais em um trabalho do Spark. Portanto, a Amazon EMR sempre solicita o privilégio de nível padrão quando solicita credenciais. Para obter mais informações, consulte Solicitação de acesso aos dados do S3 no Guia do usuário do Amazon S3.

  • No caso de um usuário realizar uma ação que o S3 Access Grants não suporta, a Amazon EMR está configurada para usar a IAM função que foi especificada para a execução do trabalho. Para obter mais informações, consulte Volte aos IAM papéis.

Lance um EMR cluster da Amazon com o S3 Access Grants

Esta seção descreve como iniciar um EMR cluster que é executado na Amazon EC2 e usa o S3 Access Grants para gerenciar o acesso aos dados no Amazon S3. Para ver as etapas de uso do S3 Access Grants com outras EMR implantações da Amazon, consulte a seguinte documentação:

Use as etapas a seguir para iniciar um EMR cluster executado na Amazon EC2 e usar o S3 Access Grants para gerenciar o acesso aos dados no Amazon S3.

  1. Configure uma função de execução de trabalhos para seu EMR cluster. Inclua IAM as permissões necessárias para executar trabalhos do Spark s3:GetDataAccess es3:GetAccessGrantsInstanceForPrefix:

    { "Effect": "Allow", "Action": [ "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": [ //LIST ALL INSTANCE ARNS THAT THE ROLE IS ALLOWED TO QUERY "arn:aws_partition:s3:Region:account-id1:access-grants/default", "arn:aws_partition:s3:Region:account-id2:access-grants/default" ] }
    nota

    Com a AmazonEMR, os S3 Access Grants aumentam as permissões definidas nas IAM funções. Se as IAM funções que você especificar para a execução do trabalho contiverem permissões para acessar o S3 diretamente, os usuários poderão acessar mais dados do que apenas os dados definidos no S3 Access Grants.

  2. Em seguida, use o AWS CLI para criar um cluster com o Amazon EMR 6.15 ou superior e a emrfs-site classificação para habilitar o S3 Access Grants, semelhante ao exemplo a seguir:

    aws emr create-cluster --release-label emr-6.15.0 \ --instance-count 3 \ --instance-type m5.xlarge \ --configurations '[{"Classification":"emrfs-site", "Properties":{"fs.s3.s3AccessGrants.enabled":"true", "fs.s3.s3AccessGrants.fallbackToIAM":"false"}}]'

Concessões de acesso ao S3 com AWS Lake Formation

Se você usa a Amazon EMR com a AWS Lake Formation integração, você pode usar o Amazon S3 Access Grants para acesso direto ou tabular aos dados no Amazon S3.

nota

O S3 Access Grants with só AWS Lake Formation é compatível com EMR clusters da Amazon que são executados na AmazonEC2.

Acesso direto

O acesso direto envolve todas as chamadas para acessar dados do S3 que não invocam o serviço For the API AWS Glue que a Lake Formation usa como metastore na EMR Amazon, por exemplo, para ligar para: spark.read

spark.read.csv("s3://...")

Quando você usa o S3 Access Grants AWS Lake Formation na AmazonEMR, todos os padrões de acesso direto passam pelo S3 Access Grants para obter credenciais temporárias do S3.

Acesso tabular

O acesso tabular ocorre quando o Lake Formation invoca o metastore API para acessar sua localização no S3, por exemplo, para consultar dados da tabela:

spark.sql("select * from test_tbl")

Quando você usa o S3 Access Grants AWS Lake Formation na AmazonEMR, todos os padrões de acesso tabulares passam pelo Lake Formation.

Volte aos IAM papéis

Se um usuário tentar realizar uma ação que o S3 Access Grants não suporta, a Amazon usa como EMR padrão a IAM função que foi especificada para execução do trabalho quando a fallbackToIAM configuração estiver. true Isso permite que os usuários efetuem o fallback do perfil de execução de trabalhos para fornecer credenciais de acesso ao S3 em cenários não cobertos pelo S3 Access Grants.

Com a opção fallbackToIAM habilitada, os usuários podem acessar os dados que o Access Grant permite. Se não houver um token do S3 Access Grants para os dados de destino, a Amazon EMR verifica a permissão em sua função de execução do trabalho.

nota

Recomendamos que você teste suas permissões de acesso com a configuração fallbackToIAM habilitada, mesmo que planeje desabilitar a opção para workloads de produção. Com os trabalhos do Spark, há outras maneiras pelas quais os usuários podem acessar todos os conjuntos de permissões com suas IAM credenciais. Quando ativadas em EMR clusters, as concessões do S3 dão às tarefas do Spark acesso às localizações do S3. Você deve garantir a proteção desses locais do S3 contra o acesso externo. EMRFS Por exemplo, você deve proteger as localizações do S3 contra o acesso de clientes do S3 usados em notebooks ou por aplicações sem o suporte do S3 Access Grants, como Hive ou Presto.