Come posso risolvere i problemi di accesso negato causati dai limiti delle autorizzazioni?

Ultimo aggiornamento: 21.03.2022

Ho ricevuto un errore di accesso negato o non autorizzato durante un tentativo di accesso al mio servizio AWS. Come posso risolvere gli errori di accesso negato sul mio account AWS?

Breve descrizione

Potresti ricevere un errore di accesso negato o non autorizzato perché la tua policy AWS Identity and Access Management (IAM) non soddisfa i requisiti delle condizioni specifiche. Per prima cosa, rivedi tutte le policy di controllo dei servizi (SCP) sul tuo account, quindi verifica che non ci siano negazioni presenti nelle tue politiche basate sulle risorse. Se questa operazione non risolve l'errore, il problema potrebbe essere causato dalla presenza di un limite delle autorizzazioni.

Il limite delle autorizzazioni è una funzionalità che consente di utilizzare una policy gestita per impostare le autorizzazioni massime che una policy basata sull'identità può concedere a un'entità IAM (utente o ruolo). Quando imposti un limite delle autorizzazioni per un'entità, tale entità può eseguire solo azioni consentite sia dalle policy basate sull'identità sia dai limiti delle autorizzazioni.

Nota: il limite delle autorizzazioni imposta le autorizzazioni massime per un'entità, ma non concede tali autorizzazioni.

Per risolvere gli errori di autorizzazione, attieniti alla seguente procedura:

  • Verifica bene: è possibile che un'azione sia consentita nella tua policy IAM ma non nei limiti delle autorizzazioni
  • Includi nei limiti delle autorizzazioni tutte le azioni necessarie utilizzando la console IAM
  • Utilizza la chiave di condizione «iam:PermissionsBoundary» nella tua policy IAM

Risoluzione

Verifica bene: è possibile che un'azione sia consentita nella tua policy IAM, ma non nei limiti delle autorizzazioni

Nell'esempio seguente viene illustrata un'azione consentita in una policy IAM, ma non nei limiti delle autorizzazioni. In questo esempio, a un utente IAM è associata la policy USER_IAM_POLICY:

IAM policy:(USER_IAM_POLICY )
 “Effect”: “Allow”,
            “Action”: [
                “ec2:*”,
                “s3:*”
            ],

Questa policy offre all'utente pieno accesso ai servizi Amazon Elastic Compute Cloud (Amazon EC2) e Amazon Simple Storage Service (Amazon S3). L'utente dispone anche di un limite delle autorizzazioni denominato USER_PB_POLICY impostato.

Permissions Boundary:(USER_PB_POLICY)
 “Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”
            ],

Il limite delle autorizzazioni imposta le autorizzazioni massime che l'utente può eseguire. In questo esempio, questo limite di autorizzazione consente l'accesso completo ai servizi Amazon CloudWatch e Amazon S3. Tuttavia, poiché Amazon S3 è l'unico servizio consentito sia nella policy IAM che nei limiti delle autorizzazioni, l'utente ha accesso solo a S3. Se l'utente tenta di accedere ad Amazon EC2, riceverà un errore di accesso negato.

Per risolvere questo errore, modifica il limite delle autorizzazioni e consenti l'accesso ad Amazon EC2:

“Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”,
                “ec2:*”
            ],

Includi nei limiti delle autorizzazioni tutte le azioni necessarie utilizzando la console IAM

Attieniti alla seguente procedura per modificare i limiti delle autorizzazioni in modo da includere tutte le azioni necessarie a un utente:

  1. Apri la console IAM.
  2. Nel riquadro di navigazione, seleziona Ruoli.
  3. Scegli l'entità IAM che desideri modificare.
  4. Nella sezione Limiti delle autorizzazioni, controlla le tue impostazioni. Se è impostato un limite delle autorizzazioni, significa che è presente un limite delle autorizzazioni. Il nome della policy gestita utilizzata come limite di autorizzazioni sull'entità IAM è elencato in questa sezione.
  5. Espandi la policy JSON e verifica se l'azione necessaria è inserita negli elementi consentiti dai limiti delle autorizzazioni. Se la tua azione non è tra gli elementi consentiti, modifica la policy JSON in modo da consentire tutte le azioni necessarie alla tua entità IAM.

Per ulteriori informazioni sulla modifica delle policy, vedi Modifica delle policy IAM.

Usa la chiave di condizione iam:PermissionsBoundary nelle tue policy IAM

Aggiungi la chiave di condizione iam:PermissionsBoundary alle tue policy IAM. Questa chiave condizionale verifica che una policy specifica sia associata a un'entità IAM come limite delle autorizzazioni.

L'esempio seguente mostra una policy IAM denominata RestrictedRegionPermissionsBoundary:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EC2RestrictRegion",
            "Effect": “Allow”,
            "Action": "ec2:*” 
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "us-east-1"
                   ]
                }
            }
        }

Crea una policy e associala a un amministratore delegato che ha la responsabilità di creare utenti. Quando associamo le seguenti policy di esempio all'amministratore, l'amministratore potrà creare un utente IAM solo quando associa la policy RestrictedRegionPermissionsBoundary a quell'utente. Se l'amministratore tenta di creare un utente IAM senza allegare la policy, riceverà un errore di accesso negato.

{
            "Sid": "CreateUser",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser"
            ],
            "Resource": "arn:aws:iam::111222333444:user/test1*",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::111222333444:policy/RestrictedRegionPermissionsBoundary"
                }
            }

Per impostare la policy IAM RestrictedRegionPermissionsBoundary come limite delle autorizzazioni durante la creazione di un nuovo utente, attieniti alla seguente procedura:

  1. Apri la console IAM.
  2. Nel riquadro di navigazione, scegli Utenti, quindi scegli Aggiungi utenti.
  3. Inserisci il nome utente che desideri modificare, scegli il tipo di accesso AWS, quindi scegli avanti.
  4. Espandi la sezione Imposta i limiti delle autorizzazioni e scegli Usa un limite delle autorizzazioni per controllare le autorizzazioni massime per ruolo.
  5. Nel campo di ricerca, inserisci RestrictedRegionPermissionsBoundary, quindi scegli il pulsante di opzione corrispondente alla tua policy.
  6. Scegli Avanti:Tag.
  7. Controlla le tue impostazioni e crea un utente.

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?