Risoluzione dei problemi relativi a IAM e Amazon EC2
Le informazioni seguenti possono essere utili per risolvere i problemi relativi a IAM con Amazon EC2.
Argomenti
- Durante l'avvio di un'istanza, il ruolo non viene visualizzato nell'elenco Ruolo IAM nella console Amazon EC2.
- Le credenziali per l'istanza si riferiscono al ruolo errato
- Quando tento di chiamare AddRoleToInstanceProfile, viene visualizzato un errore AccessDenied
- Amazon EC2: quando provo ad avviare un'istanza con un ruolo, ricevo un errore AccessDenied
- Non è possibile accedere alle credenziali di sicurezza temporanee nell'istanza EC2
- Cosa significano gli errori riportati nel documento info nella sottostruttura IAM?
Durante l'avvio di un'istanza, il ruolo non viene visualizzato nell'elenco Ruolo IAM nella console Amazon EC2.
Verifica quanto segue:
-
Se si è effettuato l'accesso come utente IAM, verificare di disporre dell'autorizzazione a chiamare
ListInstanceProfiles
. Per ulteriori informazioni sulle autorizzazioni necessarie per gestire i ruoli, consulta Autorizzazioni richieste per l'utilizzo dei ruoli con Amazon EC2. Per informazioni sull'aggiunta di autorizzazioni a un utente, consultare Gestire le policy IAM.Se non puoi modificare le tue autorizzazioni, contatta un amministratore che possa utilizzare IAM per aggiornare le autorizzazioni.
-
Se è stato creato un ruolo utilizzando la CLI o l'API di IAM, verifica che:
-
Sia stato creato un profilo dell'istanza e che sia stato aggiunto a tale profilo.
-
Sia stato usato lo stesso nome per il ruolo e il profilo dell'istanza. Inoltre, se il ruolo e il profilo dell'istanza sono stati chiamati in modo diverso, nella console Amazon EC2 non verrà visualizzato il nome del ruolo corretto.
L'elenco Ruolo IAM nella console Amazon EC2 riporta i nomi dei profili dell'istanza, non i nomi dei ruoli. Sarà necessario selezionare il nome del profilo dell'istanza che contiene il ruolo desiderato. Per ulteriori informazioni sui profili dell'istanza, consultare Usare profili dell'istanza.
Nota
Se utilizzi la console IAM per creare ruoli, non è necessario lavorare con i profili dell'istanza. Per ogni ruolo creato nella console IAM viene creato un profilo dell'istanza con lo stesso nome del ruolo e il ruolo viene automaticamente aggiunto a tale profilo. Un profilo di istanza può contenere un solo ruolo IAM e tale limite non può essere aumentato.
-
Le credenziali per l'istanza si riferiscono al ruolo errato
Il ruolo nel profilo dell'istanza potrebbe essere stato sostituito di recente. In questo caso, l'applicazione deve attendere la prossima rotazione delle credenziali pianificata automaticamente prima che le credenziali per il ruolo diventino disponibili.
Per forzare la modifica, devi dissociare il profilo dell'istanza e quindi associare il profilo dell'istanza oppure arrestare l'istanza e riavviarla.
Quando tento di chiamare AddRoleToInstanceProfile
, viene visualizzato un errore AccessDenied
Se stai effettuando richieste come utente IAM, verifica di disporre delle autorizzazioni seguenti:
-
iam:AddRoleToInstanceProfile
con la risorsa corrispondente all'ARN del profilo dell'istanza (ad esempio,arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile
).
Per ulteriori informazioni sulle autorizzazioni necessarie per gestire i ruoli, consulta Come si inizia?. Per informazioni sull'aggiunta di autorizzazioni a un utente, consultare Gestire le policy IAM.
Amazon EC2: quando provo ad avviare un'istanza con un ruolo, ricevo un errore AccessDenied
Verifica quanto segue:
-
Avviare un'istanza senza un profilo dell'istanza. In questo modo il problema sarà limitato ai ruoli IAM per le istanze Amazon EC2.
-
Se stai effettuando richieste come utente IAM, verifica di disporre delle autorizzazioni seguenti:
-
ec2:RunInstances
con una risorsa jolly ("*") -
iam:PassRole
con la risorsa corrispondente all'ARN del ruolo (ad esempio,arn:aws:iam::999999999999:role/ExampleRoleName
)
-
-
Chiama l'operazione
GetInstanceProfile
IAM per assicurarti di stare utilizzando un profilo dell'istanza valido o un ARN del profilo di istanza valido. Per ulteriori informazioni, consulta Utilizzo dei ruoli IAM con le istanze Amazon EC2. -
Chiama l'operazione
GetInstanceProfile
IAM per assicurarti che il profilo di istanza disponga di un ruolo. I profili dell'istanza vuoti genereranno un erroreAccessDenied
. Per ulteriori informazioni sulla creazione di un ruolo, consultare Creazione di ruoli IAM.
Per ulteriori informazioni sulle autorizzazioni necessarie per gestire i ruoli, consulta Come si inizia?. Per informazioni sull'aggiunta di autorizzazioni a un utente, consultare Gestire le policy IAM.
Non è possibile accedere alle credenziali di sicurezza temporanee nell'istanza EC2
Per accedere alle credenziali di sicurezza temporanee nell'istanza EC2, è necessario innanzitutto utilizzare la console IAM per creare un ruolo. Quindi, avviare un'istanza EC2 che utilizza tale ruolo ed esaminare l'istanza in esecuzione. Per ulteriori informazioni, consulta How Do I Get Started? in Utilizzare un ruolo IAM per concedere autorizzazioni alle applicazioni in esecuzione su istanze Amazon EC2.
Se non è ancora possibile accedere alle credenziali di sicurezza temporanee sull'istanza EC2, verificare quanto segue:
-
È possibile accedere a un'altra parte di Instance Metadata Service (IMDS)? In caso contrario, verificare che non vi siano regole del firewall che bloccano l'accesso alle richieste a IMDS.
[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/hostname; echo
-
La sottostruttura
iam
di IMDS esiste? In caso contrario, verifica che all'istanza sia associato un profilo dell'istanza IAM chiamando l'operazione APIDescribeInstances
di EC2 o utilizzando il comando della CLIaws ec2 describe-instances
.[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/iam; echo
-
Verifica la presenza di un errore nel documento
info
nella sottostruttura IAM. Se è presente un errore, consultare Cosa significano gli errori riportati nel documento info nella sottostruttura IAM? per ulteriori informazioni.[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/iam/info; echo
Cosa significano gli errori riportati nel documento info
nella sottostruttura IAM?
Il documento iam/info
indica "Code":"InstanceProfileNotFound"
Il profilo dell'istanza IAM è stato eliminato e Amazon EC2 non è più in grado di fornire le credenziali all'istanza. È necessario collegare un profilo dell'istanza valido all'istanza Amazon EC2.
Se esiste un profilo dell'istanza con il nome specificato, controllare che tale profilo non sia stato eliminato e che ne sia stato creato un altro con lo stesso nome:
-
Chiama l'operazione
GetInstanceProfile
IAM per ottenereInstanceProfileId
. -
Chiama l'operazione
DescribeInstances
di Amazon EC2 per ottenere il valoreIamInstanceProfileId
per l'istanza. -
Verifica che il
InstanceProfileId
ottenuto dall'operazione IAM corrisponda alIamInstanceProfileId
ottenuto dall'operazione Amazon EC2.
Se gli ID sono diversi, il profilo dell'istanza associato alle istanze non è più valido. È necessario collegare un profilo dell'istanza valido all'istanza.
Il documento iam/info
indica un esito positivo, ma indica anche "Message":"Instance Profile does not
contain a role..."
Il ruolo è stato rimosso dal profilo dell'istanza dall'operazione RemoveRoleFromInstanceProfile
IAM. È possibile utilizzare l'operazione AddRoleToInstanceProfile
IAM per collegare un ruolo al profilo dell'istanza. L'applicazione dovrà attendere il successivo aggiornamento pianificato per accedere alle credenziali del ruolo.
Per forzare la modifica, devi dissociare il profilo dell'istanza e quindi associare il profilo dell'istanza oppure arrestare l'istanza e riavviarla.
Il documento iam/security-credentials/[role-name]
indica "Code":"AssumeRoleUnauthorizedAccess"
Amazon EC2 non dispone dell'autorizzazione per assumere il ruolo. L'autorizzazione ad assumere il ruolo è determinata dalla policy di affidabilità collegata al ruolo, come nell'esempio che segue. Utilizza l'API UpdateAssumeRolePolicy
IAM per aggiornare la policy di attendibilità.
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}
L'applicazione dovrà attendere il successivo aggiornamento pianificato automaticamente per accedere alle credenziali del ruolo.
Per forzare la modifica, devi dissociare il profilo dell'istanza e quindi associare il profilo dell'istanza oppure arrestare l'istanza e riavviarla.