Limiti delle autorizzazioni per le entità IAM - 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à.

Limiti delle autorizzazioni per le entità IAM

AWS supporta i limiti delle autorizzazioni per IAM le entità (utenti o ruoli). Un limite di autorizzazioni è una funzionalità avanzata che consente di utilizzare una politica gestita per impostare le autorizzazioni massime che una politica basata sull'identità può concedere a un'entità. IAM Il limite delle autorizzazioni di un'entità consente di eseguire solo le operazioni consentite dalle sue policy basate su identità e dai suoi limiti delle autorizzazioni.

Per ulteriori informazioni sui tipi di policy, consulta Tipi di policy.

Importante

Non utilizzare dichiarazioni politiche basate sulle risorse che includono un elemento di policy con Deny effetto per IAM utenti o ruoli a cui è associata una NotPrincipal 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 sull'elemento NotPrincipal, consulta la pagina AWS JSONelementi politici: NotPrincipal.

È possibile utilizzare una politica AWS gestita o una politica gestita dal cliente per impostare il limite per un'IAMentità (utente o ruolo). La policy limita il numero massimo di autorizzazioni per l'utente o il ruolo.

Ad esempio, supponiamo che all'IAMutente denominato ShirleyRodriguez debba essere consentito di gestire solo Amazon S3 CloudWatch, Amazon e Amazon. EC2 Per applicare la regola, puoi utilizzare la policy seguente per impostare il limite delle autorizzazioni per l'utente ShirleyRodriguez:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*", "cloudwatch:*", "ec2:*" ], "Resource": "*" } ] }

Quando utilizzi una policy per impostare il limite delle autorizzazioni per un utente, questa limita le autorizzazioni dell'utente, ma non le fornisce di per sé. In questo esempio, la policy imposta le autorizzazioni massime di tutte ShirleyRodriguez le operazioni in Amazon S3 CloudWatch e Amazon. EC2 Shirley non può mai eseguire operazioni su nessun altro servizioIAM, nemmeno se dispone di una politica di autorizzazioni che lo consenta. Ad esempio, prova ad aggiungere la policy seguente all'utente ShirleyRodriguez:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:CreateUser", "Resource": "*" } }

Questa politica consente di creare un utente in. IAM Se colleghi questa policy di autorizzazione all'utente ShirleyRodriguez e Shirley tenta di creare un utente, l'operazione ha esito negativo. Non riesce perché il limite delle autorizzazioni non consente l'operazione iam:CreateUser. Date queste due policy, Shirley non ha il permesso di eseguire alcuna operazione in AWS. È necessario aggiungere una policy di autorizzazioni diversa per consentire operazioni in altri servizi, ad esempio Amazon S3. In alternativa, puoi aggiornare il limite delle autorizzazioni per consentirle di creare un utente in. IAM

Valutazione delle autorizzazioni valide con i limiti

Il limite delle autorizzazioni per un'IAMentità (utente o ruolo) imposta le autorizzazioni massime che l'entità può avere. Questo può influire sulle autorizzazioni valide per l'utente o il ruolo. Le autorizzazioni valide per un'entità sono quelle concesse da tutte le policy che interessano l'utente o il ruolo. All'interno di un account, le autorizzazioni per un'entità possono essere influenzate da politiche basate sull'identità, politiche basate sulle risorse, limiti delle autorizzazioni, Organizations o policy di sessione. SCPs Per ulteriori informazioni sui diversi tipi di policy, consulta Politiche e autorizzazioni in AWS Identity and Access Management.

Se uno di questi tipi di policy rifiuta esplicitamente l'accesso per un'operazione, la richiesta viene rifiutata. Le autorizzazioni concesse a un'entità in base a diversi tipi di autorizzazioni sono più complesse. Per ulteriori dettagli su come valuta le politiche, consulta. AWS Logica di valutazione delle policy

Policy basate su identità con limiti: le policy basate su identità sono policy in linea o gestite collegate a un utente, un gruppo di utenti o un ruolo. Le policy basate su identità concedono autorizzazioni all'entità e i limiti delle autorizzazioni limitano tali autorizzazioni. Le autorizzazioni effettive sono l'intersezione di entrambi i tipi di policy. Un rifiuto esplicito in una di queste policy sostituisce l'autorizzazione.

Valutazione delle policy basate su identità e dei limiti delle autorizzazioni

