

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
<a name="emr-plan-credentialsprovider"></a>

Por padrão, o perfil do EMR para EC2 determina as permissões para acesso aos 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 [Service role for cluster EC2 instances (EC2 instance profile)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html).

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 a usuários, grupos ou locais especificados, o cluster usa o perfil correspondente que você especifica em vez do perfil do EMR para EC2. Para obter mais informações, consulte [Configure IAM roles for EMRFS requests to Amazon S3](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-emrfs-iam-roles).

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
<a name="emr-create-credentialsprovider"></a>

[Para criar um provedor de credenciais personalizado, você implementa as classes [AWSCredentialsProvider](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html) e Hadoop Configurable.](https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/conf/Configurable.html)

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](https://aws.amazon.com/blogs/big-data/securely-analyze-data-from-another-aws-account-with-emrfs) Data. A postagem do blog inclui um tutorial que orienta você no processoend-to-end, desde a criação de funções do IAM até o lançamento do cluster. Ela também fornece um exemplo de código Java que implementa a classe de provedor de credenciais personalizado.

As etapas básicas são:

**Para especificar um provedor de credenciais personalizado**

1. Crie uma classe de provedor de credenciais personalizado compilada como um arquivo JAR.

1. 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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html).

1. 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](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html) 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, `{{copy_jar_file.sh}}`, que é salvo no `{{amzn-s3-demo-bucket}}` no Amazon S3.
   + Uma classificação `emrfs-site` que especifica um provedor de credenciais personalizado definido no arquivo JAR como `{{MyCustomCredentialsProvider}}`
**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-label {{emr-7.13.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":[]}]'
   ```