配置AWS角色以在组织账户之间切换 到目前为止,这是我在CompanyMain帐户上所做的所有事情:以IAM用户身份登录组织设置问题

问题描述

我正在尝试按照How can I allow a Group to assume a Role?中的说明进行操作,但是在尝试切换角色时遇到以下错误

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


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

  • CompanyMain-000000000001
  • CompanyProd-000000000002
  • CompanyDev-000000000003

主帐户所在的组织包含生产者帐户和开发者帐户

aws organizations

我想做的是在主帐户上设置一组IAM用户,并允许他们登录并在两个子帐户中的任何一个之间切换,而不是强迫每个人分别进行三个登录

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

  1. 创建用于访问产品帐户的角色

    将可信实体设置为“另一个AWS账户”

    Create Role > Another Account

    将权限策略设置为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

    Policy Assume Role

    政策文件如下所示:

    {
      "Version": "2012-10-17","Resource": "arn:aws:iam::000000000002:root"
        }
      ]
    }
    
  3. 创建管理员

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

  4. 创建IAM用户

    在主帐户上创建用户并将其放置在admin组中

以IAM用户身份登录

我现在可以使用IAM用户的主要帐户登录

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

switch role

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

组织设置问题

如何创建跨组织的角色?对于三个帐户之间的角色/权限需要在哪里起源,我有些困惑,但是理想情况下,我希望有人可以登录整个组织的一组权限。

解决方法

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