

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

# Opção 2: habilitar perfis do IAM para contas de serviço (IRSA) no cluster do EKS
<a name="setting-up-enable-IAM-service-accounts"></a>

O recurso de perfis do IAM para contas de serviço está disponível nas versões 1.14 e posteriores do Amazon EKS e para clusters do EKS atualizados para as versões 1.13 ou posteriores ou após 3 de setembro de 2019. Para usar esse recurso, é possível atualizar os clusters do EKS existentes para a versão 1.14 ou posterior. Para obter mais informações, consulte [Atualizar uma versão do Kubernetes do cluster do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).

Se o seu cluster oferecer suporte para perfis do IAM para contas de serviço, ele terá um URL do emissor [OpenID Connect](https://openid.net/connect/) associado a ele. Você pode visualizar essa URL no console do Amazon EKS ou usar o AWS CLI comando a seguir para recuperá-la.

**Importante**  
Você deve usar a versão mais recente do AWS CLI para receber a saída adequada desse comando.

```
aws eks describe-cluster --name cluster_name --query "cluster.identity.oidc.issuer" --output text
```

A saída esperada é semelhante à apresentada a seguir.

```
https://oidc.eks.<region-code>.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E
```

Para usar perfis do IAM para contas de serviço em seu cluster, é necessário criar um provedor de identidades OIDC usando o [eksctl](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html#create-oidc-eksctl) ou o [Console de gerenciamento da AWS](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html#create-oidc-console).

## Para criar um provedor de identidade OIDC do IAM para o cluster com o `eksctl`
<a name="setting-up-OIDC-eksctl"></a>

Verifique a versão do `eksctl` com o comando a seguir. Este procedimento pressupõe que você instalou o `eksctl` e que a versão do `eksctl` seja 0.32.0 ou posterior.

```
eksctl version
```

Para obter mais informações sobre como instalar ou atualizar o eksctl, consulte [Instalar ou atualizar o eksctl](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html#installing-eksctl).

Crie o provedor de identidade OIDC para o cluster com o seguinte comando. Substitua *cluster\$1name* pelos seus próprios valores.

```
eksctl utils associate-iam-oidc-provider --cluster cluster_name --approve
```

## Para criar um provedor de identidade IAM OIDC para seu cluster com o Console de gerenciamento da AWS
<a name="setting-up-OIDC-console"></a>

Recupere a URL do emissor do OIDC na descrição do console Amazon EKS do seu cluster ou use o comando a seguir. AWS CLI 

Use o comando apresentado a seguir para recuperar o URL do emissor OIDC da AWS CLI.

```
aws eks describe-cluster --name <cluster_name> --query "cluster.identity.oidc.issuer" --output text
```

Use as etapas apresentadas a seguir para recuperar o URL do emissor OIDC do console do Amazon EKS. 

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

1. No painel de navegação, escolha **Provedores de identidade** e, em seguida, selecione **Criar provedor**.

   1. Para **Tipo de provedor**, escolha **Escolher um tipo de provedor** e escolha **OpenID Connect**.

   1. Em **Provider URL (URL do provedor)**, cole o URL emissor OIDC do cluster.

   1. Para Público, digite sts.amazonaws.com e escolha **Próxima etapa**.

1. Verifique se as informações do provedor estão corretas e escolha **Create (Criar)** para criar seu provedor de identidade.

# Criação de um perfil de execução de trabalho
<a name="creating-job-execution-role"></a>

Para executar workloads no Amazon EMR no EKS, você precisa criar um perfil do IAM. Referimo-nos a esse perfil como *perfil de execução de trabalho* nesta documentação. Para obter mais informações sobre como criar perfis do IAM, consulte [Criação de perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) no Guia do usuário do IAM. 

Você também deve criar uma política do IAM que especifique as permissões para o perfil de execução de trabalho e, em seguida, anexar a política do IAM ao perfil de execução de trabalho. 

A política a seguir para a função de execução do trabalho permite acesso a destinos de recursos, Amazon S3 e. CloudWatch Essas permissões são necessárias para monitorar trabalhos e acessar logs. Para seguir o mesmo processo usando o AWS CLI: 

Crie o perfil do IAM para execução do trabalho: vamos criar o perfil que o EMR usará para a execução do trabalho. Essa é o perfil que os trabalhos do EMR assumirão quando forem executados no EKS.

```
cat <<EoF > ~/environment/emr-trust-policy.json
 {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
     {
       "Effect": "Allow",
       "Principal": {
         "Service": "elasticmapreduce.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   ]
 }
 EoF
  
 aws iam create-role --role-name EMRContainers-JobExecutionRole --assume-role-policy-document file://~/environment/emr-trust-policy.json
```

Em seguida, precisamos anexar as políticas do IAM necessárias ao perfil para que ele possa gravar logs no S3 e no cloudwatch.

```
cat <<EoF > ~/environment/EMRContainers-JobExecutionRole.json
 {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:ListBucket"
             ],
             "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
         },
         {
             "Effect": "Allow",
             "Action": [
                 "logs:PutLogEvents",
                 "logs:CreateLogStream",
               "logs:DescribeLogGroups",
                 "logs:DescribeLogStreams"
             ],
             "Resource": [
                 "arn:aws:logs:*:*:*"
             ]
         }
     ]
 } 
 EoF
 aws iam put-role-policy --role-name EMRContainers-JobExecutionRole --policy-name EMR-Containers-Job-Execution --policy-document file://~/environment/EMRContainers-JobExecutionRole.json
```

**nota**  
O acesso deve ter um escopo adequado e não ser concedido a todos os objetos do S3 no perfil de execução de trabalho.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ],
      "Sid": "AllowS3Putobject"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ],
      "Sid": "AllowLOGSPutlogevents"
    }
  ]
}
```

------

Para obter mais informações, consulte [Usando funções de execução de trabalho](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/iam-execution-role.html), [Configurar uma execução de trabalho para usar registros do S3](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) e [Configurar uma execução de trabalho para usar CloudWatch registros](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch).

# Atualização da política de confiança do perfil de execução de trabalho
<a name="setting-up-trust-policy"></a>

Ao usar perfis do IAM para contas de serviço (IRSA) com a finalidade de executar trabalhos em um namespace do Kubernetes, um administrador deve criar uma relação de confiança entre o perfil de execução de trabalho e a identidade da conta de serviço gerenciado do EMR. A relação de confiança pode ser criada ao atualizar a política de confiança do perfil de execução de trabalho. Observe que a conta de serviço gerenciado do EMR é criada automaticamente no envio do trabalho, com escopo definido para o namespace no qual o trabalho é enviado.

Execute o comando apresentado a seguir para atualizar a política de confiança.

```
 aws emr-containers update-role-trust-policy \
       --cluster-name cluster \
       --namespace namespace \
       --role-name iam_role_name_for_job_execution
```

Para obter mais informações, consulte [Uso de perfis de execução de trabalho com o Amazon EMR no EKS](iam-execution-role.md).

**Importante**  
O operador que executa o comando acima deve ter estas permissões: `eks:DescribeCluster`, `iam:GetRole` e `iam:UpdateAssumeRolePolicy`.