Salta al contenuto

Come posso risolvere l'errore "AccessDenied" o "Informazioni non valide" quando ho provato ad assumere un ruolo IAM con più account?

3 minuti di lettura
0

Ho provato ad assumere un ruolo multi-account di AWS Identity and Access Management (IAM), ma ho ricevuto un errore simile al seguente: "Si è verificato un errore (AccessDenied) durante la chiamata all'operazione AssumeRole:" oppure "Informazioni non valide in uno o più campi. Controlla le tue informazioni o contatta il tuo amministratore".

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per assumere il ruolo IAM in un cross-account, modifica innanzitutto le autorizzazioni per l'account che ha assunto il ruolo IAM. Quindi, modifica la politica di fiducia nell'altro account (quello che consente l'assunzione del ruolo IAM).

Ad esempio, supponiamo di avere due account, uno denominato Account_Bob e l'altro denominato Account_Alice. C'è anche un ruolo o utente IAM denominato Bob in Account_Bob e un ruolo IAM denominato Alice in Account_Alice. In questo scenario, Bob assumerà il ruolo IAM chiamato Alice.

Per utilizzare la chiamata API AssumeRole con più account AWS o multi-account, è necessario disporre di una policy di attendibilità per concedere l'autorizzazione ad assumere ruoli simili ai seguenti.

Esempi di autorizzazioni richieste per Bob:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PermissionToAssumeAlice",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::Account_Alice:role/Alice"
    }
  ]
}

Esempio di politica di fiducia richiesta per Alice:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT_Bob:user/Bob"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Esempio di comando AWS CLI per assumere un ruolo IAM tra account:

aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/example-role" --role-session-name assume-cross-account

Per ulteriori informazioni, consulta Come posso assumere un ruolo IAM utilizzando AWS CLI?

Per evitare errori quando assumi un ruolo IAM con più account, assicurati di seguire queste best practice per il tuo caso d'uso:

  • Il ruolo che assume, Bob, deve disporre delle autorizzazioni per l'azione API AssumeRole.
  • Devi accedere all'account AWS come Bob. Per ulteriori informazioni, consulta Usare un alias per l'ID del tuo account AWS.
  • Il ruolo che viene assunto, Alice, deve essere un ruolo esistente. Assicurati che non venga eliminato e che Amazon Resource Name (ARN) sia configurato correttamente.
  • Se utilizzi il concatenamento dei ruoli, assicurati di non utilizzare le credenziali IAM di una sessione precedente. Per ulteriori informazioni, consulta la sezione concatenamento dei ruoli in termini e concetti dei ruoli.
  • Se Account_Bob fa parte di AWS Organizations, potrebbe esistere una policy di controllo dei servizi (SCP) che limita l'accesso ad AssumeRole con Account_Bob o Account_Alice. Assicurati di modificare o rimuovere l'SCP che limita l'accesso con Account_Bob o Account_Alice. Per ulteriori informazioni, consulta SCPs.

Informazioni correlate

Come posso ottenere dati per la risoluzione dei problemi relativi all'accesso negato o non autorizzato alle autorizzazioni IAM?

Passa da un utente a un ruolo IAM (console)

Passaggio a un ruolo IAM (AWS CLI)