亚马逊AWS官方博客

使用 IAM Identity Center 实现 SageMaker Studio,Amazon Q Business 单点登录

1. IAM Identity Center 功能介绍

Amazon IAM Identity Center(IdC)可以创建企业用户目录,或者同步企业 IdP 的用户信息,集中管理企业员工访问 AWS 账户和企业应用程序的权限,实现单点登录(SSO)。从集成对象划分,IdC 可以分别集成 AWS 账户、AWS 托管服务、知名第三方应用,和企业内部自定义开发应用。

Amazon SageMaker Studio 是一个集成式开发环境(IDE),它提供了一个基于 Web 的可视化界面,客户可以在其中访问专用工具来执行从准备数据,到构建、训练和部署 ML 模型的所有机器学习(ML)开发步骤。您可以快速上传数据、创建新 Notebook、训练和调优模型,在各步骤之间切换以调整实验,以及在不离开 SageMaker Studio 的情况下将模型部署到生产环境中。它使您能够快速切换环境,并在组织内无缝协作,构建机器学习模型。

Amazon Q Business 是一款生成式人工智能助手,可以根据企业数据和信息回答问题、提供摘要、生成内容,辅助提升员工的创造力、数据导向性、工作效率、生产力等。

IAM Identity Center 目前支持与多种 AWS 托管服务集成,具体可参见 Amazon 托管应用程序 – Amazon IAM Identity Center。这些应用程序可以使用 IAM Identity Center 实现身份验证、目录服务和可信身份传播等。用户受益于一致的单点登录体验,而且由于这些应用程序以统一的视图处理用户、组和组成员身份,用户在与其他人共享应用程序资源时也会具有一致的体验。您可以直接在控制台或通过 API 将 Amazon 托管应用程序配置为与 IAM Identity Center 一起使用。

本文聚焦在 IdC 如何和 AWS 托管的 AI 服务 SageMaker Studio 和 Amazon Q Business 的 APP 完成集成,方便企业内部用户安全快捷地使用这些 AI 服务,构建自己的生成式 AI 应用。

2. 使用 Identity Center 的准备工作

  • 选择合适的 IdC Instance,IdC 目前支持 Organization Instance 和 Account Instance 两种类型,具体支持情况可以参考链接:不同类型的 IdC 支持 AWS 托管服务对接的情况。鉴于 Org Instance 支持服务更广泛,和 AWS 托管服务对接时,优先选择 Org Instance。
  • 如何选择 IdC 的 Region 可以参考 IdC 的 region 选择原则,链接中介绍了关于 IdC Region 选择的原则,当和 AWS 托管服务进行对接时,请确保托管服务和 IdC 在同一 Region。如果有跨 Region 的情况,需要和对应托管服务进行咨询。
  • IdC 支持三种身份源——IdC 自身、企业 AD 集成和支持 SAML 协议的第三方 IDP,企业需要根据自身情况选择合适的身份源进行集成。

初次使用 IdC 的客户,可以根据使用 IdC 对接不同 APP 了解如何使用 IdC 和不同 APP 对接的基本流程。

3. 如何使用 IAM Identity Center 登录 SageMaker Studio

SageMaker Studio 是运行机器学习工作流程的 Web IDE。Studio 提供了一套集成开发环境(IDE),其中包括基于 Code-OSS 的代码编辑器、Visual Studio 代码——开源、新 JupyterLab 应用程序和 RStudio 等。Studio 中全新 Web 的用户界面速度更快,可在一个界面中访问所有 SageMaker 资源,偏好 AI 的用户可以选择自己喜欢的 IDE 来加速机器学习开发,而数据科学家可以用 JupyterLab 探索数据和调整模型。

3.1 Identity Center 配置工作

在开始 IdC 和 SageMaker 对接前,先配置好 IdC 内的 Group,并创建对应的 user,如下图所示。创建了 4 个 Group 和 4 个 user,此时不需要在 Identity 创建对应权限集 Permission set,因为后续每个用户使用 SageMaker 的权限是在 SageMaker 中进行配置,不需要在 Identity Center 进行配置。

3.2 创建 SageMaker Studio Domain

Step 1. 选择创建对应 Domain,并选择建立为 Organizations 的 Domain,SageMaker 会自动选择组织 IdC 作为单点登录的默认选项

选择使用 Identity Center 做为认证方式,并且 Identity Center 实例需要和 SageMaker 在同一个 Region,可以同时指定哪一个 Group 中的 user 可以访问 SageMaker Studio。后续 Domain 创建完成后,可以继续增加新的 Group 或者 user 访问 SageMaker。

Step 2. 设置 SageMaker 对应的 Execution role,以及需要使用的 ML 服务

选择完用户组后,点击下一步,进入 Step2——设置用户 role 的权限。基于用户的选择不同 ML 服务,AWS 会帮助用户自动生成 role 的内容,未来 SageMaker 执行各种任务时,都会基于这个 default role 的权限进行判断。如果未来希望进行精细化的权限管控,请参考 3.4 章节。

Step 3. 设置 Studio 中各种应用 APP 的功能

Step 4. 设置 Studio UI 和菜单

客户根据自身使用习惯,可以调整 Studio 的 UI 和菜单。

Step 5. 设置 SageMaker Studio 网络参数

配置 Studio 工作网络环境的核心是 VPC。当选择 VPC 时,需要额外增加 VPC Endpoint 相关配置,例如 S3、SageMaker、Bedrock 等服务的 VPC Endpoint,这样 VPC 内资源才可以方便地访问这些服务。

Step 6. 配置 Space 相关存储

用户可以根据业务,安全需求设置 Studio Space 的存储 EFS,EBS 相关选项。

Step 7. 提交并创建 Studio Domain

