通过 Google Workspace 和 IAM Identity Center 配置 SAML 和 SCIM
如果组织正在使用 Google Workspace,则可将用户从 Google Workspace 集成到 IAM Identity Center 中,授予用户 AWS 资源的访问权限。将 IAM Identity Center 身份源从默认 IAM Identity Center 身份源改为 Google Workspace,可实现集成。
Google Workspace 的用户信息通过跨域身份管理系统(SCIM)2.0 协议同步到 IAM Identity Center。有关更多信息,请参阅 对外部身份提供者使用 SAML 和 SCIM 身份联合验证。
您可以在 Google Workspace 中使用 IAM Identity Center 的 SCIM 端点和 IAM Identity Center 持有者令牌来配置此连接。配置 SCIM 同步时,您将创建从 Google Workspace 中的用户属性到 IAM Identity Center 中的命名属性的映射。此映射在 IAM Identity Center 和 Google Workspace 之间匹配预期的用户属性。为此,您需要将 Google Workspace 设置为 IAM 身份提供商和 IAM Identity Center 身份提供商。
目标
本教程中的步骤将指导您在 Google Workspace 和 AWS 之间建立 SAML 连接。稍后,您将使用 SCIM 从 Google Workspace 同步用户。为了验证一切配置正确,在完成配置步骤后,您将以 Google Workspace 用户身份登录,并验证对 AWS 资源的访问权限。请注意,本教程基于一个小型 Google Workspace 目录测试环境。本教程不包括组和组织单位等目录结构。完成本教程后,用户将能够使用 Google Workspace 凭证访问 AWS 访问门户。
注意
要注册 Google Workspace 的免费试用,请访问 Google's 网站上的 Google Workspace
如果您尚未启用 IAM Identity Center,请参阅 启用 AWS IAM Identity Center。
注意事项
-
在 Google Workspace 和 IAM Identity Center 之间配置 SCIM 预置之前,建议先查看 使用自动预置的注意事项。
-
Google Workspace 中的 SCIM 自动同步当前仅限于用户预置。目前不支持自动组预置。可使用 AWS CLI Identity Store create-group
命令或 AWS Identity and Access Management(IAM)API CreateGroup 手动创建组。也可使用 ssosync 将 Google Workspace 用户和组同步至 IAM Identity Center。 -
必须已为每位 Google Workspace 用户指定名字、姓氏、用户名和显示名称值。
-
每位 Google Workspace 用户的每个数据属性(如电子邮件地址或电话号码)只有一个值。若用户有多个值,则无法同步。如果用户的属性中有多个值,请先删除重复的属性,然后再尝试在 IAM Identity Center 中预置用户。例如,只能同步一个电话号码属性,因为默认的电话号码属性是“工作电话”,所以即使用户的电话号码是家庭电话号码或移动电话号码,也将使用“工作电话”属性存储其电话号码。
-
如果用户在 IAM Identity Center 中被禁用,但在 Google Workspace 中仍然处于活动状态,属性仍然会同步。
-
如果 Identity Center 目录中存在具有相同用户名和电子邮件的现有用户,则将从 Google Workspace 开始使用 SCIM 覆盖并同步该用户。
-
更改身份源还需注意其他事项。有关更多信息,请参阅 从 IAM Identity Center 更改为外部 IdP。
步骤 1:Google Workspace:配置 SAML 应用程序
-
使用具有超级管理员权限的账户登录 Google 管理控制台。
-
在 Google 管理控制台左侧的导航面板中,依次选择应用程序、Web 和移动应用程序。
-
在添加应用程序下拉列表中选择搜索应用程序。
-
在搜索框中输入 Amazon Web Services,然后从列表中选择 Amazon Web Services(SAML)应用程序。
-
在 Google 身份提供者详细信息 – Amazon Web Services 页面,可执行以下任一操作:
-
下载 IdP 元数据。
-
复制 SSO URL、实体 ID URL 和证书信息。
步骤 2 需要 XML 文件或 URL 信息。
-
-
在 Google 管理控制台中进入下一步之前,让此页面保持打开状态,再移至 IAM Identity Center 控制台。
步骤 2:IAM Identity Center 和 Google Workspace:更改 IAM Identity Center 身份源,并将 Google Workspace 设置为 SAML 身份提供者
-
使用具有管理权限的角色登录 IAM Identity Center 控制台
。 -
在左侧导航窗格中,选择设置。
-
在设置页面,选择操作,然后选择更改身份源。
-
若尚未启用 IAM Identity Center,请参阅启用 AWS IAM Identity Center 了解更多信息。首次启用并访问 IAM Identity Center 后,您将进入控制面板,从中选择选择身份源。
-
-
在选择身份源页面,选择外部身份提供商,然后选择下一步。
-
将打开配置外部身份提供商页面。要完成本页面和步骤 1 的 Google Workspace 页面,您需要完成以下操作:
-
在 IAM Identity Center 控制台的身份提供者元数据部分,需要执行以下任一操作:
-
在 IAM Identity Center 控制台中将 Google SAML 元数据作为 IdP SAML 元数据上传。
-
将 Google SSO URL 复制并粘贴到 IdP 登录 URL 字段,将 Google 发布者 URL 复制并粘贴到 IdP 发布者 URL 字段,将 Google 证书作为 IdP 证书上传。
-
-
-
在 IAM Identity Center 控制台的身份提供者元数据部分提供 Google 元数据后,复制 IAM 身份断言使用者服务(ACS)URL 和 IAM Identity Center 发布者 URL。下一步需要在 Google 管理控制台中提供这些 URL。
-
让 IAM Identity Center 控制台的页面保持打开状态,然后返回 Google 管理控制台。此时应位于 Amazon Web Services – 服务提供商详细信息页面。选择继续。
-
在服务提供商详细信息页面,输入 ACS URL 和实体 ID 值。您在上一步复制了这些值,这些值可在 IAM Identity Center 控制台中找到。
-
将 IAM Identity Center 断言使用者服务(ACS)URL 粘贴到 ACS URL 字段
-
将 IAM Identity Center 发布者 URL 粘贴到实体 ID 字段。
-
-
在服务提供商详细信息页面,按如下所示在名称 ID 下填写字段:
-
对于名称 ID 格式,请选择电子邮件
-
对于名称 ID,请选择基本信息 > 主电子邮件
-
-
选择继续。
-
在属性映射页面的属性下,选择添加映射,然后在 Google Directory 属性下配置这些字段:
-
对于
https://aws.amazon.com/SAML/Attributes/RoleSessionName
应用程序属性,从 Google Directory 属性 中选择基本信息,主要电子邮件字段。 -
在
https://aws.amazon.com/SAML/Attributes/Role
应用程序属性中,选择任意 Google Directory 属性。Google Directory 属性可以是部门。
-
-
选择完成。
-
返回 IAM Identity Center 控制台并选择下一步。在查看并确认页面,查看信息,然后在提供的空白处输入接受。选择更改身份源。
现在,您已准备好在 Google Workspace 中启用 Amazon Web Services 应用程序,从而将用户预置到 IAM Identity Center。
第 3 步:Google Workspace:启用应用程序
-
返回 Google 管理控制台 和 AWS IAM Identity Center 应用程序,可在应用程序以及 Web 和移动应用程序下找到。
-
在用户访问权限面板,选择用户访问权限旁边的向下箭头,展开用户访问权限,以显示服务状态面板。
-
在服务状态面板中选择为所有人开启,然后选择保存。
注意
为了维持最低权限原则,我们建议您在完成本教程后,将服务状态更改为为所有人关闭。只应为需要访问 AWS 的用户启用该服务。您可以使用 Google Workspace 组或组织单位,将用户访问权限授予特定的用户子集。
步骤 4:IAM Identity Center:设置 IAM Identity Center 自动预置
-
返回 IAM Identity Center 控制台。
-
在设置页面上,找到自动预置信息框,然后选择启用。这会立即在 IAM Identity Center 中启用自动预置,并显示必要的 SCIM 端点和访问令牌信息。
-
在入站自动预置对话框中,复制以下选项的每个值。本教程的步骤 5 需要输入这些值,以便在 Google Workspace 中配置自动预置。
-
SCIM 端点:例如,https://scim.
us-east-2
.amazonaws.com/11111111111-2222-3333-4444-555555555555
/scim/v2 -
访问令牌 - 选择显示令牌以复制该值。
警告
这是唯一可以获取 SCIM 端点与访问令牌的机会。在继续操作之前,务必复制这些值。
-
-
选择关闭。
现在,您已在 IAM Identity Center 控制台中设置了预置,下一步您将在 Google Workspace 中配置自动预置。
步骤 5:Google Workspace:配置自动预置
-
返回 Google 管理控制台和 AWS IAM Identity Center 应用程序,可在应用程序以及 Web 和移动应用程序下找到。在自动预置部分,选择配置自动预置。
-
在上一步中,您复制了 IAM Identity Center 控制台中的访问令牌值。将该值粘贴到访问令牌字段,然后选择继续。在上一步中,您还复制了 IAM Identity Center 控制台中的 SCIM 端点值。将该值粘贴到端点 URL 字段,然后选择继续。
-
验证所有必需的 IAM Identity Center 属性(即标有 * 的属性)是否已映射到 Google Cloud Directory 属性。如果没有,请选择向下箭头并映射到适当的属性。选择继续。
-
在预置范围部分,您可以选择 Google Workspace 目录的一个组,来提供对 Amazon Web Services 应用程序的访问权限。跳过此步骤并选择继续。
-
在取消预置部分,您可以选择如何响应移除用户访问权限的不同事件。对于每种情况,您都可以指定在多久之后开始取消预置:
-
24 小时内
-
一天后
-
七天后
-
30 天后
对于每种情况,都有一个时间设置,用来确定何时暂停账户的访问权限,以及何时删除账户。
提示
设置删除用户账户前的等待时间时,其长度应始终长于暂停用户账户前的等待时间。
-
-
选择完成。您将返回到 Amazon Web Services 应用程序页面。
-
在自动预置部分,打开切换开关,将其从非活跃更改为活跃。
注意
如果未为用户打开 IAM Identity Center,激活滑块将被禁用。选择用户访问权限并打开应用程序以启用滑块。
-
在确认对话框中,选择打开。
-
要验证用户是否已成功同步到 IAM Identity Center,请返回 IAM Identity Center 控制台并选择用户。用户页面列出了您的 Google Workspace 目录中通过 SCIM 创建的用户。如果尚未列出用户,可能是由于预置仍在进行中。尽管在大多数情况下,预置可以在几分钟内完成,但最多可能需要 24 小时。确保每隔几分钟刷新一次浏览器窗口。
选择一名用户并查看其详细信息。信息应与 Google Workspace 目录中的信息匹配。
恭喜您!
您已成功在 Google Workspace 和 AWS 之间建立 SAML 连接,并验证了自动预置将正常工作。您现在可以在 IAM Identity Center 中将这些用户分配给账户和应用程序。在本教程的下一步,我们将指定一名用户,通过赋予其对管理账户的管理权限,使其成为 IAM Identity Center 管理员。
传递访问控制属性 – 可选
您可以选择使用 IAM Identity Center 中的 访问控制属性 功能来传递 Name
属性设置为 https://aws.amazon.com/SAML/Attributes/AccessControl:
的 {TagKey}
Attribute
元素。此元素允许您将属性作为 SAML 断言中的会话标签传递。有关会话标签的更多信息,请参阅 IAM 用户指南在 AWS STS 中的传递会话标签。
要将属性作为会话标签传递,请包含指定标签值的 AttributeValue
元素。例如,要传递标签键值对CostCenter = blue
,请使用以下属性。
<saml:AttributeStatement> <saml:Attribute Name="https://aws.amazon.com/SAML/Attributes/AccessControl:CostCenter"> <saml:AttributeValue>blue </saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement>
如果您需要添加多个属性,请为每个标签包含一个单独的 Attribute
元素。
分配 AWS 账户 访问权限
仅授予 AWS 账户 访问权限时才需执行以下步骤。授予 AWS 应用程序访问权限无需执行这些步骤。
步骤 1:IAM Identity Center:向 Google Workspace 用户授予账户访问权限
-
返回 IAM Identity Center 控制台。在 IAM Identity Center 导航窗格的多账户权限下,选择 AWS 账户。
-
在 AWS 账户 页面,组织结构将显示您的组织根目录,您的账户将以分层结构列于其下方。选中管理账户对应的复选框,然后选择分配用户或组。
-
此时将显示分配用户和组工作流程。它包括三个步骤:
-
对于步骤 1:选择用户和组,选择将要执行管理员工作职能的用户。然后选择下一步。
-
对于步骤 2:选择权限集,选择创建权限集,以打开新的标签页,它将引导您完成创建权限集所涉及的三个子步骤。
-
对于步骤 1:选择权限集类型,请完成以下操作:
-
在权限集类型中,选择预定义权限集。
-
在预定义权限集策略中,选择 AdministratorAccess。
选择下一步。
-
-
对于步骤 2:指定权限集详细信息,保留默认设置,并选择下一步。
默认设置会创建一个名为
AdministratorAccess
的权限集,其会话持续时间设置为一小时。 -
对于步骤 3:查看和创建,请验证权限集类型是否使用 AWS 托管策略 AdministratorAccess。选择创建。权限集页面会显示通知,告知您权限集已创建。您可以在网络浏览器中关闭此标签页。
-
在分配用户和组浏览器标签页,您仍处于步骤 2:选择权限集,您将在这里启动创建权限集工作流程。
-
在权限集区域,选择刷新按钮。您创建的
AdministratorAccess
权限集将出现在列表中。选择该权限集的复选框,然后选择下一步。
-
-
对于步骤 3:查看并提交,请查看选定的用户和权限集,然后选择提交。
页面会更新,显示一条消息,告知您正在配置 AWS 账户。等待该过程完成。
您将返回到 AWS 账户 页面。一条通知消息会告知您,已重新预置了您的 AWS 账户,并应用了更新的权限集。当用户登录时,可以选择
AdministratorAccess
角色。注意
Google Workspace 的 SCIM 自动同步仅支持预置用户。目前不支持自动组预置。您无法使用 AWS Management Console 为 Google Workspace 用户创建组。预置用户后,您可以使用 AWS CLI Identity Store create-group
命令或 IAM API CreateGroup 创建组。
-
步骤 2:Google Workspace:确认 Google Workspace 用户对 AWS 资源的访问权限
-
使用测试用户账户登录 Google。要了解如何向 Google Workspace 添加用户,请参阅 Google Workspace 文档
。 -
选择 Google apps 启动器(华夫饼)图标。
-
滚动到应用程序列表底部,您的自定义 Google Workspace 应用程序就在这里。显示 Amazon Web Services 应用程序。
-
选择 Amazon Web Services 应用程序。此时已登录 AWS 访问门户,可以看到 AWS 账户 图标。展开该图标,查看用户可以访问的 AWS 账户 列表。在本教程中,您只使用了一个账户,因此展开图标只显示一个账户。
-
选择账户,以显示用户可用的权限集。在本教程中,您创建了 AdministratorAccess 权限集。
-
权限集旁边是该权限集可用访问权限类型的链接。创建权限集时,您指定了同时启用管理控制台和编程访问权限,因此存在这两个选项。选择管理控制台,打开 AWS Management Console。
-
用户已登录到控制台。
后续步骤
现在,您已在 IAM Identity Center 将 Google Workspace 配置为身份提供商,并预置了用户,您可以:
-
使用 AWS CLI Identity Store create-group
命令或 IAM API CreateGroup 为用户创建组。 分配对 AWS 账户 和应用程序的访问权限时,组非常有用。与其向每个用户单独分配访问权限,不如向组授予权限。稍后,当您在组中添加或移除用户时,该用户会自动获得或失去对您分配给该组的帐户和应用程序的访问权限。
-
根据工作职能配置权限,请参阅创建权限集。
权限集定义用户和组对某一 AWS 账户 帐户的访问级别。权限集存储在 IAM Identity Center 中,可以配置给一个或多个 AWS 账户。您可以为用户分配多个权限集。
注意
作为 IAM Identity Center 管理员,您有时需要将旧的 IdP 证书替换为新的 IdP 证书。例如,当证书到期日期临近时,您可能需要更换 IdP 证书。用新证书替换旧证书的过程称为证书轮换。请务必查看如何为 Google Workspace 管理 SAML 证书。
故障排除
有关使用 Google Workspace 对 SCIM 和 SAML 进行一般性问题排查,请参阅以下各部分:
-
有关 Google Workspace 问题排查,请参阅 Google Workspace 文档
。
下列相关资源有助于您在使用 AWS 期间排查问题:
AWS re:Post
– 查找常见问题解答和其他资源的链接,帮助您排查问题。 AWS Support
– 获得技术支持