amazon-web-services - 配置 AWS 角色以在组织账户之间切换
问题描述
我正在尝试按照如何允许组担任角色中的说明进行操作?,但是当我尝试切换角色时遇到以下错误:
一个或多个字段中的信息无效。检查您的信息或联系您的管理员。
在这种情况下,我有三个 AWS 账户example ids
- 公司主营 -
000000000001
- 公司产品 -
000000000002
- 公司开发 -
000000000003
主账户的组织包括 prod 和 dev 账户
我想做的是在主账户上设置一组 IAM 用户,并允许他们登录并在两个子账户中的任何一个之间切换,而不是强制每个人都有三个单独的登录。
到目前为止,这是我在CompanyMain
帐户上所做的所有事情:
创建用于访问 Prod 帐户的角色
将可信实体设置为“另一个 AWS 账户”
将权限策略设置为
AdministratorAccess
因此,当我转到“角色”>“信任关系”>“显示策略文档”时 - 它看起来像这样:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::000000000002:root" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
名称为“company-prod-admin”,因此 ARN 如下所示:
arn:aws:iam::000000000001:role/company-prod-admin
这还带有切换角色的链接,如下所示:
https://signin.aws.amazon.com/switchrole?roleName=company-prod-admin&account=000000000001
创建策略以承担此角色
服务:STS 操作:AssumeRole 角色 ARN:
arn:aws:iam::000000000001:role/company-prod-admin
所以政策文件看起来像这样:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::000000000002:root" } ] }
创建管理员组
在名为的主帐户上创建一个组
admin
并附加我们刚刚创建的策略创建 IAM 用户
在主帐户上创建用户并放入
admin
组
以 IAM 用户身份登录
我现在可以针对主账户以 IAM 用户身份登录
从那里,我想通过使用角色链接或转到https://signin.aws.amazon.com/switchrole并输入帐户/角色信息来切换角色
但是,我收到以下信息无效的错误
组织设置问题
如何创建跨组织的角色?对于角色/权限需要在三个帐户之间起源的位置,我有点困惑,但理想情况下,我希望有一种方法可以让某人登录到整个组织的一组权限。
解决方案
如果您希望能够从 CompanyMain 访问 CompanyProd,则需要以相反的方式执行 IAM 策略,然后您需要在 CompanyProd 中创建一个 IAM 策略,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::000000000001:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
接下来,您登录 MainCompany 并切换角色。在 Account 中,你写 000000000002,在 Role 字段中你写 root。
推荐阅读
- spectre - 推测性存储绕过(Spectre V4)
- go - 不向 dll 或 iso 文件添加扩展名是一种不好的做法吗?
- hyperledger-fabric - 频道内的锚点配置
- html - 如何使用 CSS 将 div 推到底部?
- hyperledger-fabric - 如何在 HyperLedger Fabric 中构建和提交交易
- php - 从父数组中删除第一个数组集
- python - 遍历 pandas DataFrame 中每一列的函数
- python-3.x - 从元组中计算元素并在字典中翻转结果
- reactjs - Redux 路由更改路径但不渲染新页面
- stenciljs - 带有 stenciljs 的网络工作者用于自定义事件