

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á.

# Configurar perfis do IAM para solicitações do EMRFS para o Amazon S3
<a name="emr-emrfs-iam-roles"></a>

**nota**  
O recurso de mapeamento de perfis do EMRFS descrito nesta página foi aprimorado com a introdução da solução Amazon S3 Access Grants no Amazon EMR 6.15.0. Para uma solução de controle de acesso escalável para os seus dados no Amazon S3, recomendamos usar o [S3 Access Grants com o Amazon EMR](emr-access-grants.md).

Quando uma aplicação em execução em um cluster faz referência a dados usando o formato `s3://{{mydata}}`, o Amazon EMR usa o EMRFS para fazer a solicitação. Para interagir com o Amazon S3, o EMRFS assume as políticas de permissões anexadas ao [perfil de instância do Amazon EC2](emr-iam-role-for-ec2.md). O mesmo perfil de instância do Amazon EC2 é usado independentemente do usuário ou do grupo que está executando a aplicação ou do local dos dados no Amazon S3. 

Se tiver um cluster com vários usuários que precisam de diferentes níveis de acesso aos dados no Amazon S3 por meio do EMRFS, você poderá definir uma configuração de segurança com perfis do IAM para o EMRFS. O EMRFS pode assumir um perfil de serviço diferente para instâncias de cluster do EC2 com base no usuário ou no grupo que faz a solicitação ou com base na localização dos dados no Amazon S3. Cada perfil do IAM para o EMRFS pode ter permissões diferentes para acesso aos dados no Amazon S3. Para obter mais informações sobre o uso de perfis de serviço para instâncias de cluster do EC2. consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md).

Há suporte para uso de perfis personalizados do IAM para o EMRFS nas versões 5.10.0 e posteriores do Amazon EMR. Se usar uma versão anterior ou se tiver requisitos além dos fornecidos pelos perfis do IAM para EMRFS, você poderá criar um provedor de credenciais personalizadas. Para obter mais informações, consulte [Authorizing access to EMRFS data in Amazon S3](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-plan-credentialsprovider). 

Ao usar uma configuração de segurança para especificar perfis do IAM para EMRFS, você configura mapeamentos de perfil. Cada mapeamento de perfil especifica um perfil do IAM que corresponde a identificadores. Esses identificadores determinam a base para o acesso ao Amazon S3 por meio do EMRFS. Os identificadores podem ser usuários, grupos ou prefixos do Amazon S3 que indicam um local de dados. Quando o EMRFS faz uma solicitação ao Amazon S3, se a solicitação corresponder à base para o acesso, o EMRFS fará com que as instâncias do EC2 do cluster assumam o perfil do IAM correspondente para a solicitação. As permissões do IAM anexadas ao perfil se aplicam no lugar das permissões do IAM anexadas ao perfil de serviço para instâncias do EC2 do cluster.

Os usuários e os grupos em um mapeamento de função são usuários e grupos do Hadoop definidos no cluster. Os usuários e os grupos são passados para o EMRFS no contexto do aplicativo que o usa (por exemplo, a personificação de usuário do YARN). O prefixo do Amazon S3 pode ser um especificador do bucket de qualquer profundidade (por exemplo `s3://amzn-s3-demo-bucket` ou `s3://amzn-s3-demo-bucket/myproject/mydata`). Você pode especificar vários identificadores em um único mapeamento de função, mas todos devem ser do mesmo tipo.

**Importante**  
Os perfis do IAM para o EMRFS fornecem isolamento no nível da aplicação entre os usuários da aplicação. Isso não fornece isolamento no nível do host entre os usuários no host. Qualquer usuário com acesso ao cluster pode ignorar o isolamento para assumir qualquer uma das funções.

Quando uma aplicação de cluster faz uma solicitação ao Amazon S3 por meio do EMRFS, o EMRFS avalia os mapeamentos do perfil de cima para baixo na ordem em que aparecem na configuração de segurança. Se uma solicitação feita por meio do EMRFS não corresponder a nenhum identificador, o EMRFS retornará ao uso do perfil de serviço para instâncias do EC2 do cluster. Por esse motivo, recomendamos que as políticas anexadas ao perfil limitem as permissões ao Amazon S3. Para obter mais informações, consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md).

