Controllo dell'accesso basato su attributi con tag e AWS Organizations - AWS Organizations

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

Controllo dell'accesso basato su attributi con tag e AWS Organizations

Il controllo degli accessi basato sugli attributi consente di utilizzare attributi gestiti dall'amministratore, come tag associati sia alle risorse AWS sia alle identità AWS, per controllare l'accesso a quelle risorse. Ad esempio, puoi specificare che un utente può accedere a una risorsa quando sia l'utente sia la risorsa hanno lo stesso valore per un determinato tag.

Le risorse taggabili AWS Organizations includono Account AWS, il root, le unità organizzative (UO) o le policy dell'organizzazione. Quando si associano tag alle risorse di Organizations, è possibile utilizzarli per controllare chi può accedere a tali risorse. Lo puoi fare aggiungendo elementi Condition alle istruzioni della policy delle autorizzazioni AWS Identity and Access Management (IAM) che controllano se determinate chiavi e valori di tag sono presenti prima di consentire l'operazione. Ciò consente di creare una policy IAM che afferma efficacemente "Consenti all'utente di gestire solo le unità organizzative che dispongono di un tag con una chiave X e un valore Y" oppure "Consenti all'utente di gestire solo le unità organizzative che dispongono di un tag con una chiave Z che ha lo stesso valore della chiave di tag associata all'utente Z".

Puoi basare i tuoi test di Condition su diversi tipi di riferimenti tag in una policy IAM.

Per ulteriori informazioni sull'utilizzo dei tag per il controllo degli accessi nelle policy, consulta Controllo dell'accesso a e per utenti e ruoli IAM mediante i tag delle risorse. Per la sintassi completa delle policy di autorizzazione IAM, consulta la Documentazione di riferimento della policy JSON di IAM

Controllo dei tag associati alle risorse specificate nella richiesta

Quando effettui una richiesta utilizzando la AWS Management Console, la AWS Command Line Interface (AWS CLI) o un SDK AWS, puoi specificare le risorse a cui desideri accedere con tale richiesta. Se stai tentando di elencare le risorse disponibili di un determinato tipo, leggere o scrivere su una risorsa, oppure modificare o aggiornare una risorsa, è necessario specificare la risorsa a cui accedere come parametro nella richiesta. Tali richieste sono controllate dalle policy delle autorizzazioni IAM collegate agli utenti e ai ruoli. In queste policy è possibile confrontare i tag associati alla risorsa richiesta e scegliere di consentire o negare l'accesso in base alle chiavi e ai valori di tali tag.

Per controllare un tag associato alla risorsa, fai riferimento al tag in un elemento Condition anteponendo al nome della chiave tag la seguente stringa: aws:ResourceTag/

Ad esempio, la seguente policy consente all'utente o al ruolo di eseguire qualsiasi operazione AWS Organizations a meno che quella risorsa abbia un tag con chiave department e valore security. Se la chiave e il valore sono presenti, la policy nega esplicitamente l'operazione UntagResource.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "organizations:*", "Resource" : "*" }, { "Effect" : "Deny", "Action" : "organizations:UntagResource", "Resource" : "*", "Condition" : { "StringEquals" : { "aws:ResourceTag/department" : "security" } } } ] }

Per ulteriori informazioni sull'utilizzo di questo elemento, consulta Controllo dell'accesso alla risorsa e aws:ResourceTag nella Guida per l'utente di IAM.

Controllo dei tag associati all'utente o al ruolo IAM che effettua la richiesta

Puoi controllare le operazioni consentite alla persona che effettua la richiesta (il principale) in base ai tag collegati all'utente o ruolo IAM di tale persona. Per eseguire questa operazioni, usa la chiave di condizione aws:PrincipalTag/key-name per specificare quale tag e valore devono essere associati all'utente o al ruolo chiamante.

L'esempio seguente mostra come consentire un'operazione solo quando il tag specificato (cost-center) ha lo stesso valore sia sul principale che chiama l'operazione, sia sulla risorsa a cui si accede dall'operazione. In questo esempio, l'utente chiamante può avviare e arrestare un'istanza Amazon EC2 solo se l'istanza è contrassegnata con lo stesso valore cost-center dell'utente.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:startInstances", "ec2:stopInstances" ], "Resource": "*", "Condition": {"StringEquals": {"ec2:ResourceTag/cost-center": "${aws:PrincipalTag/cost-center}"}} } }

Per ulteriori informazioni sull'utilizzo di questo elemento, consulta Controllo dell'accesso per i principali IAM e aws:PrincipalTag nella Guida per l'utente di IAM.

Controllare i tag che sono inclusi come parametri nella richiesta

Sono diverse le operazioni che ti consentono di specificare i tag come parte della richiesta. Ad esempio, quando si crea una risorsa è possibile specificare i tag associati alla nuova risorsa. È possibile specificare un elemento Condition che utilizza aws:TagKeys per permettere o negare l'operazione in base al fatto che una chiave di tag specifica, o un set di chiavi, sia incluso nella richiesta. A questo operatore di confronto non interessa quale valore contiene il tag. Controlla solo se è presente un tag con la chiave specificata.

Per controllare la chiave di tag o un elenco di chiavi, specifica un elemento Condition con la sintassi seguente:

"aws:TagKeys": [ "tag-key-1", "tag-key-2", ... , "tag-key-n" ]

Puoi utilizzare ForAllValues: per anteporre un operatore di confronto per assicurarti che tutte le chiavi nella richiesta debbano corrispondere a una delle chiavi specificate nella policy. Ad esempio, la seguente policy autorizza qualsiasi operazione di Organizations solo se tutte e tre le chiavi di tag specificate sono presenti nella richiesta.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "department", "costcenter", "manager" ] } } } }

In alternativa, puoi utilizzare ForAnyValue: per anteporre un operatore di confronto per assicurarti che almeno una delle chiavi nella richiesta debba corrispondere a una delle chiavi specificate nella policy. Ad esempio, la seguente policy autorizza qualsiasi operazione di Organizations solo se almeno una delle chiavi di tag specificate è presente nella richiesta.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": [ "stage", "region", "domain" ] } } } }

Sono diverse le operazioni che ti consentono di specificare i tag nella richiesta. Ad esempio, quando si crea una risorsa è possibile specificare i tag associati alla nuova risorsa. È possibile confrontare una coppia chiave-valore di tag nella policy con una coppia chiave-valore inclusa nella richiesta. Per fare ciò, fai riferimento al tag in un elemento Condition anteponendo al nome della chiave tag la seguente stringa: aws:RequestTag/key-name, quindi specifica il valore del tag che deve essere presente.

Ad esempio, la seguente policy di esempio nega qualsiasi richiesta da parte dell'utente o del ruolo di creare un Account AWS se alla richiesta manca il tag costcenter o assegna a tale tag un valore diverso da 1, 2 oppure 3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "organizations:CreateAccount", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/costcenter": "true" } } }, { "Effect": "Deny", "Action": "organizations:CreateAccount", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/costcenter": [ "1", "2", "3" ] } } } ] }

Per ulteriori informazioni sull'utilizzo di questi elementi, consulta aws:TagKeys e aws:RequestTag nella Guida per l'utente di IAM.