Tengo una cuenta de AWS en la que asumo un rol llamado A ( role-A ), desde ese rol he creado otro rol llamado B ( role-B ) a través de la consola web y adjunté la política de administrador a ese rol
Aquí está la configuración de cli
[default] aws_access_key_id = <> aws_secret_access_key = <> region = eu-central-1 [role-B] role_arn = arn:aws:iam::<id>:role/ics-role mfa_serial = arn:aws:iam::<id>:mfa/<name> external_id = <name> source_profile = default role-B que he creado a partir del role-A
Cuando trato de obtener los detalles del rol
aws --profile role-B sts get-caller-identityEstoy teniendo el siguiente error
Se produjo un error (Acceso denegado) al llamar a la operación AssumeRole: Usuario: arn:aws:iam::<>:user/<> no está autorizado para realizar: sts:AssumeRole en el recurso: arn:aws:iam::<>: rol/ics-rol
Deberá verificar el documento de política de relaciones de confianza del rol iam para confirmar que su usuario está en él.
Además, asegúrese de que el usuario de iam tenga permisos explícitos que le permitan asumir ese rol.
La relación de confianza debería verse así:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::1234567890:user/person" ] }, "Action": "sts:AssumeRole" } ] }Mi problema era que tenía una condición establecida en la política json.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::000000000:dave" }, "Action": "sts:AssumeRole", "Condition": { // Condition set here } }] }Eliminé la condición y ahora funciona sin problemas.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::000000000:dave" }, "Action": "sts:AssumeRole" }] }