## Configurar funções do
<a name="emr-emrfs-iam-roles-role-configuration"></a>

Antes de definir uma configuração de segurança com funções do IAM para EMRFS, planeje e crie perfis e as políticas de permissão a serem anexadas aos perfis. Para obter mais informações, consulte [Como os perfis para as instâncias do Amazon EC2 funcionam?](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) no *Guia do usuário do IAM*. Ao criar políticas de permissão, recomendamos começar com a política gerenciada anexada ao perfil do Amazon EMR padrão para o EC2 e depois editar essa política de acordo com seus requisitos. O nome de perfil padrão é `EMR_EC2_DefaultRole`, e a política gerenciada padrão a ser editada é `AmazonElasticMapReduceforEC2Role`. Para obter mais informações, consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md).

### Atualizar políticas de confiança para permissões para assumir perfil
<a name="emr-emrfs-iam-role-trust-policy"></a>

Cada perfil que o EMRFS usa deve ter uma política de confiança que permite que o perfil do Amazon EMR para o EC2 do cluster o assuma. Da mesma forma, o perfil do Amazon EMR para o EC2 do cluster deve ter uma política de confiança que permita que os perfis do EMRFS o assumam.

O exemplo de política de confiança a seguir está anexado a funções para o EMRFS. A instrução permite que o perfil padrão do Amazon EMR para o EC2 assuma o perfil. Por exemplo, se você tiver duas funções do EMRFS fictícias `EMRFSRole_First` e `EMRFSRole_Second`, esta declaração de política será adicionada às políticas de confiança para cada uma delas.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSTSAssumerole",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:role/EMR_EC2_DefaultRole"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Além disso, o exemplo a seguir de declaração de política de confiança é adicionado à `EMR_EC2_DefaultRole` para permitir que as duas funções do EMRFS fictícias a assumam.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSTSAssumerole",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:role/EMRFSRole_First",
          "arn:aws:iam::123456789012:role/EMRFSRole_Second"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

**Atualizar a política de confiança de um perfil do IAM**

Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **Roles (funções)**, insira o nome da função em **Search (Pesquisar)** e, em seguida, selecione o **Role name (Nome da função)**.

1. Escolha **Trust relationships (Relacionamentos de confiança)**, **Edit trust relationship (Editar relacionamento de confiança)**.

1. Adicione uma instrução de confiança de acordo com o **Documento da política**, de acordo com as diretrizes acima e selecione **Atualizar política de confiança**.

### Especificar um perfil como um usuário da chave
<a name="emr-emrfs-iam-role-key-user"></a>

