AWS JSONelementi politici: NotPrincipal - 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à.

AWS JSONelementi politici: NotPrincipal

È possibile utilizzare l'NotPrincipalelemento per negare l'accesso a tutti i principali tranne l'IAMutente, l'utente federato, il IAM ruolo Account AWS, il AWS servizio o un altro principale specificato nell'elemento. NotPrincipal

Puoi utilizzarlo nelle politiche basate sulle risorse per alcuni servizi, inclusi gli endpoint. AWS VPC Le policy basate su risorse sono policy che vengono incorporate direttamente in una risorsa. Non è possibile utilizzare l'NotPrincipalelemento in una politica IAM basata sull'identità né in una politica di fiducia dei ruoli. IAM

NotPrincipal deve essere usato con "Effect":"Deny". L'uso con "Effect":"Allow" non è supportato.

Importante

Pochissimi scenari richiedono l'utilizzo di NotPrincipal. Si consiglia di esplorare altre opzioni di autorizzazione prima di decidere di utilizzare NotPrincipal. Quando utilizzi NotPrincipal, la risoluzione dei problemi legati agli effetti di più tipi di policy può essere difficile. Si consiglia invece di utilizzare la chiave di aws:PrincipalArn contesto con gli operatori di ARN condizione. Per ulteriori informazioni, consulta Tutti i principali.

Specifica di NotPrincipal con Deny

Quando si utilizza NotPrincipal withDeny, è necessario specificare anche l'account ARN del principale non negato. In caso contrario, la policy potrebbe rifiutare l'accesso all'intero account contenente il principale. A seconda del servizio che si include nella policy, AWS potrebbe convalidare prima l'account e poi l'utente. Se viene valutato un utente con ruolo presunto (qualcuno che utilizza un ruolo), AWS potrebbe convalidare prima l'account, poi il ruolo e poi l'utente assunto. L'utente con ruolo assunto viene identificato tramite il nome della sessione del ruolo specificato quando l'utente ha assunto il ruolo. Pertanto, ti consigliamo vivamente di includere esplicitamente il ARN per l'account di un utente o di includere sia quello per un ruolo che quello ARN per l'account che contiene quel ruolo. ARN

Importante

Non utilizzare dichiarazioni di policy basate su risorse che includono un elemento di NotPrincipal policy con Deny effetto per IAM utenti o ruoli a cui è associata una politica sui limiti delle autorizzazioni. L'NotPrincipalelemento con Deny effetto negherà sempre qualsiasi IAM principio a cui è associata una politica sui limiti delle autorizzazioni, indipendentemente dai valori specificati nell'elemento. NotPrincipal Ciò fa sì che alcuni IAM utenti o ruoli che altrimenti avrebbero accesso alla risorsa perdano l'accesso. Ti consigliamo di modificare le istruzioni di policy basate sulle risorse di modo che, per limitare l'accesso, utilizzino l'operatore di condizione ArnNotEquals con la chiave di contesto aws:PrincipalArn anziché l'elemento NotPrincipal. Per ulteriori informazioni sui limiti delle autorizzazioni, consulta la pagina Limiti delle autorizzazioni per le entità IAM.

Nota

Come procedura consigliata, dovresti includere il codice ARNs relativo all'account nella tua politica. Alcuni servizi richiedono l'accountARN, sebbene ciò non sia richiesto in tutti i casi. Qualsiasi politica esistente priva dei requisiti richiesti ARN continuerà a funzionare, ma le nuove politiche che includono questi servizi devono soddisfare questo requisito. IAMnon tiene traccia di questi servizi e pertanto consiglia di includere sempre l'accountARN.

I seguenti esempi mostrano come utilizzare NotPrincipal e "Effect": "Deny" nella stessa istruzione della policy in modo efficiente.

Esempio IAMUtente di esempio con lo stesso account o con un altro account