Policy basate su risorse: le policy basate su risorse controllano il modo in cui l'entità principale specificata può accedere alla risorsa a cui la policy è collegata.

Policy basate su risorse per utenti IAM

All'interno dello stesso account, le politiche basate sulle risorse che concedono autorizzazioni a un IAM utente ARN (che non è una sessione utente federata) non sono limitate da una negazione implicita in una politica o un limite di autorizzazioni basato sull'identità.

Valutazione di una policy basata su risorse, di un limite delle autorizzazioni e di una policy basata su identità
Politiche basate sulle risorse per i ruoli IAM

IAMruolo: le politiche basate sulle risorse che concedono le autorizzazioni a un IAM ruolo ARN sono limitate da una negazione implicita in un limite di autorizzazioni o in una politica di sessione.

IAMsessione di ruolo: all'interno dello stesso account, le politiche basate sulle risorse che concedono le autorizzazioni a una sessione di ruolo le concedono direttamente alla sessione di ruolo presunta. IAM ARN Le autorizzazioni concesse direttamente a una sessione non sono limitate da un rifiuto implicito in una policy basata su identità, da un limite delle autorizzazioni o da una policy di sessione. Quando si assume un ruolo e si effettua una richiesta, il principale che effettua la richiesta è la sessione di IAM ruolo ARN e non la responsabile del ARN ruolo stesso.

Politiche basate sulle risorse per IAM sessioni utente federate

IAMsessioni utente federate: una sessione utente IAM federata è una sessione creata chiamando. GetFederationToken Quando un utente federato effettua una richiesta, il principale che effettua la richiesta è l'utente federato ARN e non l'utente che ha effettuato la ARN federazione. IAM All'interno dello stesso account, le politiche basate sulle risorse che concedono le autorizzazioni a un utente federato concedono le autorizzazioni direttamente alla sessione. ARN Le autorizzazioni concesse direttamente a una sessione non sono limitate da un rifiuto implicito in una policy basata su identità, da un limite delle autorizzazioni o da una policy di sessione.

Tuttavia, se una politica basata sulle risorse concede l'autorizzazione all'IAMutente che ha effettuato la federazione, le ARN richieste effettuate dall'utente federato durante la sessione sono limitate da una negazione implicita in un limite di autorizzazione o in un criterio di sessione.

Organizzazioni SCPs: SCPs vengono applicate a un insieme Account AWS. Limitano le autorizzazioni per ogni richiesta effettuata da un'entità principale all'interno dell'account. Un'IAMentità (utente o ruolo) può effettuare una richiesta che è influenzata da un SCP limite di autorizzazioni e da una politica basata sull'identità. In questo caso, la richiesta è consentita solo se tutti e tre i tipi di policy la consentono. Le autorizzazioni effettive sono l'intersezione di tutti e tre i tipi di policy. Un rifiuto esplicito in una qualsiasi di queste policy sostituisce l'autorizzazione.

Valutazione di una politica basata sull'identità e sui SCP limiti delle autorizzazioni

Puoi scoprire se il tuo account è un membro di un'organizzazione in AWS Organizations. I membri dell'organizzazione potrebbero essere interessati da un. SCP Per visualizzare questi dati utilizzando il AWS CLI comando o l' AWS APIoperazione, è necessario disporre delle autorizzazioni per l'organizations:DescribeOrganizationazione per l'entità Organizations. È necessario disporre delle autorizzazioni aggiuntive per eseguire l'operazione nella console Organizations. Per sapere se an SCP sta negando l'accesso a una richiesta specifica o per modificare le autorizzazioni effettive, contatta l'amministratore. AWS Organizations

Policy di sessione: le policy di sessione sono policy avanzate che vengono trasmesse come parametro quando si crea in modo programmatico una sessione temporanea per un ruolo o un utente federato. Le autorizzazioni per una sessione provengono dall'IAMentità (utente o ruolo) utilizzata per creare la sessione e dalla politica della sessione. Le autorizzazioni della policy basata su identità dell'entità sono limitate dalla policy di sessione e dal limite delle autorizzazioni. Le autorizzazioni effettive per questo set di tipi di policy sono l'intersezione di tutti e tre i tipi di policy. Un rifiuto esplicito in una qualsiasi di queste policy sostituisce l'autorizzazione. Per ulteriori informazioni sulle policy di sessione, consulta la sezione relativa alle policy di sessione.

Valutazione di una policy di sessione, di un limite delle autorizzazioni e di una policy basata su identità

