身份管理 - SageMaker 工作室管理最佳实践

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

身份管理

本节讨论公司目录中的员工用户如何联合进入 AI Studio AWS 账户 并访问 SageMaker AI Studio。首先,亚马逊会简要说明用户、组和角色的映射方法,以及用户联合身份验证的工作原理。

用户、组和角色

在中 AWS,使用用户、群组和角色管理资源权限。客户可以通过或在公司目录(例如Active Directory (AD))中管理其用户和群组,该目录通过外部 IdP(例如 Okta)启用,允许他们对云端和本地运行的各种应用程序进行用户身份验证。IAM

如 AWS 安全支柱身份管理部分所述,在中央 IdP 中管理用户身份是一种最佳实践,因为这有助于轻松地与后端人力资源流程集成,并有助于管理员工用户的访问权限。

IdPs 例如 Okta 允许最终用户使用SSO安全断言标记语言 () 对一个或多个角色进行身份验证AWS 账户 并获得对特定角色的访问权限。SAMLIdP 管理员可以将角色从 IdP 下载到 AWS 账户 IdP 中,然后将这些角色分配给用户。登录时 AWS,最终用户会看到一个 AWS 屏幕,其中显示了一个或多个分配给他们的 AWS 角色列表 AWS 账户。用户可选择登录时要代入的角色,该角色定义用户在身份验证会话期间可享有的权限。

针对您想要提供访问权限的特定账户和角色组合,IdP 必须一一建立对应组。这些组可视为 AWS 角色特定组。角色特定组内所有成员用户都将获得一项权限:可访问特定 AWS 账户中的特定角色。但是,这种单一的授权流程无法通过分派用户到特定 AWS 角色组来扩展用户访问权限的管理范围。为了简化管理,我们还建议您为组织中需要不同权限集的所有不同用户集创建多个群组 AWS 。

为了说明中央 IdP 设置,可考虑一家采用 AD 设置的企业,其用户和组均能同步到 IdP 目录。在中 AWS,这些 AD 组映射到IAM角色。工作流的主要步骤如下:

该图表描绘了入职 AD 用户、AD 组和IAM角色的工作流程。

加入 AD 用户、AD 组和IAM角色的工作流程

  1. 在中 AWS,为每个人设置 AWS 账户 与 IdP 的SAML集成。

  2. 在中 AWS,在每个角色中设置角色 AWS 账户 并同步到 IdP。

  3. 在企业 AD 系统中:

    1. 为每个账户角色创建一个 AD 组并同步到 IdP(例如,Account1-Platform-Admin-Group(又名 AWS 角色组))。

    2. 在每个角色级别创建管理组(例如Platform-Mgmt-Group),并将 AWS 角色组分配为成员。

    3. 将用户分配到该管理组以允许访问 AWS 账户 角色。

  4. 在 IdP 中,将 AWS 角色组(例如Account1-Platform-Admin-Group)映射到 AWS 账户 角色(例如 Account1 中的平台管理员)。

  5. 当数据科学家 Alice 登录 Idp 时,他们会看到一个 AWS 联邦应用程序用户界面,其中有两个选项可供选择:“账户 1 数据科学家” 和 “账户 2 数据科学家”。

  6. Alice 选择 “账户 1 数据科学家” 选项,他们将连接到 AWS 账户 1(SageMaker AI 控制台)中的授权应用程序。

有关设置SAML账户联盟的详细说明,请参阅 Okta 的 “如何为 AWS 账户联合配置 SAML 2.0”。

用户联合身份验证

SageMaker AI Studio 的身份验证可以使用IAM或 i IAM DC 完成。如果用户是通过管理的IAM,则他们可以选择IAM模式。如果企业使用外部 IdP,则可以通过或 IdC 进行IAM联合。IAM请注意,现有 SageMaker AI Studio 域的身份验证模式无法更新,因此在创建生产 SageMaker AI Studio 域之前做出决定至关重要。

如果 SageMaker AI Studio 设置为IAM模式, SageMaker AI Studio 用户将通过预签名访问应用程序URL,当用户通过浏览器访问时,该应用程序会自动登录到 SageMaker AI Studio 应用程序。

IAM 用户

对于IAM用户,管理员为每个用户创建 SageMaker AI Studio 用户配置文件,并将用户配置文件与允许用户在 Studio 中执行必要操作的IAM角色关联起来。要限制 AWS 用户仅访问其 SageMaker AI Studio 用户个人资料,管理员应为 SageMaker AI Studio 用户配置文件添加标签,并向该用户附加一个IAM策略,允许他们仅在标签值与 AWS 用户名相同时才允许他们进行访问。此策略语句与以下内容类似:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonSageMakerPresignedUrlPolicy", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/studiouserid": "${aws:username}" } } } ] }

AWS IAM或账户联合

AWS 账户 联合方法使客户能够从其 Id SAML P(例如 Okta)联合到 SageMaker AI 控制台。要限制用户仅访问其用户个人资料,管理员应标记 SageMaker AI Studio 用户个人资料,添加 PrincipalTags IdP,然后将其设置为传递标签。下图描述了如何授权联合用户(数据科学家 Alice)访问自己的 SageMaker AI Studio 用户个人资料。

一张描述用于访问 SageMaker AI Studio 的 AWS IAM账户联盟的图表。

