Solucionar problemas de IAM y Amazon EC2
La siguiente información puede ayudarlo a solucionar problemas de IAM con Amazon EC2.
Temas
- Cuando intento lanzar una instancia, no veo el rol en la lista Rol de IAM de la consola de Amazon EC2
- Las credenciales de mi instancia tienen un rol erróneo.
- Cuando intento llamar a AddRoleToInstanceProfile, recibo el error AccessDenied.
- Amazon EC2: cuando intento lanzar una instancia con un rol, obtengo el error AccessDenied
- No puedo obtener acceso a las credenciales de seguridad temporales de mi instancia EC2.
- ¿Qué significan los errores del documento info en el subárbol de IAM?
Cuando intento lanzar una instancia, no veo el rol en la lista Rol de IAM de la consola de Amazon EC2
Compruebe lo siguiente:
-
Si ha iniciado sesión como usuario de IAM, verifique que tenga permiso para llamar a
ListInstanceProfiles
. Para obtener información sobre los permisos necesarios a fin de trabajar con roles, consulte Permisos necesarios para utilizar roles con Amazon EC2. Para obtener información sobre cómo añadir permisos a un usuario, consulte Administración de políticas de IAM.Si no puede modificar sus propios permisos, debe ponerse en contacto con un administrador que pueda trabajar con IAM para actualizar los permisos.
-
Si creó un rol mediante la CLI o API de IAM, verifique lo siguiente:
-
Creó un perfil de instancia y agregó el rol a dicho perfil de instancia.
-
Utilizó el mismo nombre para el rol y el perfil de instancia. Si el rol y el perfil de instancia tienen un nombre diferente, no verá el nombre de rol correcto en la consola de Amazon EC2.
La lista Rol de IAM de la consola de Amazon EC2 establece una lista de los nombres de perfiles de instancia, pero no de los nombres de rol. Tendrá que seleccionar el nombre del perfil de instancia que contiene el rol que desea. Para obtener más información acerca de los perfiles de instancia, consulte Utilizar perfiles de instancia.
nota
Si utiliza la consola de IAM para crear roles, no es necesario que trabaje con perfiles de instancias. Por cada rol que cree en la consola de IAM, se creará un perfil de instancias con el mismo nombre que el rol, y este se agregará automáticamente a dicho perfil de instancias. Un perfil de instancias puede contener un único rol de IAM y este límite no se puede aumentar.
-
Las credenciales de mi instancia tienen un rol erróneo.
La función del perfil de instancia podría haber sido reemplazada recientemente. En caso afirmativo, la aplicación tendrá que esperar a la siguiente rotación de credenciales programada automáticamente para que las credenciales de la función estén disponibles.
Para forzar el cambio, debe desvincular el perfil de instancia y, a continuación, asociar el perfil de instancia, o bien puede detener la instancia y después reiniciarla.
Cuando intento llamar a AddRoleToInstanceProfile
, recibo el error AccessDenied
.
Si realiza las solicitudes como usuario de IAM, compruebe que los siguientes permisos se cumplan:
-
iam:AddRoleToInstanceProfile
con el recurso que coincide con el ARN del perfil de instancia (por ejemplo,arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile
).
Para obtener más información sobre los permisos necesarios a fin de trabajar con roles, consulte ¿Cómo puedo comenzar?. Para obtener información sobre cómo añadir permisos a un usuario, consulte Administración de políticas de IAM.
Amazon EC2: cuando intento lanzar una instancia con un rol, obtengo el error AccessDenied
Compruebe lo siguiente:
-
Lance una instancia sin un perfil de instancia; Esto le servirá para asegurarse de que el problema se limita a los roles de IAM para instancias Amazon EC2.
-
Si realiza las solicitudes como usuario de IAM, compruebe que los siguientes permisos se cumplan:
-
ec2:RunInstances
con un recurso de comodín ("*") -
iam:PassRole
con el recurso que coincide con el ARN del rol (por ejemplo,arn:aws:iam::999999999999:role/ExampleRoleName
)
-
-
Llame a la acción
GetInstanceProfile
de IAM para asegurarse de que está utilizando un nombre de perfil de instancias válido o un ARN de perfil de instancias válido. Para obtener más información, consulte Uso roles de IAM con instancia de Amazon EC2. -
Llame a la acción
GetInstanceProfile
de IAM para asegurarse de que el perfil de instancias tenga un rol. Los perfiles de instancia vacíos darán un errorAccessDenied
. Para obtener más información sobre cómo crear un rol, consulte Creación de roles de IAM.
Para obtener más información sobre los permisos necesarios a fin de trabajar con roles, consulte ¿Cómo puedo comenzar?. Para obtener información sobre cómo añadir permisos a un usuario, consulte Administración de políticas de IAM.
No puedo obtener acceso a las credenciales de seguridad temporales de mi instancia EC2.
Para acceder a las credenciales de seguridad temporales en la instancia EC2, primero debe utilizar la consola de IAM para crear un rol. A continuación, debe lanzar una instancia EC2 que utilice ese rol y examinar la instancia en ejecución. Para obtener más información, consulte la sección How Do I Get Started? (¿Cómo comenzar?) en Utilizar un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias de Amazon EC2.
Si sigue sin poder acceder a sus credenciales de seguridad temporales en la instancia EC2, compruebe lo siguiente:
-
¿Puede obtener acceso a otra parte del Servicio de metadatos de la instancia (IMDS)? Si no puede, compruebe que el firewall no tenga reglas que bloqueen el acceso a las solicitudes al IMDS.
[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/hostname; echo
-
¿Existe el subárbol
iam
del IMDS? De lo contrario, verifique que su instancia tenga un perfil de instancia de IAM asociado. Para ello, llame a la operación de la APIDescribeInstances
de EC2 o utilice el comando de la CLIaws ec2 describe-instances
.[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/iam; echo
-
Consulte el documento
info
del subárbol de IAM por si hay un error. Si detecta un error, consulte ¿Qué significan los errores del documento info en el subárbol de IAM? para obtener más información.[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/iam/info; echo
¿Qué significan los errores del documento info
en el subárbol de IAM?
El documento iam/info
indica "Code":"InstanceProfileNotFound"
Su perfil de instancias de IAM se ha eliminado y Amazon EC2 ya no puede proporcionar credenciales a su instancia. Debe asociar un perfil de instancias válido a la instancia de Amazon EC2.
Si existe un perfil de instancia con ese nombre, compruebe que el perfil de instancia no se haya eliminado y que no se haya creado otro con el mismo nombre:
-
Llame a la operación IAM de
GetInstanceProfile
para obtener elInstanceProfileId
. -
Llame a la operación Amazon EC2 de
DescribeInstances
para obtener elIamInstanceProfileId
de la instancia. -
Compruebe que el
InstanceProfileId
de la operación de IAM coincida con elIamInstanceProfileId
de la operación de Amazon EC2.
Si los ID son diferentes, el perfil de instancia asociado a sus instancias ya no es válido. Debe asociar un perfil de instancia válido a la instancia.
El documento iam/info
indica una operación correcta, pero también indica "Message":"Instance Profile does not
contain a role..."
Se ha eliminado el rol del perfil de instancias mediante la acción RemoveRoleFromInstanceProfile
de IAM. Puede utilizar la acción AddRoleToInstanceProfile
de IAM para adjuntar un rol al perfil de instancias. La aplicación tendrá que esperar hasta la siguiente actualización programada para obtener acceso a las credenciales del rol.
Para forzar el cambio, debe desvincular el perfil de instancia y, a continuación, asociar el perfil de instancia, o bien puede detener la instancia y después reiniciarla.
El documento iam/security-credentials/[role-name]
indica "Code":"AssumeRoleUnauthorizedAccess"
Amazon EC2 no tiene permiso para asumir el rol. El permiso para asumir el rol se controla mediante la política de confianza asociada al rol, como en el ejemplo siguiente. Utilice la API UpdateAssumeRolePolicy
de IAM para actualizar la política de confianza.
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}
La aplicación tendrá que esperar hasta la siguiente actualización programada automáticamente para obtener acceso a las credenciales del rol.
Para forzar el cambio, debe desvincular el perfil de instancia y, a continuación, asociar el perfil de instancia, o bien puede detener la instancia y después reiniciarla.