Delega di responsabilità ad altri mediante i limiti delle autorizzazioni

Puoi utilizzare i limiti delle autorizzazioni per delegare attività di gestione delle autorizzazioni, come la creazione di utenti, agli IAM utenti del tuo account. Questo consente ad altri di eseguire operazioni a tuo nome all'interno di un limite specifico di autorizzazioni.

Ad esempio, supponiamo che María sia l'amministratore di X-Company. Account AWS María vuole delegare l'attività di creazione di utenti a Zhang. Tuttavia, deve accertarsi che gli utenti creati da Zhang siano conformi alle seguenti regole aziendali:

  • Gli utenti non possono IAM utilizzare per creare o gestire utenti, gruppi, ruoli o politiche.

  • Agli utenti viene negato l'accesso al logs bucket Amazon S3 e non possono accedere all'istanza Amazoni-1234567890abcdef0. EC2

  • Gli utenti non possono rimuovere le proprie policy limite.

Per applicare queste regole, María completa le attività seguenti, i cui dettagli sono riportati di seguito:

  1. María crea la policy gestita XCompanyBoundaries da utilizzare come limite delle autorizzazioni per tutti i nuovi utenti nell'account.

  2. María crea la policy gestita DelegatedUserBoundary e la assegna come limite delle autorizzazioni per Zhang. Maria prende nota dei dati del suo utente amministratore ARN e li utilizza nella policy per impedire a Zhang di accedervi.

  3. María crea la policy gestita DelegatedUserPermissions e la collega alla policy di autorizzazione per Zhang.

  4. María comunica a Zhang le sue nuove responsabilità e limitazioni.

Attività 1: María deve prima creare una policy gestita per definire il limite per i nuovi utenti. María deve consentire a Zhang di concedere agli utenti le policy di autorizzazione necessarie, ma vuole che tali utenti abbiano delle limitazioni. A tale scopo, crea questa policy gestita dal cliente, denominata XCompanyBoundaries. Questa policy esegue le seguenti operazioni:

  • Consente agli utenti l'accesso completo a diversi servizi

  • Consente un accesso limitato all'autogestione nella IAM console. Ciò significa che è possibile modificare la password dopo aver effettuato l'accesso alla console. Non è possibile impostare la password iniziale. Per consentire questa operazione, aggiungere l'operazione "*LoginProfile" all'istruzione AllowManageOwnPasswordAndAccessKeys.

  • Nega agli utenti l'accesso al bucket di log di Amazon S3 o all'istanza Amazon i-1234567890abcdef0 EC2

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ServiceBoundaries", "Effect": "Allow", "Action": [ "s3:*", "cloudwatch:*", "ec2:*", "dynamodb:*" ], "Resource": "*" }, { "Sid": "AllowIAMConsoleForCredentials", "Effect": "Allow", "Action": [ "iam:ListUsers", "iam:GetAccountPasswordPolicy" ], "Resource": "*" }, { "Sid": "AllowManageOwnPasswordAndAccessKeys", "Effect": "Allow", "Action": [ "iam:*AccessKey*", "iam:ChangePassword", "iam:GetUser", "iam:*ServiceSpecificCredential*", "iam:*SigningCertificate*" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::logs", "arn:aws:s3:::logs/*" ] }, { "Sid": "DenyEC2Production", "Effect": "Deny", "Action": "ec2:*", "Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0" } ] }

Ogni istruzione svolge una funzione diversa:

  1. La ServiceBoundaries dichiarazione di questa politica consente l'accesso completo ai servizi specificati. AWS Ciò significa che le operazioni di un nuovo utente in questi servizi sono limitate solo dalle policy di autorizzazione collegate all'utente.

  2. L'AllowIAMConsoleForCredentialsistruzione consente l'accesso all'elenco di tutti IAM gli utenti. Questo accesso è necessario per navigare nella pagina Users (Utenti) nella AWS Management Console. Inoltre, consente di visualizzare i requisiti associati alle password per l'account, necessari per modificare la password.

  3. L'istruzione AllowManageOwnPasswordAndAccessKeys consente agli utenti di gestire solo le proprie chiavi di accesso a livello di programmazione e le password della console. Questo è importante se Zhang o un altro amministratore assegnano a un nuovo utente una politica di autorizzazioni con accesso completo. IAM In tal caso, l'utente può modificare le proprie autorizzazioni o quelle di altri utenti. Questa istruzione impedisce che ciò si verifichi.

  4. L'istruzione DenyS3Logs nega esplicitamente l'accesso al bucket logs.

  5. L'istruzione DenyEC2Production nega esplicitamente l'accesso all'istanza i-1234567890abcdef0.