Se o perfil permitir acesso a um local no Amazon S3 que é criptografado usando uma AWS KMS key, especifique o perfil como um usuário de chaves. Isso concede permissões ao perfil para usar a chave do KMS. Para saber mais, consulte [Políticas de chaves no AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html#key-policy-default-allow-users) no *Guia do desenvolvedor do AWS Key Management Service *.

## Definir uma configuração de segurança com perfis do IAM para EMRFS
<a name="emr-emrfs-iam-roles-setup"></a>

**Importante**  
Se nenhuma das perfis do IAM para EMRFS que você especificar for aplicável, o EMRFS retornará para o perfil do Amazon EMR para EC2. Considere a possibilidade de personalizar esse perfil para restringir permissões para o Amazon S3 conforme apropriado para suas aplicação e especificar esse perfil personalizado em vez de `EMR_EC2_DefaultRole` ao criar um cluster. Para obter mais informações, consulte [Personalização de perfis do IAM com o Amazon EMR](emr-iam-roles-custom.md) e [Especificar perfis personalizados do IAM ao criar um cluster](emr-iam-roles-custom.md#emr-iam-roles-launch-jobflow).

**Especificar perfis do IAM para solicitações do EMRFS para o Amazon S3 usando o console**

1. Crie uma configuração de segurança que especifica os mapeamentos de função:

   1. No console do Amazon EMR, selecione **Configurações de segurança**, **Criar**.

   1. Digite um nome em **Name (Nome)** para a configuração de segurança. Esse nome é usado para especificar a configuração de segurança ao criar um cluster.

   1. Escolha **Usa perfis do IAM para solicitações do EMRFS ao Amazon S3**.

   1. Selecione um **Perfil do IAM** a ser aplicada e, em **Base para acesso**, selecione um tipo de identificador (**Usuários**, **Grupos** ou **Prefixos do S3**) na lista e insira os identificadores correspondentes. Se você usar vários identificadores, separe-os com uma vírgula e sem espaço. Para obter mais informações sobre cada tipo de identificador, consulte a [JSON configuration reference](#emrfs-seccfg-json) abaixo.

   1. Escolha **Add role (Adicionar função)** para configurar mapeamentos de funções adicionais, conforme descrito na etapa anterior.

   1. Configure outras opções de configuração de segurança conforme apropriado e escolha **Create (Criar)**. Para obter mais informações, consulte [Crie uma configuração de segurança com o console do Amazon EMR ou com o AWS CLI](emr-create-security-configuration.md).

1. Especifique a configuração de segurança criada acima ao criar um cluster. Para obter mais informações, consulte [Como especificar uma configuração de segurança para um cluster do Amazon EMR](emr-specify-security-configuration.md).

**Para especificar funções do IAM para solicitações do EMRFS para o Amazon S3 usando o AWS CLI**

1. Use o comando `aws emr create-security-configuration`, especificando um nome para a configuração de segurança e os detalhes da configuração de segurança no formato JSON.

   O comando de exemplo mostrado a seguir cria uma configuração de segurança com o nome `EMRFS_Roles_Security_Configuration`. Ele é baseado em uma estrutura JSON no arquivo `MyEmrfsSecConfig.json`, que é salvo no mesmo diretório onde o comando é executado.

   ```
   aws emr create-security-configuration --name {{EMRFS_Roles_Security_Configuration}} --security-configuration {{file://MyEmrFsSecConfig.json}}.
   ```

   Use as diretrizes a seguir para a estrutura do arquivo `MyEmrFsSecConfig.json`. Você pode especificar essa estrutura juntamente com estruturas de outras opções de configuração de segurança. Para obter mais informações, consulte [Crie uma configuração de segurança com o console do Amazon EMR ou com o AWS CLI](emr-create-security-configuration.md).

   Veja a seguir um exemplo de trecho JSON para especificar perfis do IAM personalizados para o EMRFS em uma configuração de segurança. Ele demonstra mapeamentos de perfil para os três tipos diferentes de identificadores, seguidos por uma referência de parâmetro. 

   ```
   {
     "AuthorizationConfiguration": {
       "EmrFsConfiguration": {
         "RoleMappings": [{
           "Role": "{{arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1}}",
           "IdentifierType": "User",
           "Identifiers": [ "{{user1}}" ]
         },{
           "Role": "{{arn:aws:iam::123456789101:role/allow_EMRFS_access_to_demo_s3_buckets}}",
           "IdentifierType": "Prefix",
           "Identifiers": [ "{{s3://amzn-s3-demo-bucket1/","s3://amzn-s3-demo-bucket2/}}" ]
         },{
           "Role": "{{arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup}}",
           "IdentifierType": "Group",
           "Identifiers": [ "{{AdminGroup}}" ]
         }]
       }
     }
   }
   ```    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/emr/latest/ManagementGuide/emr-emrfs-iam-roles.html)

1. Use o comando `aws emr create-cluster` para criar um cluster e especifique a configuração de segurança que você criou na etapa anterior. 

   O exemplo a seguir cria um cluster com aplicativos Hadoop de núcleo padrão instalados. O cluster usa a configuração de segurança criada acima como `EMRFS_Roles_Security_Configuration` e também usa um perfil do Amazon EMR personalizado para o EC2, `EC2_Role_EMR_Restrict_S3`, que é especificada usando o argumento `InstanceProfile` do parâmetro `--ec2-attributes`.
**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 --name {{MyEmrFsS3RolesCluster}} \
   --release-label {{emr-7.13.0}} --ec2-attributes InstanceProfile={{EC2_Role_EMR_Restrict_S3}},KeyName={{MyKey}} \
   --instance-type {{m5.xlarge}} --instance-count {{3}} \
   --security-configuration {{EMRFS_Roles_Security_Configuration}}
   ```