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à.
Utilizzo dei ruoli di esecuzione dei processi con Amazon EMR su EKS
Se intendi utilizzare il comando StartJobRun
per inviare un processo eseguito in un cluster EKS, dovrai prima integrare un ruolo di esecuzione del processo da utilizzare con un cluster virtuale. Per ulteriori informazioni, consulta Creazione di un ruolo di esecuzione del processo in Configurazione di Amazon EMR su EKS. È inoltre possibile seguire le istruzioni riportate nella sezione di Amazon EMR su EKS Workshop Creazione di un ruolo IAM per l'esecuzione del processo
Le seguenti autorizzazioni devono essere incluse nella policy di affidabilità per il ruolo di esecuzione del processo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::
AWS_ACCOUNT_ID
:oidc-provider/OIDC_PROVIDER
" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER
:sub": "system:serviceaccount:NAMESPACE
:emr-containers-sa-*-*-AWS_ACCOUNT_ID
-BASE36_ENCODED_ROLE_NAME
" } } } ] }
La policy di affidabilità nell'esempio precedente concede le autorizzazioni solo a un account del servizio Kubernetes gestito da EMR con un nome che corrisponde al modello emr-containers-sa-*-*-
. Ricorda che l'account del servizio gestito da EMR viene creato automaticamente all'invio del processo, nell'ambito dello spazio dei nomi in cui viene inviato il processo. La policy di affidabilità consente a questi account di servizio di assumere il ruolo di esecuzione e ottenere le credenziali temporanee del ruolo di esecuzione. Qualsiasi altro account di servizio da un cluster EKS diverso o da uno spazio dei nomi diverso all'interno dello stesso cluster EKS non può assumere il ruolo di esecuzione.AWS_ACCOUNT_ID
-BASE36_ENCODED_ROLE_NAME
Per aggiornare automaticamente la policy di affidabilità nel formato indicato sopra, puoi eseguire il comando seguente.
aws emr-containers update-role-trust-policy \ --cluster-name
cluster
\ --namespacenamespace
\ --role-nameiam_role_name_for_job_execution
Controllo dell'accesso al ruolo di esecuzione
Un amministratore del cluster EKS può creare un cluster virtuale Amazon EMR su EKS multi-tenant a cui un amministratore IAM può aggiungere più ruoli di esecuzione. Questi ruoli di esecuzione possono essere utilizzati per inviare processi da tenant non attendibili che eseguono codice arbitrario. Pertanto, è possibile limitare tali tenant in modo che non possano eseguire un codice che ottiene le autorizzazioni assegnate a uno o più di questi ruoli di esecuzione. È possibile utilizzare chiavi di condizione per limitare l'accesso ai ruoli di esecuzione. L'amministratore di IAM può limitare la policy IAM associata a un'identità IAM utilizzando una chiave di condizione a stringa facoltativa denominata emr-containers:ExecutionRoleArn
. Questa condizione accetta un elenco di ARN di ruoli di esecuzione che dispongono di autorizzazioni per l'uso di un cluster virtuale, come mostra la policy di autorizzazioni seguente.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "emr-containers:StartJobRun", "Resource": "arn:aws:emr-containers:
REGION
:AWS_ACCOUNT_ID
:/virtualclusters/VIRTUAL_CLUSTER_ID
", "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "execution_role_arn_1
", "execution_role_arn_2
", ... ] } } } ] }
Se si desidera autorizzare tutti i ruoli di esecuzione che iniziano con un prefisso particolare, ad esempio MyRole, l'operatore di condizione StringEquals può essere sostituito con un operatore StringLike e il valore execution_role_arn nella condizione può essere sostituito con il carattere jolly *. Ad esempio, arn:aws:iam::
. Anche tutte le altre chiavi di condizione a stringa sono supportate.AWS_ACCOUNT_ID
:role/MyRole*
Nota
Attualmente, 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. Non puoi concedere autorizzazioni ai ruoli di esecuzione basati su tag o attributi.