【发布时间】:2018-07-25 18:53:05
【问题描述】:
问题:我需要通过脚本切换角色。 sts:AssumeRole 权限是否足够?
阐述: 我通过控制台登录到启用 MFA 的 AWS 账户。我默认登录的这个角色没有执行任何操作的权限。 为了旋转 EC2,我需要切换角色。 我转到“切换角色”,并使用帐户和角色切换到有权创建 EC2 实例的不同角色。 我想通过 Ansible 脚本实现同样的目的。
我的 yml 脚本的 sn-p 如下所示:
tasks:
- sts_assume_role:
role_arn: "{{role_arn}}"
role_session_name: "{{role_session_name}}"
region: "{{app_region}}"
aws_access_key: "{{ aws_access_key_id }}"
aws_secret_key: "{{ aws_secret_access_key }}"
register: assumed_role
- debug:
msg: "aws_access_key: {{ assumed_role.sts_creds.access_key }} ,
aws_secret_key: {{ assumed_role.sts_creds.secret_key }},
security_token: {{ assumed_role.sts_creds.session_token }}"
但是,这会导致类似于以下的错误:
调用 AssumeRole 时发生客户端错误 (AccessDenied) 操作:用户:arn:aws:iam:::user/ 不是 授权执行: sts:AssumeRole 对资源: arn:aws:iam:::role/
这也是我从 aws cli 得到的错误。
虽然我知道我没有 sts:AssumeRole 权限来完成此操作,但我已向我公司的内部团队提出了这个问题。然而,由于某些未知的原因,即使有多次跟进,他们也花费了太长时间。
我只想知道获得此权限就足够了,还是我需要更多权限?当然,这是假设 sts:AssumeRole 是正确的特权。 另外,通过脚本执行此操作时,我是否需要在任何地方进行 MFA?我仅在第一次从控制台登录到我的默认帐户时手动使用 MFA。
提前感谢您的帮助,如果这听起来太简单了,我深表歉意,但我只是想在时间紧迫的情况下启动并运行。
【问题讨论】:
标签: amazon-web-services ansible