Policy di esempio - AWS Batch

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

Policy di esempio

Gli esempi seguenti mostrano le dichiarazioni politiche che è possibile utilizzare per controllare le autorizzazioni di cui dispongono gli utenti. AWS Batch

Accesso in sola lettura

La seguente politica concede agli utenti le autorizzazioni per utilizzare tutte le azioni AWS Batch API con un nome che inizia con e. Describe List

A meno che un'altra dichiarazione non conceda loro l'autorizzazione a farlo, gli utenti non sono autorizzati a eseguire alcuna azione sulle risorse. Per impostazione predefinita, viene loro negata l'autorizzazione a utilizzare le azioni API.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:Describe*", "batch:List*" ], "Resource": "*" } ] }

Limitazione all'utente POSIX, all'immagine Docker, al livello di privilegio e al ruolo nell'invio del lavoro

La seguente politica consente a un utente POSIX di gestire il proprio set di definizioni di lavoro limitate.

Utilizzate la prima e la seconda istruzione per registrare e annullare la registrazione di qualsiasi nome di definizione di lavoro il cui nome è preceduto da A_. JobDef

La prima istruzione utilizza inoltre le chiavi di contesto condizionali per impostare restrizioni per utente POSIX, stato con privilegi, valori immagine container nelle containerProperties di definizione del processo. Per ulteriori informazioni, consulta RegisterJobDefinition nella documentazione di riferimento dell'API AWS Batch. In questo esempio, le definizioni dei processi possono essere registrate solo quando l'utente POSIX è impostato su. nobody Il flag privilegiato è impostato su. false Infine, l'immagine viene impostata su myImage un repository Amazon ECR.

Importante

Docker risolve il user parametro per quell'utente uid dall'interno dell'immagine del contenitore. Nella maggior parte dei casi, questo si trova nel /etc/passwd file all'interno dell'immagine del contenitore. Questa risoluzione dei nomi può essere evitata utilizzando uid valori diretti sia nella definizione del lavoro che in qualsiasi policy IAM associata. Sia le operazioni AWS Batch API che le chiavi condizionali batch:User IAM supportano valori numerici.

Utilizza la terza istruzione per limitare solo un ruolo specifico alla definizione di un lavoro.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*" ], "Condition": { "StringEquals": { "batch:User": [ "nobody" ], "batch:Image": [ "<aws_account_id>.dkr.ecr.<aws_region>.amazonaws.com/myImage" ] }, "Bool": { "batch:Privileged": "false" } } }, { "Effect": "Allow", "Action": [ "batch:DeregisterJobDefinition" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<aws_account_id>:role/MyBatchJobRole" ] } ] }

Limita al prefisso di definizione del lavoro all'invio del lavoro

Utilizza la seguente politica per inviare lavori a qualsiasi coda di lavoro con qualsiasi nome di definizione di processo che inizi con A. JobDef

Importante

Quando si definisca l'accesso a livello di risorsa per l'invio del processo, è necessario fornire sia la coda processo sia i tipi di risorse di definizione processo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*", "arn:aws:batch:<aws_region>:<aws_account_id>:job-queue/*" ] } ] }

Limita alla coda dei lavori

Utilizza la seguente politica per inviare i lavori a una coda di lavori specifica denominata queue1 con qualsiasi nome di definizione del processo.

Importante

Quando si definisca l'accesso a livello di risorsa per l'invio del processo, è necessario fornire sia la coda processo sia i tipi di risorse di definizione processo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/*", "arn:aws:batch:<aws_region>:<aws_account_id>:job-queue/queue1" ] } ] }

Nega l'azione quando tutte le condizioni corrispondono alle stringhe

La seguente politica nega l'accesso al funzionamento dell'RegisterJobDefinitionAPI quando sia la chiave di condizione batch:Image (ID dell'immagine del contenitore) è "string1" sia la chiave di condizione batch:LogDriver (container log driver) è "string2». AWS Batch valuta le chiavi delle condizioni su ogni contenitore. Quando un lavoro si estende su più contenitori, ad esempio un processo parallelo a più nodi, è possibile che i contenitori abbiano configurazioni diverse. Se più chiavi di condizione vengono valutate in un'unica istruzione, vengono combinate utilizzando la logica. AND Pertanto, se una delle più chiavi di condizione non corrisponde a un contenitore, l'Denyeffetto non viene applicato a quel contenitore. Piuttosto, un contenitore diverso nello stesso lavoro potrebbe essere negato.

Per l'elenco delle chiavi di condizione perAWS Batch, vedi Condition keys for AWS Batch nel Service Authorization Reference. Ad eccezione dibatch:ShareIdentifier, tutte le chiavi di batch condizione possono essere utilizzate in questo modo. La chiave di batch:ShareIdentifier condizione è definita per un lavoro, non per una definizione di processo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": "batch:RegisterJobDefinition", "Resource": "*", "Condition": { "StringEquals": { "batch:Image": "string1", "batch:LogDriver": "string2" } } } ] }

Nega l'azione quando i tasti condizionali corrispondono alle stringhe

La seguente politica nega l'accesso al funzionamento dell'RegisterJobDefinitionAPI quando la chiave di condizione batch:Image (ID dell'immagine del contenitore) è "string1" o la chiave di condizione batch:LogDriver (container log driver) è "string2». Quando un lavoro si estende su più contenitori, ad esempio un processo parallelo a più nodi, è possibile che i contenitori abbiano configurazioni diverse. Se più chiavi di condizione vengono valutate in un'unica istruzione, vengono combinate utilizzando la logica. AND Pertanto, se una delle più chiavi di condizione non corrisponde a un contenitore, l'Denyeffetto non viene applicato a quel contenitore. Piuttosto, un contenitore diverso nello stesso lavoro potrebbe essere negato.

Per l'elenco delle chiavi di condizione perAWS Batch, vedi Condition keys for AWS Batch nel Service Authorization Reference. Ad eccezione dibatch:ShareIdentifier, tutte le chiavi di batch condizione possono essere utilizzate in questo modo. (La chiave di batch:ShareIdentifier condizione è definita per un lavoro, non per una definizione di processo.)

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "batch:Image": [ "string1" ] } } }, { "Effect": "Deny", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "batch:LogDriver": [ "string2" ] } } } ] }

Usa la chiave batch:ShareIdentifier condizionale

Utilizza la seguente politica per inviare i lavori che utilizzano la definizione del jobDefA processo alla coda dei jobqueue1 lavori con l'identificatore di lowCpu condivisione.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws::batch:<aws_region>:<aws_account_id>:job-definition/JobDefA", "arn:aws::batch:<aws_region>:<aws_account_id>:job-queue/jobqueue1" ], "Condition": { "StringEquals": { "batch:ShareIdentifier": [ "lowCpu" ] } } } ] }