首页 > 解决方案 > 配置 AWS 角色以在组织账户之间切换

问题描述

我正在尝试按照如何允许组担任角色中的说明进行操作?,但是当我尝试切换角色时遇到以下错误:

一个或多个字段中的信息无效。检查您的信息或联系您的管理员。


在这种情况下,我有三个 AWS 账户example ids

主账户的组织包括 prod 和 dev 账户

AWS 组织

我想做的是在主账户上设置一组 IAM 用户,并允许他们登录并在两个子账户中的任何一个之间切换,而不是强制每个人都有三个单独的登录。

到目前为止,这是我在CompanyMain帐户上所做的所有事情:

  1. 创建用于访问 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

  2. 创建策略以承担此角色

    服务: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"
        }
      ]
    }
    
  3. 创建管理员组

    在名为的主帐户上创建一个组admin并附加我们刚刚创建的策略

  4. 创建 IAM 用户

    在主帐户上创建用户并放入admin

以 IAM 用户身份登录

我现在可以针对主账户以 IAM 用户身份登录

从那里,我想通过使用角色链接或转到https://signin.aws.amazon.com/switchrole并输入帐户/角色信息来切换角色

切换角色

但是,我收到以下信息无效的错误

组织设置问题

如何创建跨组织的角色?对于角色/权限需要在三个帐户之间起源的位置,我有点困惑,但理想情况下,我希望有一种方法可以让某人登录到整个组织的一组权限。

标签: amazon-web-servicesamazon-iamamazon-policy

解决方案


如果您希望能够从 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。


推荐阅读