Attività 2: María vuole consentire a Zhang di creare tutti gli utenti X-Company, ma solo con il limite delle autorizzazioni XCompanyBoundaries. A tale scopo, crea questa policy gestita dal cliente, denominata DelegatedUserBoundary. Questa policy definisce il numero massimo di autorizzazioni di cui Zhang può disporre.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateOrChangeOnlyWithBoundary", "Effect": "Allow", "Action": [ "iam:AttachUserPolicy", "iam:CreateUser", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:PutUserPermissionsBoundary", "iam:PutUserPolicy" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PermissionsBoundary": "arn:aws:iam::123456789012:policy/XCompanyBoundaries" } } }, { "Sid": "CloudWatchAndOtherIAMTasks", "Effect": "Allow", "Action": [ "cloudwatch:*", "iam:CreateAccessKey", "iam:CreateGroup", "iam:CreateLoginProfile", "iam:CreatePolicy", "iam:DeleteGroup", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:DeleteUser", "iam:GetAccountPasswordPolicy", "iam:GetGroup", "iam:GetLoginProfile", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRolePolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAccessKeys", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListEntitiesForPolicy", "iam:ListGroups", "iam:ListGroupsForUser", "iam:ListMFADevices", "iam:ListPolicies", "iam:ListPolicyVersions", "iam:ListRolePolicies", "iam:ListSSHPublicKeys", "iam:ListServiceSpecificCredentials", "iam:ListSigningCertificates", "iam:ListUserPolicies", "iam:ListUsers", "iam:SetDefaultPolicyVersion", "iam:SimulateCustomPolicy", "iam:SimulatePrincipalPolicy", "iam:UpdateGroup", "iam:UpdateLoginProfile", "iam:UpdateUser" ], "NotResource": "arn:aws:iam::123456789012:user/Maria" }, { "Sid": "NoBoundaryPolicyEdit", "Effect": "Deny", "Action": [ "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": [ "arn:aws:iam::123456789012:policy/XCompanyBoundaries", "arn:aws:iam::123456789012:policy/DelegatedUserBoundary" ] }, { "Sid": "NoBoundaryUserDelete", "Effect": "Deny", "Action": "iam:DeleteUserPermissionsBoundary", "Resource": "*" } ] }

Ogni istruzione svolge una funzione diversa:

  1. L'CreateOrChangeOnlyWithBoundaryistruzione consente a Zhang di creare IAM utenti, ma solo se utilizza la XCompanyBoundaries politica per impostare i limiti delle autorizzazioni. L'istruzione gli consente inoltre di impostare il limite delle autorizzazioni per gli utenti esistenti, ma solo utilizzando la stessa policy. Infine, consente a Zhang di gestire le policy di autorizzazione per gli utenti per i quali è stato impostato questo limite delle autorizzazioni.

  2. L'istruzione CloudWatchAndOtherIAMTasks consente a Zhang di completare altre attività di gestione di utenti, gruppi e policy. Ha i permessi per reimpostare le password e creare chiavi di accesso per qualsiasi IAM utente non elencato nell'elemento della policy. NotResource Questo gli consente di aiutare gli utenti con problemi di accesso.

  3. L'istruzione NoBoundaryPolicyEdit nega a Zhang l'accesso per aggiornare la policy XCompanyBoundaries. Zhang non può modificare alcuna policy utilizzata per impostare il limite delle autorizzazioni per sé o per altri utenti.

  4. L'istruzione NoBoundaryUserDelete nega a Zhang l'accesso per eliminare il limite delle autorizzazioni per sé o per altri utenti.

María assegna quindi la policy DelegatedUserBoundary come limite delle autorizzazioni per l'utente Zhang.

Attività 3: poiché il limite delle autorizzazioni controlla il numero massimo di autorizzazioni, ma non concede l'accesso di per sé, María deve creare una policy di autorizzazione per Zhang. A tale scopo, crea questa policy, denominata DelegatedUserPermissions. Questa policy definisce le operazioni che Zhang può eseguire, entro il limite definito.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAM", "Effect": "Allow", "Action": "iam:*", "Resource": "*" }, { "Sid": "CloudWatchLimited", "Effect": "Allow", "Action": [ "cloudwatch:GetDashboard", "cloudwatch:GetMetricData", "cloudwatch:ListDashboards", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics" ], "Resource": "*" }, { "Sid": "S3BucketContents", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::ZhangBucket" } ] }

