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

4 minuti di lettura
0

Desidero risolvere i problemi di accesso negato o non autorizzato quando accedo al mio servizio AWS.

Breve descrizione

Puoi vedere un errore di accesso negato o non autorizzato se la tua policy AWS Identity and Access Management (IAM) non soddisfa i requisiti di condizioni specifiche.

Per risolvere il problema, rivedi le policy di controllo dei servizi (SCP) del tuo account. Quindi verifica che non siano presenti rifiuti nelle tue policy basate sulle risorse. Se non risolvi l'errore in questo modo, il problema potrebbe essere causato da un limite delle autorizzazioni. Un 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 operazioni consentite sia dalle policy basate sull'identità che dai limiti delle autorizzazioni.

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

Risoluzione

Verifica se un'operazione è consentita nella policy IAM, ma non nel limite delle autorizzazioni

L'esempio seguente mostra un'operazione consentita in una policy IAM, ma non nel limite delle autorizzazioni. In questo esempio, a un utente IAM è collegata la policy USER_IAM_POLICY:

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

Questa policy offre all'utente l'accesso completo ai servizi Amazon Elastic Compute Cloud (Amazon EC2) e Amazon Simple Storage Service (Amazon S3). Per l'utente è inoltre impostato un limite delle autorizzazioni denominato USER\ _PB\ _POLICY.

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, il limite delle autorizzazioni consente l'accesso completo ai servizi Amazon CloudWatch e Amazon S3. Tuttavia, poiché Amazon S3 è l'unico servizio consentito sia nella policy IAM che nel limite delle autorizzazioni, l'utente ha accesso solo a S3. Se l'utente tenta di accedere ad Amazon EC2, riceve un errore di accesso negato.

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

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

Includi tutte le operazioni richieste nel limite delle autorizzazioni utilizzando la console IAM

Segui questi passaggi per modificare il limite delle autorizzazioni in modo da includere tutte le operazioni richieste da un utente:

  1. Apri la console IAM.
  2. Nel pannello di navigazione scegliRuoli/Utenti.
  3. Scegli l'entità IAM che desideri modificare.
  4. Nella sezione Limite delle autorizzazioni controlla le impostazioni. Se è impostato un limite delle autorizzazioni, significa che c'è un limite in vigore. Il nome della policy gestita utilizzata come limite delle autorizzazioni sull'entità IAM è indicato in questa sezione.
  5. Espandi la policy JSON e controlla se l'operazione che desideri eseguire è inserita nella whitelist del limite delle autorizzazioni. Se l'operazione non è nella whitelist, modifica la policy JSON in modo da consentire tutte le operazioni richieste dalla tua entità IAM.

Per ulteriori informazioni sulla modifica delle politiche, consulta Editing IAM policies.

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

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

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 collegala a un amministratore delegato che ha la responsabilità di creare utenti. Quando colleghiamo la policy di esempio seguente all'amministratore, quest'ultimo potrà creare un utente IAM solo collegando la policy RestrictedRegionPermissionsBoundarya tale utente. Se l'amministratore tenta di creare un utente IAM senza collegare 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, segui questi passaggi:

  1. Apri la console IAM.
  2. Nel pannello di navigazione seleziona Utenti, quindi Aggiungi utenti.
  3. Inserisci il nome utente che desideri modificare, scegli il tipo di accesso AWS, quindi fai clic su Avanti.
  4. Espandi la sezione Imposta il limite delle autorizzazioni e scegli Usa un limite delle autorizzazioni per controllare le autorizzazioni massime dei ruoli.
  5. Nel campo di ricerca inserisci RestrictedRegionPermissionsBoundary, quindi seleziona il pulsante di opzione della policy.
  6. Scegli Avanti: Tag.
  7. Rivedi le impostazioni e crea un utente.

Informazioni correlate

Permissions boundaries for IAM entities

Evaluating effective permissions with boundaries

AWS UFFICIALE
AWS UFFICIALEAggiornata 5 mesi fa