

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Uso dei ruoli di esecuzione di processo con Amazon EMR su EKS
<a name="iam-execution-role"></a>

Se intendi utilizzare il comando `StartJobRun` per inviare un processo eseguito in un cluster EKS, dovrai prima integrare un ruolo di esecuzione di processo da utilizzare con un cluster virtuale. Per ulteriori informazioni, consulta [Creazione di un ruolo di esecuzione di processo](creating-job-execution-role.md) in [Configurazione di Amazon EMR su EKS](setting-up.md). È inoltre possibile seguire le istruzioni riportate nella sezione di Amazon EMR su EKS Workshop [Creazione di un ruolo IAM per l'esecuzione del processo](https://www.eksworkshop.com/advanced/430_emr_on_eks/prereqs/#create-iam-role-for-job-execution).

Le seguenti autorizzazioni devono essere incluse nella policy di affidabilità per il ruolo di esecuzione di processo.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRoleWithWebIdentity"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:userid": "system:serviceaccount:NAMESPACE:emr-containers-sa-*-*-AWS_ACCOUNT_ID-BASE36_ENCODED_ROLE_NAME"
        }
      },
      "Sid": "AllowSTSAssumerolewithwebidentity"
    }
  ]
}
```

------

La policy di affidabilità nell'esempio precedente concede le autorizzazioni solo a un account di servizio Kubernetes gestito da Amazon EMR con un nome che corrisponde al pattern `emr-containers-sa-*-*-AWS_ACCOUNT_ID-BASE36_ENCODED_ROLE_NAME`. Gli account di servizio con tale pattern verranno creati in automatico all'invio del processo e assegnati all'ambito dello spazio dei nomi in cui invii il processo. La policy di affidabilità consente a questi account di servizio di assumere il ruolo di esecuzione e di ottenerne le credenziali temporanee. Agli account di servizi di un cluster Amazon EKS diverso o di uno spazio dei nomi diverso all'interno del medesimo cluster EKS è impedito di assumere il ruolo di esecuzione.

Per aggiornare in automatico la policy di affidabilità nel formato indicato sopra, puoi eseguire il comando seguente. 

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

**Controllo dell'accesso al ruolo di esecuzione**

Un amministratore del cluster Amazon EKS può creare un cluster virtuale Amazon EMR su EKS multi-tenant a cui un amministratore IAM può aggiungere più ruoli di esecuzione. Poiché i tenant non affidabili possono utilizzare questi ruoli di esecuzione per inviare processi che eseguono un codice arbitrario, è consigliabile limitare tali tenant in modo che non possano eseguire un codice che ottiene le autorizzazioni assegnate a uno o più dei suddetti ruoli di esecuzione. Per limitare la policy IAM allegata a un'identità IAM, l'amministratore IAM può utilizzare la chiave di condizione del nome della risorsa Amazon (ARN) `emr-containers:ExecutionRoleArn`. Questa condizione accetta un elenco di ruoli di esecuzione ARNs che dispongono delle autorizzazioni per il cluster virtuale, come dimostra la seguente politica di autorizzazioni.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-containers:StartJobRun"
      ],
      "Resource": [
        "arn:aws:emr-containers:*:*:/virtualclusters/VIRTUAL_CLUSTER_ID"
      ],
      "Condition": {
        "ArnEquals": {
          "emr-containers:ExecutionRoleArn": [
            "arn:aws:iam::*:role/execution_role_name_1",
            "arn:aws:iam::*:role/execution_role_name_2"
          ]
        }
      },
      "Sid": "AllowEMRCONTAINERSStartjobrun"
    }
  ]
}
```

------

Se desideri autorizzare tutti i ruoli di esecuzione che iniziano con un prefisso particolare, ad esempio `MyRole`, puoi sostituire l'operatore di condizione `ArnEquals` con l'operatore `ArnLike` e il valore `execution_role_arn` nella condizione con il carattere jolly `*`. Ad esempio, `arn:aws:iam::AWS_ACCOUNT_ID:role/MyRole*`. Sono supportate anche tutte le altre [chiavi di condizione ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN).

**Nota**  
Con Amazon EMR su EKS, non puoi concedere autorizzazioni a ruoli di esecuzione basati su tag o attributi. Amazon EMR su EKS non supporta il controllo degli accessi basato su tag (TBAC) né il controllo degli accessi basato su attributi (ABAC) per i ruoli di esecuzione.