Ogni istruzione svolge una funzione diversa:

  1. La IAM dichiarazione della politica consente a Zhang l'accesso completo a. IAM Tuttavia, poiché il suo limite di autorizzazioni consente solo alcune IAM operazioni, le sue autorizzazioni effettive sono limitate solo dal limite delle sue IAM autorizzazioni.

  2. L'CloudWatchLimitedistruzione consente a Zhang di eseguire cinque azioni in. CloudWatch Il suo limite di autorizzazioni consente l'accesso a tutte le azioni CloudWatch, quindi le sue CloudWatch autorizzazioni effettive sono limitate solo dalla sua politica sulle autorizzazioni.

  3. L'istruzione S3BucketContents consente a Zhang di visualizzare il bucket ZhangBucket di Amazon S3. Tuttavia, il limite delle autorizzazioni di Zhang non gli consente alcuna operazione in Amazon S3, quindi non può eseguire operazioni S3, indipendentemente dalla sua policy di autorizzazione.

    Nota

    Le policy di Zhang gli permettono di creare un utente in grado di accedere alle risorse Amazon S3 a cui lui non può accedere. Delegando queste operazioni amministrative, Maria di fatto si fida dell'accesso di Zhang ad Amazon S3.

María collega quindi la policy DelegatedUserPermissions come policy di autorizzazione per l'utente Zhang.

Attività 4: María fornisce a Zhang le istruzioni per creare un nuovo utente. Zhang può creare nuovi utenti con tutte le autorizzazioni necessarie, ma deve assegnare loro la policy XCompanyBoundaries come limite delle autorizzazioni.

Zhang completa le attività seguenti:

  1. Zhang crea un utente con. AWS Management Console Digita il nome utente Nikhil e consente l'accesso alla console a tale utente. Deseleziona la casella di controllo accanto a Richiede la reimpostazione della password, poiché le politiche sopra riportate consentono agli utenti di modificare le proprie password solo dopo aver effettuato l'accesso alla console. IAM

  2. Nella pagina Imposta le autorizzazioni, Zhang sceglie le politiche di autorizzazione IAMFullAccesse quelle di AmazonS3 che consentono a Nikhil di ReadOnlyAccess svolgere il suo lavoro.

  3. Zhang salta la sezione Set permissions boundary (Imposta limite delle autorizzazioni), dimenticando le indicazioni di María.

  4. Zhang esamina i dettagli utente e seleziona Create user (Crea utente).

    L'operazione ha esito negativo e l'accesso viene negato. In base al limite delle autorizzazioni di Zhang, DelegatedUserBoundary, qualsiasi utente da lui creato deve includere la policy XCompanyBoundaries come limite delle autorizzazioni.

  5. Zhang torna alla pagina precedente. Nella sezione Set permissions boundary (Imposta limite delle autorizzazioni), seleziona la policy XCompanyBoundaries.

  6. Zhang esamina i dettagli utente e seleziona Create user (Crea utente).

    L'utente viene creato.

Quando Nikhil accede, ha accesso ad Amazon S3 IAM e ad Amazon S3, ad eccezione delle operazioni che vengono negate dal limite delle autorizzazioni. Ad esempio, può modificare la propria password IAM ma non può creare un altro utente o modificare le sue politiche. Nikhil ha accesso in sola lettura ad Amazon S3.

Se qualcuno aggiunge una policy basata sulle risorse al bucket logs che consente a Nikhil di inserire un oggetto nel bucket, significa che non può ancora accedere al bucket. Questo perché qualsiasi operazione sul bucket logs è esplicitamente rifiutata dal suo limite delle autorizzazioni. Un rifiuto esplicito in qualsiasi tipo di policy determina il rifiuto di una richiesta. Tuttavia, se una policy basata sulle risorse collegata a un segreto di Secrets Manager consente a Nikhil di eseguire l'operazione secretsmanager:GetSecretValue, allora Nikhil potrà recuperare e decrittare il segreto. Questo perché le operazioni di Secrets Manager non sono esplicitamente rifiutate dal suo limite delle autorizzazioni e i rifiuti impliciti nei limiti delle autorizzazioni non limitano le policy basate sulle risorse.