Salta al contenuto

Come posso risolvere i problemi che riscontro quando utilizzo la Console di gestione AWS per scambiare ruoli IAM?

5 minuti di lettura
0

Ho usato la Console di gestione AWS per provare a scambiare ruoli AWS Identity and Access Management (AWS IAM). Tuttavia, ho ricevuto il seguente errore: "Invalid information in one or more fields. Check your information or contact your administrator."

Breve descrizione

Ricevi il messaggio di errore Invalid information in one or more fields quando una policy è configurata in modo errato. Potresti anche riceverlo quando la richiesta non soddisfa le condizioni di una policy di attendibilità.

Risoluzione

Configura le autorizzazioni AssumeRole per l'utente o il ruolo IAM

Per concedere a un utente le autorizzazioni per scambiare ruoli, aggiungi l'azione AssumeRole del Servizio di token di sicurezza AWS (AWS STS) alla policy dell'identità IAM.

Esempio di policy:

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

Nota: sostituisci arn:aws:iam::account_id_number:role/role-name-you-want-to assume con il nome della risorsa Amazon (ARN) del ruolo IAM.

Verifica che la policy di attendibilità del ruolo IAM includa un principale

Aggiorna la policy di attendibilità includendo un principale. Il principale può essere un utente o un ruolo IAM oppure un account AWS.

Nota: se aggiungi un account come principale attendibile, tutte le identità nell'account possono assumere il ruolo. Tuttavia, le identità devono disporre dell'autorizzazione AssumeRole.

Ad esempio, l'utente IAM Carlos nell'ID account 111222333444 desidera assumere il ruolo di Maria nell'ID account 444555666777.

L'ID account 111222333444 è l'account ritenuto attendibile e l'account ID 444555666777 è l'account che riconosce l'attendibilità. Il ruolo IAM di Maria ha una policy di attendibilità che ritiene attendibile Carlos.

Esempio di policy di attendibilità per il ruolo IAM di Maria:

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

Carlos deve inoltre disporre di una policy IAM per assumere il ruolo IAM di Maria nell'altro account.

Esempio di policy IAM che prevede che Carlos assuma il ruolo IAM di Maria:

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

Per consentire a tutte le identità IAM di un account di assumere il ruolo, utilizza il principale root dell'account.

Nella policy di attendibilità del ruolo IAM di Maria, sostituisci user/Carlos con root:

"AWS": "arn:aws:iam::111222333444:root"

Nella policy di attendibilità del ruolo IAM di Maria, puoi anche utilizzare il carattere jolly (\ *) in modo che l'utente possa assumere qualsiasi ruolo in qualsiasi account:

"Resource": "arn:aws:iam::444555666777:role/\\\*"

Le modifiche precedenti consentono a qualsiasi utente o ruolo IAM nell'account 111222333444 di assumere il ruolo IAM di Maria nell'account ID 444555666777. Per ridurre al minimo il numero di identità che possono assumere il ruolo, è consigliabile specificare l'ARN del solo utente o ruolo IAM che richiede l'accesso.

Per ulteriori informazioni, consulta Aggiornamento di una policy di attendibilità del ruolo.

Diniego esplicito in una policy SCP o IAM

Se l'account fa parte di AWS Organizations, l'account di gestione potrebbe applicare policy di controllo dei servizi (SCP) che limitano lo scambio di ruoli. Per ulteriori informazioni, consulta Best practice per l'account di gestione.

Controlla se è presente un diniego (Deny) esplicito per l'azione AssumeRole nella policy SCP o IAM. Se è presente un diniego (Deny) esplicito, questo ha la priorità su qualsiasi autorizzazione di consenso (Allow), impedendo che il ruolo venga assunto. Nell'esempio precedente, se è presente un diniego (Deny) esplicito, Carlos non può assumere il ruolo di IAM di Maria.

Inoltre, controlla se le SCP limitano l'accesso in base alle Regioni AWS. AWS STS è un servizio globale, per cui devi inserirlo nell'elenco globale di esclusione dei servizi.

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

Il ruolo richiede una chiave sts:ExternalId per passare al ruolo IAM

Se il ruolo IAM richiede una chiave sts:ExternalId, puoi utilizzare la Console di gestione AWS per scambiare ruoli. Modificare la policy per utilizzare l'azione AssumeRole con il parametro sts:ExternalId.

La chiave sts:ExternalId consente l'accesso di terze parti alle risorse AWS.

Per ulteriori informazioni, consulta Accesso ad account AWS proprietà di terzi.

Verifica le condizioni nella policy di attendibilità del ruolo IAM

Esamina le condizioni che hai configurato nella policy di attendibilità, ad esempio una data di scadenza o un requisito ExternalId. La richiesta deve soddisfare le condizioni della policy del ruolo IAM.

Ad esempio, se la data corrente è successiva alla data specificata, la condizione è false e la policy non può concedere l'autorizzazione ad assumere il ruolo.

La seguente policy nega l'autorizzazione ad assumere il ruolo dopo il 1° maggio 2016:

{
  "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"
    }
  }
}

Assicurati che la richiesta soddisfi tutte le condizioni della policy di attendibilità.

Informazioni correlate

Come posso fornire agli utenti IAM un link per assumere un ruolo IAM?

Come posso usare IAM per accedere alle risorse in un altro account AWS?

Qual è la differenza tra una policy di controllo dei servizi di AWS Organizations e una policy IAM?