在IAM联合模式下访问 SageMaker AI Studio

  1. Alice SageMaker AI Studio 用户配置文件标有他们的用户 ID,并与执行角色相关联。

  2. Alice 向 IdP (Okta) 进行身份验证。

  3. IdP 对 Alice 进行了身份验证,并发布了 Alice 所属的两个角色(账户 1 和账户 2 的数据科学家)的SAML断言。Alice 选择数据科学家账户 1 角色。

  4. Alice 以数据科学家的角色登录账户 1 SageMaker AI 控制台。Alice 在 Studio 应用程序实例列表中打开对应的应用程序实例。

  5. 代入角色会话中的 Alice 主体标签已根据所选的 SageMaker AI Studio 应用程序实例用户配置文件标签进行验证。如果配置文件标签有效,则以执行角色启动 SageMaker AI Studio 应用程序实例。

如果您想在用户入职过程中自动创建 SageMaker AI Execution 角色和策略,以下是实现这一目标的一种方法:

  1. 为每个账户和 Studio 域级别设置 AD 组,例如 SageMaker AI-Account1-Group

  2. 当你需要让用户加入 SageMaker AI Studio 时,将 ai-account1-group 添加到 SageMaker 用户的群组成员资格中。

设置一个自动化流程,监听SageMaker AI-Account1-Group成员资格事件,并使用 AWS APIs该流程根据其广告组成员资格创建角色、策略、标签和 SageMaker AI Studio 用户个人资料。附加角色到用户配置文件。有关策略示例,请参阅阻止 SageMaker AI Studio 用户访问其他用户个人资料

SAML使用身份验证 AWS Lambda

在IAM模式下,用户还可以使用SAML断言在 SageMaker AI Studio 中进行身份验证。在此架构中,客户拥有现有 IdP,他们可以在其中创建SAML应用程序供用户访问 Studio(而不是 AWS 身份联合应用程序)。客户的 IdP 已添加到。IAM AWS Lambda 函数使用IAM和帮助验证SAML断言STS,然后直接调用API网关或 Lambda 函数来创建预签名域。URL

该解决方案的优势在于,Lambda 函数可以自定义访问 SageMaker AI Studio 的逻辑。例如:

  • 如果没有用户配置文件,则自动创建该文件。

  • 通过解析SAML属性,为 SageMaker AI Studio 执行角色附加或移除角色或策略文档。

  • 通过添加生命周期配置 (LCC) 和添加标签来自定义用户配置文件。

总而言之,此解决方案将 SageMaker AI Studio 公开为 SAML2 .0 应用程序,具有用于身份验证和授权的自定义逻辑。有关实现的详细信息,请参阅附录部分 SageMaker Studio 使用SAML断言进行访问

描述使用自定义SAML应用程序访问 SageMaker AI Studio 的示意图。

使用自定义SAML应用程序访问 SageMaker AI Studio

AWSIAMIDC 联合会

iDC 联合方法使客户能够从其 Id SAML P(例如 Okta)直接联合到 SageMaker AI Studio 应用程序。下图描述了如何授权联合用户访问自己的 SageMaker AI Studio 实例。

描绘了在 iD IAM C 模式下访问 SageMaker AI Studio 的示意图。

在 iD IAM C 模式下访问 SageMaker AI Studio

  1. 企业 AD 中的用户属于 AD 组,如平台管理员组和数据科学家组。

  2. 来自身份提供商 (IdP) 的 AD 用户和 AD 组将同步到 Ident AWS IAM ity Center,分别作为单点登录用户和群组进行分配。

  3. IdP 向 IdC 终端节点发布SAML断言。 AWS SAML

  4. 在 SageMaker AI Studio 中,iDc 用户被分配给 SageMaker Studio 应用程序。此任务可以使用 iDC 群组完成, SageMaker AI Studio 将应用于每个 iDC 用户级别。创建此任务后, SageMaker AI Studio 会创建 IdC 用户配置文件并附加域执行角色。

  5. 用户使用 iDC 作为云应用程序URL托管的安全预签名访问 SageMaker AI Studio 应用程序。 SageMaker AI Studio 承担附加到其 iDC 用户个人资料的执行角色。

域身份验证指南

选择域身份验证模式时,需要考虑以下几点:

  1. 如果您希望用户不直接访问 AWS Management Console 和查看 SageMaker AI Studio 用户界面,请使用 i AWS IAM DC 的单点登录模式。

  2. 如果您希望用户不在IAM模式下直接访问 AWS Management Console 和查看 SageMaker AI Studio 用户界面,则可以在后端使用 Lambda 函数URL为用户配置文件生成预签名,然后将其重定向到 AI Studio 用户界面。 SageMaker

  3. 在 IdC 模式下,每位用户映射一个用户配置文件。

  4. 在 IdC 模式下,为所有用户配置文件自动分配默认执行角色。如果您希望为用户分配不同的执行角色,则需要使用更新用户配置文件UpdateUserProfileAPI。

  5. 如果您想在IAM模式下(使用生成的预签名URL)将 SageMaker AI Studio UI 访问权限限制为VPC端点,而不必穿越互联网,则可以使用自定义解析器。DNS请参阅 Secure Amazon SageMaker AI Studio 预签名第 1 URLs 部分:基础基础设施博客文章。