Perché la mia istanza Amazon EC2 utilizza le credenziali utente IAM anziché le credenziali di ruolo?

3 minuti di lettura
0

Ho associato un ruolo di AWS Identity and Access Management (IAM) a un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Tuttavia, l'istanza Amazon EC2 effettua chiamate API con un utente IAM anziché con un ruolo IAM.

Breve descrizione

L'interfaccia della linea di comando AWS (AWS CLI) utilizza un set di fornitori di credenziali per cercare le credenziali AWS in una sequenza. Le credenziali utilizzate dipendono dall'ordine e dalla precedenza dei fornitori di credenziali. Per ulteriori informazioni, consulta Impostazioni di configurazione e precedenza.

Risoluzione

Segui le istruzioni per trovare l'ID utente IAM e la posizione in cui sono archiviate le credenziali utente IAM. Quindi, utilizza l'interfaccia della linea di comando AWS per gestire le credenziali IAM ed eliminare l'impostazione di precedenza più elevata.

Nota: Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS, assicurati di utilizzare la versione più recente dell'interfaccia della linea di comando AWS.

Trova l'ID utente IAM e ottieni la posizione delle credenziali utente IAM

1.    Esegui il seguente comando get-caller-identity per verificare quali credenziali IAM vengono utilizzate per effettuare chiamate API:

aws sts get-caller-identity

Riceverai un output simile al seguente:

{

    "Account": "123456789012",

    "UserId": "AIDACKCEVSQ6C2EXAMPLE",

    "Arn": "arn:aws:iam::123456789012:user/ExampleIAMuser"

}

In questo output di esempio, le credenziali IAM utilizzate sono di ExampleIAMUser.

2.    Usa l'opzione --debug per controllare la posizione delle credenziali utente in modo simile alla seguente:

aws s3 ls --debug
2020-03-28 02:04:29,478 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials

In questo output di esempio, le credenziali dell'utente IAM sono archiviate nel file .aws/credentials. Poiché queste credenziali hanno una precedenza maggiore rispetto alle credenziali di ruolo, le credenziali utente IAM vengono utilizzate per effettuare chiamate API.

Usa l'interfaccia della linea di comando AWS per gestire le credenziali IAM ed eliminare l'impostazione di precedenza più alta

Utilizza le seguenti procedure consigliate:

  • Assicurati di non utilizzare l'opzione --profile con l'interfaccia della linea di comando AWS.
  • Annulla o rimuovi tutte le variabili di ambiente.
  • Per il comando configure, elimina il file delle credenziali nella cartella .aws/credentials. Quindi, elimina la cartella .aws per impostare le credenziali predefinite del profilo di istanza.
  • Per i profili impostati nel file .aws/config, elimina il profilo. Quindi, elimina la cartella .aws.

Dopo aver rimosso le impostazioni di configurazione che hanno la precedenza sulle credenziali IAM, esegui il comando get-caller-identity per verificare le credenziali del ruolo IAM in modo simile alle seguenti:

aws sts get-caller-identity

{
    "UserId": "AROACKCEVSQ6C2EXAMPLE:i-01773d4a8ed647342",
    "Account": "123456789012",
    "Arn": "arn:aws:sts::123456789012:assumed-role/ExampleInstanceRole/i-01773d4a8ed647342"
}

In questo output di esempio, le credenziali IAM utilizzate sono del ruolo IAM ExampleInstanceRole.


AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa