Come posso risolvere i problemi relativi al cambio di ruolo IAM con la Console di gestione AWS?

Ultimo aggiornamento: 05/04/2022

Ho provato a cambiare i ruoli di AWS Identity and Access Management (IAM) utilizzando la Console di gestione AWS e ho ricevuto un errore simile al seguente:

"Informazioni non valide in uno o più campi. Controlla le informazioni o contatta il tuo amministratore".

Breve descrizione

Questo errore può verificarsi a causa di:

  • Autorizzazioni di operazioni AssumeRole errate
  • Policy di attendibilità IAM errata
  • Rifiuto esplicito dalle policy
  • ID account o nome ruolo errati
  • ID esterno necessario per cambiare ruolo
  • Condizioni della policy di attendibilità errate

Risoluzione

Segui queste istruzioni per verificare la configurazione della policy IAM per cambiare i ruoli IAM per il tuo scenario.

Autorizzazioni di operazione AssumeRole mancanti o errate

Per passare a un ruolo IAM, l'entità IAM deve disporre dell'autorizzazione per l'operazione AssumeRole. L'entità IAM deve disporre di una policy con autorizzazione di operazione AssumeRole simile alla seguente:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"  
}

Assicurati che la risorsa corrisponda all'Amazon Resource Name (ARN) del ruolo IAM a cui desideri passare. Per ulteriori informazioni, consulta Concessione a un utente delle autorizzazioni per cambiare ruolo.

La policy di attendibilità dei ruoli IAM non considera attendibile l'ID account dell'utente IAM

La policy di attendibilità dei ruoli IAM definisce i principali che possono assumere il ruolo Verifica che la policy di attendibilità riporta nell'ID account dell'utente IAM come entità principale attendibile. Ad esempio, un utente IAM chiamato Bob con ID account 111222333444 desidera passare a un ruolo IAM chiamato Alice per l'ID account 444555666777. L'ID account 111222333444 è l'account attendibile e l'ID account 444555666777 è l'account affidatario. Il ruolo IAM Alice ha una policy di attendibilità che si fida di Bob simile alla seguente:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": “<111222333444>
            },
            "Condition": {}
        }
    ]
}

Nota: è una best practice seguire il principio del privilegio minimo e specificare l'ARN completo solo per i ruoli di cui l'utente ha bisogno.

Per ulteriori informazioni, consulta Modifica di una policy di attendibilità dei ruoli (console).

Rifiuto esplicito da policy di controllo dei servizi (SCP) o da una policy IAM

Se il tuo account AWS fa parte di una AWS Organizations, allora il tuo account di gestione potrebbe avere SCP. Assicurati che non vi sia alcun rifiuto esplicito da parte degli SCP per l'operazione AssumeRole. Verifica la presenza di SCP che negano le operazioni API in base alle Regioni AWS. AWS Security Token Service (AWS STS) è un servizio globale che deve essere incluso nell'elenco globale di esclusione dei servizi. Assicurati che non vi sia alcun rifiuto esplicito dalle politiche di IAM, perché le istruzioni "deny" hanno la precedenza sulle istruzioni "allow".

Per ulteriori informazioni, consulta Negare l'accesso ad AWS in base alla Regione AWS richiesta.

Verifica l'ID dell'account AWS e il nome del ruolo IAM

Verifica che l'ID account e il nome del ruolo IAM siano corretti nella pagina del cambio ruolo. L'ID account è un identificatore di 12 cifre e il nome del ruolo IAM è il nome del ruolo che si desidera assumere.

Per ulteriori informazioni, consulta Cose da sapere sul cambio dei ruoli nella console.

Richiedere un ID esterno per passare al ruolo IAM

Gli amministratori possono utilizzare un ID esterno per consentire l'accesso di terze parti alle risorse AWS. Non è possibile cambiare i ruoli IAM nella Console di gestione AWS con un ruolo che richiede un chiave-valore di condizione ExternalID. È possibile passare ai ruoli IAM solo chiamando l'operazione AssumeRole che supporta la chiave ExternalId.

Per ulteriori informazioni, consulta Come usare un'ID esterno quando si concede accesso alle tue risorse AWS a terzi.

Condizioni valide per la policy di attendibilità dei ruoli IAM

Verifica di soddisfare tutte le condizioni specificate nella policy di attendibilità del ruolo IAM. Una condizione può specificare una data di scadenza, un ID esterno o che le richieste debbano provenire solo da indirizzi IP specifici. Nella seguente policy di esempio, se la data attuale è successiva alla data specificata, la condizione è falsa. La policy non può concedere le autorizzazioni per assumere il ruolo IAM.

"Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
    "Condition": {
        "DateLessThan" : {
            "aws:CurrentTime" : "2016-05-01T12:00:00Z"
        }
    }