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 Elementi della policy JSON: NotPrincipal
L’elemento NotPrincipal utilizza "Effect":"Deny" per negare l’accesso a tutti i principali tranne il principale specificato nell’elemento NotPrincipal. Un principale può essere un utente IAM, un utente AWS STS federato, un ruolo IAM, una sessione di ruolo presunta Account AWS, un AWS servizio o un altro tipo principale. Per ulteriori informazioni sui principali, consulta AWS Elementi della policy JSON: Principal.
NotPrincipal deve essere usato con "Effect":"Deny". L'uso con "Effect":"Allow" non è supportato.
Importante
Si sconsiglia l’uso di NotPrincipal per nuove policy basate sulle risorse come parte della strategia di sicurezza e autorizzazione. Quando utilizzi NotPrincipal, la risoluzione dei problemi legati agli effetti di più tipi di policy può essere difficile. Con gli operatori di condizione ARN, si consiglia invece di utilizzare la chiave di contesto aws:PrincipalArn.
Punti chiave
-
L’elemento
NotPrincipalè supportato nelle policy basate sulle risorse per alcuni servizi AWS , tra cui gli endpoint VPC. Le policy basate su risorse sono policy che vengono incorporate direttamente in una risorsa. Non puoi utilizzare l'elementoNotPrincipalin una policy basata sull'identità IAM o in una policy di attendibilità del ruolo IAM. -
Non utilizzare istruzioni di policy basate sulle risorse che includono un elemento di policy
NotPrincipalcon effettoDenyper gli utenti o i ruoli IAM ai quali è collegata una policy con limite delle autorizzazioni. L'elementoNotPrincipalcon effettoDenyrifiuterà sempre qualsiasi principale IAM al quale è collegata una policy con limite delle autorizzazioni, indipendentemente dai valori specificati nell'elementoNotPrincipal. Ciò fa sì che alcuni utenti o ruoli IAM 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'elementoNotPrincipal. Per ulteriori informazioni sui limiti delle autorizzazioni, consulta la pagina Limiti delle autorizzazioni per le entità IAM. -
Quando si utilizza
NotPrincipal, è necessario specificare anche l’ARN dell’account del principale non rifiutato. 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, è fortemente consigliabile includere esplicitamente l'ARN di un account utente oppure includere sia l'ARN di un ruolo sia l'ARN dell'account che contiene quel ruolo. -
L’elemento
NotPrincipalnon è supportato nelle policy di controllo dei servizi (SCP) e nelle policy di controllo delle risorse (RCP).
Alternative all’elemento NotPrincipal
Quando si gestisce il controllo degli accessi in AWS, può verificarsi la necessità di negare esplicitamente a tutti i responsabili l'accesso a una risorsa, ad eccezione di uno o più principali specificati dall'utente. AWS
consiglia di utilizzare un'istruzione Deny con tasti contestuali delle condizioni globali per un controllo più preciso e una risoluzione dei problemi più semplice. Gli esempi seguenti mostrano approcci alternativi che utilizzano operatori di condizione come StringNotEquals o ArnNotEquals per negare l’accesso a tutti i principali, ad eccezione di quelli specificati nell’elemento Condizione.
Scenario di esempio che utilizza un ruolo IAM
Puoi utilizzare una policy basata sulle risorse con un’istruzione Nega per impedire a tutti i ruoli IAM, ad eccezione di quelli specificati nell’elemento Condizione, di accedere alle tue risorse o di manipolarle. Questo approccio segue il principio AWS di sicurezza secondo cui un'esplicita deny ha sempre la precedenza su qualsiasi istruzione di autorizzazione e aiuta a mantenere il principio del privilegio minimo nell'infrastruttura. AWS
Invece di usare NotPrincipal, consigliamo di utilizzare un’istruzione Nega con chiavi di contesto di condizione globali e l’operatore di condizione come ArnNotEquals per consentire esplicitamente a un ruolo IAM l’accesso alle tue risorse. L’esempio seguente impiega aws:PrincipalArn per consentire esplicitamente al ruolo read-only-role di accedere ai bucket Amazon S3 nella cartella Bucket_Account_Audit.
Scenario di esempio che utilizza un principale del servizio
È possibile utilizzare un’istruzione Nega per impedire a tutti i principali del servizio, ad eccezione di quelli specificati nell’elemento Condition, di accedere alle risorse o di manipolarle. Questo approccio è particolarmente utile quando è necessario implementare controlli di accesso granulari o stabilire limiti di sicurezza tra diversi servizi e applicazioni nell’ambiente AWS
.
Invece di usare NotPrincipal, consigliamo di utilizzare un’istruzione Nega con chiavi di contesto di condizione globali e l’operatore di condizione StringNotEquals per consentire esplicitamente a un principale del servizio l’accesso alle tue risorse. L’esempio seguente impiega aws:PrincipalServiceName per consentire esplicitamente al principale del servizio AWS CodeBuild di accedere ai bucket Amazon S3 nella cartella BUCKETNAME.