1

假设我从账户 111111111111 建立了一个 AWS 组织,然后我创建/邀请了 2 个账户,222222222222 和 33333333333。一旦我启用了 SCP,我就会看到一个FullAWSAccess附加到所有成员的策略。我正在尝试在 AWS SDK 中以编程方式更新每个帐户,而不必每次都在控制台上切换角色。例如:

AWSOrganizations client = AWSOrganizationsClientBuilder.standard().build();
ListAccountsResult result = client.listAccounts(new ListAccountsRequest().withMaxResults(10))
result.getAccounts()
      .stream()
      .forEach(account -> {
          // I am not sure what to do with below data
          // account.getArn()
          // account.getId()
      })

假设我希望每个成员都像这样放置一个 s3 对象:

s3.putObject(..)

我是否需要OrganizationAccountAccessRole为每个成员账户代入一个角色(AWS 默认创建一个角色)并调用 AWS 服务?还是我错过了什么?

4

1 回答 1

1

您的假设是正确的,为了在其他成员账户中执行操作,您需要先在该账户中担任角色。AWS OrganizationsOrganizationAccountAccessRole在每个新创建的账户中创建,此角色具有信任主账户的信任策略。因此,只要您使用具有sts:AssumeRole操作的任何角色对主帐户进行身份验证,您就可以在目标帐户中承担OrganizationAccountAccessRole并执行“必要的”操作。

作为最佳实践,您应该在每个帐户中拥有自己的自动化角色和一个专用的自动化帐户。这个自动化角色可以说“管道角色”将具有只能从您的自动化帐户假定的有限权限。

通过这种方式,您可以减少使用主帐户的需要,并使此自动化角色仅与您的自动化需求一样强大,而不是使用完整的 AdministratorAccess 策略。

于 2021-05-17T00:39:31.460 回答