检查最终配置选项,点击提交,创建成功后会在 Domain 菜单中看到刚刚创建的 Domain。

3.3 使用 Identity Center 登录 SageMaker Studio

点击 Studio 菜单栏,选择自身用户名,点击 Open Studio,通过 Identity Center 进行身份验证

完成认证后,成功登录 Studio 页面,同时建议大家保留浏览器上的 Overview URL 地址,后续不再需要通过 AWS Console 打开 Studio,直接访问对应 URL 地址,同样可以进行认证,访问 Studio。

3.4 如何使用 SageMaker 的 Execution role 进行精细化管理

SageMaker 的 Execution role 介绍

Role 是 IAM 的基本组概念,区别于传统 IAM User,Role 可以代表一个身份,赋予对应权限,进行云上相应的操作。SageMaker 目前包含有 3 种 Execution Role:

Domain Execution role:创建 Studio Domain Step2 时,根据配置,可以由 SageMaker 代为创建,是整个 Domain 正常工作的基础,包括创建资源,当没有配置下面两个 role 时,都会以这个 role 作为默认的替代。

Space Execution role:如果没有创建单独的 Space Execution role,系统会将这个 role 也设定为 Domain Execution role,但用户可以后期更改为自己创建的其他 Role。当用户在 SageMaker 中创建 Share 类型的 Space,会使用这个 role 来执行各种操作,例如开启 Note book 实例。

User Profile Execution role:当为某个 IdC 用户指定了 Studio 的使用权限,如果不指定单独的 Execution role,用户登录 Studio 后,会使用 Domain Execution role 权限进行操作,如果配置了独立的 Execution role,会基于这个 User profile role 的权限进行操作。

如果需要限制不同用户的执行权限,不希望所有用户都使用默认的 Domain Execution role 进行操作,就需要单独为用户配置对应的 User profile execution role。

如何使用 User profile execution 进行权限管控

首先选择对应的 User profile,可以看到对应的 user profile Execution role,如下图所示,之前没有设置 role,所以显示为“-”,之后在 Details 里选择 Edit,进行修改。

可以在下面为用户设置单独的 Execution role,这些 role 需要您提前在 IAM 中创建好,实现同一个 Domain 内不同用户在 SageMaker Studio 中拥有不同的访问权限。

配置完成后,可以看到目前为这个 user profile 新增了独立的 Execution role:

下面如果我们希望禁止这个用户使用 Jupypter lab,包括启用任何 Notebook instance,通过分析 Cloud Trail 日志发现可以通过限制 CreateAPP 这个 Action 来加以实现,其中两块黄色部分代表 AccountID 和 Domain ID:

此时再次通过 Studio 创建 Jupyter instance 会有提示报错,同时也会在 Cloud Trail 日志中发现 error 日志:

基于以上的验证,通过 user profile 的 execution role,同时配合 Cloud Trail 日志的分析,可以非常有针对性地控制每个 SageMaker studio 用户的权限。

4. 如何使用 IAM Identity Center 登录 Amazon Q Business 构建的 APP

Amazon Q Business 是 AWS 的重要服务,方便客户搭建各类 APP,它同样也可以和 Identity Center 进行对接认证,用于管理员工访问 Amazon Q 的权限,可以按您的要求管理 APP 的身份、角色和权限配置。

4.1 创建 Q Business APP 并指定 Identity center 作为验证源

后续两步选择 retriever 和指定 Data Resource 和身份认证无关,请根据自身需求进行创建。

4.2 为 APP 指定访问权限

这里可以根据要求进行 Group 或者 Users 层级授权,并选择对授权主体的 Q Business subscription。

4.3 如何管理不同用户对生成答案的数据源的权限

Amazon Q 提供了 User Store 的子功能,这个功能建立在 Amazon Q Business,而不是 IdC。在配置 IdC 用户访问 Q APP 的访问授权时,是基于 Amazon Q Business API How the User Store works – Amazon Q Business 创建了对应的用户映射,并在其中指定了每个用户对不同 Data Source 的访问权限。但是 S3 和 Web Crawler 目前并不使用 User Store 进行限制,而是由单独的 ACL 进行管理。

S3 ACL 具体示例如下:公司有两个工作组,一个注重日常运维,需要使用 CloudWatch;第二个小组偏重安全,需要使用 AWS GuardDuty 等服务,我们将 CloudWatch 和 GuardDuty 的文档分别上传到两个 S3 bucket:

s3://q-security-source

s3://q-cloudwatch-doc

我们如果需要限制两个工作组在访问 APP 时,只能基于自己 bucket 的 doc 进行答复,例如 mattyy@CloudWatch 用户和 CloudWatch 组允许访问 s3://q-security-source,其余用户 matt@security 和 Security Group 则 Deny,我们需要设置如下得 ACL,上传到 S3,并配置 Amazon Q 对应的数据源使用对应的 ACL 文件。

如上图我们在 CloudWatch 数据源组中,指定了对应 ACL.json 文件,此时我们在使用 Security 组中用户访问 Q Business APP 进行问答,Q Business 不会再使用 CloudWatch 相关的数据生成答案。

5. 总结

IAM Identity Center 简化了企业员工用户对 AWS 托管服务的访问,方便地将员工连接到各种 AWS 托管服务,尤其是和生成式 AI 相关的 SageMaker、Amazon Q。同时,基于 Identity Center 的扩展能力,企业可以方便地对接各种 IDP 服务器,更安全、便捷地构建生成式 AI 应用。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

本篇作者

余扬

亚马逊云科技安全解决方案架构师,负责为客户提供云上安全端到端整体解决方案;在身份认证管理,威胁检测,云安全防护等方面有丰富的经验。