Nell'esempio seguente, a tutti i responsabili tranne l'utente denominato Bob in Account AWS 444455556666 viene esplicitamente negato l'accesso a una risorsa. Si noti che, come best practice, l'NotPrincipalelemento contiene sia l'ARNutente Bob che Account AWS quello a cui Bob appartiene (). arn:aws:iam::444455556666:root Se l'NotPrincipalelemento conteneva solo quello di BobARN, l'effetto della policy potrebbe essere quello di negare esplicitamente l'accesso all'elemento Account AWS che contiene l'utente Bob. In alcuni casi, un utente non può avere più autorizzazioni rispetto al rispettivo account padre, quindi se all'account di Bob viene esplicitamente rifiutato l'accesso, Bob potrebbe non essere in grado di accedere alla risorsa.

Questo esempio funziona come previsto quando fa parte di una dichiarazione di politica in una politica basata sulle risorse associata a una risorsa nella stessa o in un'altra Account AWS (non 444455556666). Questo esempio di per sé non concede l'accesso a Bob, omette solo Bob dall'elenco di principali esplicitamente rifiutati. Per consentire a Bob di accedere alla risorsa, un'altra istruzione della policy deve permettere esplicitamente l'accesso tramite "Effect": "Allow".

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "NotPrincipal": {"AWS": [ "arn:aws:iam::444455556666:user/Bob", "arn:aws:iam::444455556666:root" ]}, "Action": "s3:*", "Resource": [ "arn:aws:s3:::BUCKETNAME", "arn:aws:s3:::BUCKETNAME/*" ] }] }
Esempio di IAM ruolo nello stesso account o in un account diverso

Nell'esempio seguente, a tutti i responsabili tranne l'utente con ruolo assunto denominato cross-account-audit-app in Account AWS 444455556666 viene esplicitamente negato l'accesso a una risorsa. Come procedura ottimale, l'NotPrincipalelemento contiene l'utente assunto (), il ruolo (-rolecross-account-audit-app) e il ruolo a cui appartiene il ruolo (cross-account-read-only444455556666). ARN Account AWS Se all'NotPrincipalelemento manca il ruolo, l'effetto ARN della politica potrebbe essere quello di negare esplicitamente l'accesso al ruolo. Analogamente, se all'NotPrincipalelemento manca l'ARNelemento a Account AWS cui appartiene il ruolo, l'effetto della politica potrebbe essere quello di negare esplicitamente l'accesso a tutte Account AWS le entità di quell'account. In alcuni casi, gli utenti con ruolo presunto non possono avere più autorizzazioni del ruolo principale e i ruoli non possono avere più autorizzazioni del ruolo principale Account AWS, quindi quando al ruolo o all'account viene negato esplicitamente l'accesso, l'utente assunto potrebbe non essere in grado di accedere alla risorsa.

Questo esempio funziona come previsto quando fa parte di un'informativa in un criterio basato sulle risorse collegato a una risorsa in un altro (non 444455556666). Account AWS Questo esempio di per sé non consente l'accesso all'utente che assume il ruolo cross-account-audit-app, ma si limita a omettere cross-account-audit-app dall'elenco dei principali che vengono esplicitamente negati. Per cross-account-audit-app consentire l'accesso alla risorsa, un'altra dichiarazione politica deve consentire esplicitamente l'utilizzo di. "Effect": "Allow"

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "NotPrincipal": {"AWS": [ "arn:aws:sts::444455556666:assumed-role/cross-account-read-only-role/cross-account-audit-app", "arn:aws:iam::444455556666:role/cross-account-read-only-role", "arn:aws:iam::444455556666:root" ]}, "Action": "s3:*", "Resource": [ "arn:aws:s3:::Bucket_AccountAudit", "arn:aws:s3:::Bucket_AccountAudit/*" ] }] }

Quando si specifica una sessione con assunzione di ruolo in un elemento NotPrincipal, non è possibile utilizzare un carattere jolly (*) per indicare "tutte le sessioni". Le entità devono sempre fare riferimento a una sessione specifica.