Quiero configurar el acceso entre cuentas a un rol de AWS Identity and Access Management (IAM) en otra cuenta de AWS.
Descripción breve
Para acceder a los recursos de otra cuenta de AWS, establece una relación de confianza con un rol de IAM.
Por ejemplo, deseas acceder a la cuenta de destino desde la cuenta de origen. Para asumir el rol de IAM desde la cuenta de origen a la de destino, proporciona tu permiso de usuario de IAM para la API AssumeRole. Debes especificar tu usuario de IAM en la relación de confianza del rol de IAM de destino.
Nota: También puedes asumir un rol desde el rol de IAM de origen al rol de IAM de destino, en lugar de usar el encadenamiento de roles de usuario a rol. El encadenamiento de roles solo funciona para el acceso mediante programación, como la Interfaz de la línea de comandos de AWS (AWS CLI) o la API. El cambio de rol no se puede utilizar con la Consola de administración de AWS.
Resolución
Para usar IAM para acceder a los recursos de otra cuenta de AWS, lleva a cabo las siguientes acciones.
Nota: Si se muestran errores al poner en marcha comandos de AWS CLI, consulte Solución de errores de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Cuenta de origen
Sigue estos pasos:
-
Usa el editor JSON para crear una política de IAM similar a la del siguiente ejemplo:
Nota: Reemplaza DESTINATION-ACCOUNT-ID y DESTINATION-ROLENAME por tus propios valores.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::DESTINATION-ACCOUNT-ID:role/DESTINATION-ROLENAME"
]
}
]
}
-
Adjunta la política de IAM a tus permisos de usuario de IAM.
Cuenta de destino
Sigue estos pasos:
-
Crea un rol de IAM en la consola.
-
Pega la política de confianza personalizada similar a la siguiente:
Nota: Reemplaza SOURCE-ACCOUNT-ID y SOURCE-USERNAME por tus propios valores.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SOURCE-ACCOUNT-ID:user/SOURCE-USERNAME"
},
"Action": "sts:AssumeRole"
}
]
}
Nota: Si no tienes acceso para crear y editar roles y usuarios de IAM, pide ayuda al propietario de la cuenta para completar el proceso. Se recomienda restringir el acceso a tu cuenta y a tus recursos para que solo puedan acceder a ellos las entidades en las que confías.
Puedes modificar esta política para permitir la asignación de tantas entidades de origen a tantos roles de destino como sea necesario. Por ejemplo, puede cambiar el valor Entidad principal de la política de confianza de la cuenta de destino a «AWS»: «SOURCE-ACCOUNT-ID». Esto permite que todas las entidades de la cuenta de origen con los permisos de asumir el rol asuman el rol de cuenta de destino. Para obtener más información, consulta Cómo especificar una entidad principal y Creación o edición de la política.
Prueba del acceso
Para probar el acceso, siga las instrucciones que se indican en Cambiar de usuario a rol de IAM (consola) o Cambiar a un rol de IAM (AWS CLI). Para obtener más información, consulte Tutorial de IAM: delegación del acceso entre cuentas de AWS mediante roles de IAM.
Información relacionada
¿Cómo puedo asumir un rol de IAM mediante la AWS CLI?
He creado o actualizado una política de IAM, pero se muestra el error «Has prohibited field Principal». ¿Cómo puedo solucionar este problema?
¿Cómo puedo proporcionar acceso entre cuentas a los objetos que se encuentran en los buckets de Amazon S3?
¿Cómo soluciono el error “AccessDenied” o “Invalid information” cuando intento asumir un rol de IAM entre cuentas?