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á.
Autorizar acesso aos dados do EMRFS no Amazon S3
Por padrão, a função do EMR EC2 determina as permissões para acessar dados do EMRFS no Amazon S3. As políticas do IAM que são anexadas a esse perfil se aplicam independentemente do usuário ou do grupo que faz a solicitação por meio do EMRFS. O padrão é EMR_EC2_DefaultRole
. Para obter mais informações, consulte Função de serviço para EC2 instâncias de cluster (perfil de EC2 instância).
A partir do Amazon EMR versão 5.10.0, você pode usar uma configuração de segurança para especificar perfis do IAM para o EMRFS. Com isso, você pode personalizar permissões para solicitações do EMRFS ao Amazon S3 para clusters com vários usuários. Você pode especificar perfis do IAM diferentes para usuários e grupos diferentes, e para diferentes locais de bucket do Amazon S3 com base no prefixo no Amazon S3. Quando o EMRFS faz uma solicitação ao Amazon S3 que corresponde aos usuários, grupos ou locais que você especifica, o cluster usa a função correspondente que você especifica em vez da função do EMR. EC2 Para obter mais informações, consulte Configure IAM roles for EMRFS requests to Amazon S3.
Como alternativa, se sua solução do Amazon EMR solicitar algo além do que é fornecido pelos perfis do IAM para EMRFS, você poderá definir uma classe de provedor de credenciais personalizado, que permita personalizar o acesso aos dados do EMRFS no Amazon S3.
Criar um provedor de credenciais personalizado para dados do EMRFS no Amazon S3
Para criar um provedor de credenciais personalizado, você implementa as classes AWSCredentialsProvider e Hadoop Configurable.
Para obter uma explicação detalhada dessa abordagem, consulte Analisar com segurança os dados de outra AWS conta com o EMRFS no AWS
blog Big
As etapas básicas são:
Para especificar um provedor de credenciais personalizado
Crie uma classe de provedor de credenciais personalizado compilada como um arquivo JAR.
Execute um script como uma ação de bootstrap para copiar o arquivo JAR do provedor de credenciais personalizado no local
/usr/share/aws/emr/emrfs/auxlib
no nó principal do cluster. Para obter mais informações sobre ações de bootstrap, consulte (Optional) Create bootstrap actions to install additional software.-
Personalize a classificação
emrfs-site
para especificar a classe que você implementa no arquivo JAR. Para obter mais informações sobre como especificar objetos de configuração para personalizar as aplicações, consulte Configuring applications no Guia de lançamento do Amazon EMR.O exemplo a seguir demonstra um comando
create-cluster
que executa um cluster do Hive com parâmetros de configuração comuns e também inclui:Uma ação de bootstrap que executa o script,
, que é salvo nocopy_jar_file.sh
no Amazon S3.amzn-s3-demo-bucket
Uma classificação
emrfs-site
que especifica um provedor de credenciais personalizado definido no arquivo JAR comoMyCustomCredentialsProvider
nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
aws emr create-cluster --applications Name=Hive \ --bootstrap-actions '[{"Path":"
s3://amzn-s3-demo-bucket/copy_jar_file.sh
","Name":"Custom action"}]' \ --ec2-attributes '{"KeyName":"MyKeyPair
","InstanceProfile":"EMR_EC2_DefaultRole",\ "SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\ "EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \ --service-role EMR_DefaultRole_V2 --enable-debugging --release-labelemr-7.7.0
\ --log-uri 's3n://amzn-s3-demo-bucket
/' --name 'test-awscredentialsprovider-emrfs' \ --instance-type=m5.xlarge --instance-count 3 \ --configurations '[{"Classification":"emrfs-site",\ "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\ "Configurations":[]}]'