Condizioni con più chiavi di contesto o valori - AWS Identity and Access Management

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

Condizioni con più chiavi di contesto o valori

Puoi utilizzare l'elemento Condition di una policy per testare più chiavi di contesto o valori per una singola chiave di contesto in una richiesta. Quando fai una richiesta a AWS, a livello di codice o tramite AWS Management Console, la richiesta include informazioni sul principale, sull'operazione, sui tag e altro ancora. Puoi utilizzare le chiavi di contesto per testare i valori delle chiavi di contesto corrispondenti nella richiesta, con le chiavi di contesto specificate nella condizione della policy. Per ulteriori informazioni e i dati inclusi in una richiesta, consulta Il contesto della richiesta.

Logica di valutazione per condizioni con più chiavi di contesto o valori

Un elemento Condition può contenere più operatori di condizione e ciascun operatore di condizione può includere a sua volta più coppie chiave-valore. La maggior parte delle chiavi di contesto supporta l'utilizzo di più valori, se non diversamente specificato.

  • Se la tua policy contiene più operatori di condizione, questi vengono valutati utilizzando un AND logico.

  • Se la policy contiene più chiavi di contesto collegate a un singolo operatore di condizione, le chiavi di contesto vengono valutate utilizzando un AND logico.

  • Se un singolo operatore di condizione include valori multipli per una chiave di contesto, questi valori sono valutato con un OR logico.

  • Se un singolo operatore di condizione di corrispondenza negata include valori multipli per una chiave di contesto, questi valori vengono valutati con un NOR logico.

Tutte le chiavi di contesto in un blocco di elementi condizionali devono essere risolte in true per richiamare il Allow desiderato o l’effetto Deny. La figura seguente illustra la logica di valutazione per una condizione con più operatori di condizione e coppie chiave-valore di contesto.

Blocco di condizioni che mostra come AND e OR vengono applicati a più chiavi e valori di contesto

Ad esempio, la seguente policy del bucket S3 illustra come la figura precedente è rappresentata in una policy. Il blocco condizione utilizza operatori di condizione StringEquals e ArnLike e chiavi di contesto aws:PrincipalTag eaws:PrincipalArn. Per richiamare l'effetto Allow o Deny desiderato, tutte le chiavi di contesto nel blocco di condizione devono restituire il valore true. L'utente che effettua la richiesta deve avere entrambe le chiavi tag principali, dipartimento e ruolo, che includono uno dei valori chiave dei tag specificati nella policy. Inoltre, il principale ARN dell'utente che effettua la richiesta deve corrispondere a uno dei aws:PrincipalArn valori specificati nella politica per essere valutato come vero.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExamplePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:PrincipalTag/department": [ "finance", "hr", "legal" ], "aws:PrincipalTag/role": [ "audit", "security" ] }, "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:user/Ana", "arn:aws:iam::222222222222:user/Mary" ] } } } ] }

Logica di valutazione per gli operatori di negazione della condizione di corrispondenza

Alcuni operatori di condizione, ad esempio StringNotEquals o ArnNotLike, usano la corrispondenza negata per confrontare le coppie chiave-valore di contesto nella tua policy con le coppie chiave-valore di contesto in una richiesta. Quando più valori sono elencati in una singola chiave di contesto in una policy con operatori di negazione della condizione di corrispondenza le autorizzazioni efficaci funzionano come un NOR logico. Nella corrispondenza negata, un NOR o NOT OR restituisce true solo se tutti i valori restituiscono false.

La figura seguente illustra la logica di valutazione per una condizione con più operatori di condizione e coppie chiave-valore di contesto. La figura include un operatore di negazione della condizione di corrispondenza per la chiave di contesto 3.

Blocco di condizioni che mostra come AND e OR vengono applicati a più chiavi e valori di contesto quando viene utilizzato un operatore di condizione con corrispondenza negata

Ad esempio, la seguente policy del bucket S3 illustra come la figura precedente è rappresentata in una policy. Il blocco condizione utilizza operatori di condizione StringEquals e ArnNotLike e chiavi di contesto aws:PrincipalTag eaws:PrincipalArn. Per richiamare l'effetto Allow o Deny desiderato, tutte le chiavi di contesto nel blocco di condizione devono restituire il valore true. L'utente che effettua la richiesta deve avere entrambe le chiavi tag principali, dipartimento e ruolo, che includono uno dei valori chiave dei tag specificati nella policy. Poiché l'operatore di ArnNotLike condizione utilizza la corrispondenza negata, il principale ARN dell'utente che effettua la richiesta non deve corrispondere a nessuno dei aws:PrincipalArn valori specificati nella politica per essere valutato come vero.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExamplePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:PrincipalTag/department": [ "finance", "hr", "legal" ], "aws:PrincipalTag/role": [ "audit", "security" ] }, "ArnNotLike": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:user/Ana", "arn:aws:iam::222222222222:user/Mary" ] } } } ] }