0

我有多个与我一起工作的不同客户,它们彼此完全独立。如果与我合作的客户已经拥有 AWS 账户,我可以在他们现有的 AWS 账户中开发软件,但如果他们没有账户,那么我将创建一个新的 AWS 账户。

今天,我将客户的 AWS 用户名/密码存储在不同文件夹和/或 LastPass 身份中的 LastPass 中。但是,我想知道是否有更好/更简单的方法来做到这一点,以及推荐的方法是什么。

我知道 AWS SSO 可用于管理一个组织下的多个 AWS 账户(例如,对于一家大公司),但 AWS SSO 是否可以用于管理多个完全独立的客户账户,这些账户要么不在 AWS 组织中,要么不在单独的 AWS 中组织?

对于为完全独立的公司管理多个 AWS 账户的方案,最佳实践是什么?是否有 AWS 推荐的白皮书?

这个 SO 问题是相关的,但它也有 6 年历史了: AWS:如何管理多个帐户的身份验证

谢谢!

4

2 回答 2

1

我想说,对于属于您组织的账户,您应该使用 AWS SSO。

对于其他人“拥有”的帐户。让他们创建一个角色,您可以从您的一个帐户中担任该角色。可能您可以在您的组织下创建一个单独的帐户,以包含其他帐户信任的角色。

于 2021-10-14T22:39:59.987 回答
1

但是 AWS SSO 是否可以用于管理多个完全独立的客户账户,这些客户账户要么不在 AWS 组织内,要么不在单独的 AWS 组织内?

可以将这些账户作为应用程序部分下的外部 AWS 账户添加到 AWS SSO。对于每个目标帐户,您需要

  • 在 IAM 中注册 SAML 身份提供者
  • 为 AWS SSO 创建一个 IAM 角色以代入

脚步:

AWS SSO中,

  • 添加一个新应用程序并指定“外部 AWS 账户”作为类型
  • 为应用程序提供名称
  • 下载 SAML 元数据文件

AWS SSO 外部应用程序配置

目标 AWS 账户中,在 IAM 中注册一个 SAML 身份提供商:

  • 在 IAM 中,导航到身份提供商部分并选择添加提供商
  • 选择 SAML 身份提供商类型
  • 为提供商提供一个有意义的名称(例如“AWS-SSO”)
  • 上传您从 AWS SSO 获得的 SAML 元数据

接下来,在目标 AWS 账户中添加一个 IAM 角色以供 AWS SSO 代入。最简单的方法是从您刚刚在 IAM 中创建的身份提供者的详细信息页面中选择分配角色 → 创建新角色。从那里,AWS 将提供熟悉的角色创建向导,您可以在其中设置权限和标签。

如果您希望 AWS SSO 代入现有 IAM 角色,请编辑该角色的信任策略以将 SAML IdP 作为可信实体包括在内:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::ACCOUNTID:saml-provider/SAMLPROVIDERNAME"
      },
      "Action": "sts:AssumeRoleWithSAML",
      "Condition": {
        "StringEquals": {
          "SAML:aud": "https://signin.aws.amazon.com/saml"
        }
      }
    }
  ]
}

其中ACCOUNTID是目标 AWS 账户的 ID,SAMLPROVIDERNAME是您创建的 IdP 的名称。

最后,回到AWS SSO

  • 打开您创建的外部 AWS 账户应用程序

  • 选择属性映射选项卡

  • 为目标 AWS 账户中的角色添加新的属性映射

    • 领域https://aws.amazon.com/SAML/Attributes/Role
    • 价值arn:aws:iam::ACCOUNTID:saml-provider/SAMLPROVIDERNAME,arn:aws:iam::ACCOUNTID:role/ROLENAME
    • 格式unspecified

其中ACCOUNTIDSAMLPROVIDERNAMEROLENAME引用目标 AWS 账户中的工件。

配置外部 AWS 账户应用程序后,您可以照常将用户分配给 AWS SSO 中的应用程序。

AWS 文档指出,每个外部 AWS 账户应用程序只能针对一个角色

外部 AWS 账户服务仅支持每个应用程序实例一个 IAM 角色属性映射。因此,您必须创建多个外部 AWS 账户应用程序实例才能使用多个角色。

参考:外部 AWS 账户的 AWS Single Sign-On (AWS SSO) 集成指南

于 2021-12-21T23:52:26.747 回答