为用户设置 SageMaker Canvas - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为用户设置 SageMaker Canvas

要设置 Amazon SageMaker Canvas,请执行以下操作:

  • 创建 Amazon SageMaker 域。

  • 为域创建用户配置文件

  • 为用户设置 Okta 单点登录 (Okta SSO)。

  • 激活模型的链接共享。

使用 Okta 单点登录 (Okta SSO) 授予用户访问 Amazon SageMaker Canvas 的权限。SageMaker Canvas 支持 SAML 2.0 SSO 方法。以下各节将指导您完成设置 Okta SSO 的过程。

要设置域,请参阅使用 IAM 加入 Amazon SageMaker Runtime Studio。您可以使用以下信息来帮助您完成本节中的过程:

  • 您可以忽略创建项目的步骤。

  • 您无需提供对其他 Amazon S3 存储桶的访问权限。您的用户可以使用我们在创建角色时提供的默认存储桶。

  • 要授予用户与数据科学家共享笔记本的权限,请打开笔记本共享配置

  • 使用 Amazon SageMaker Studio 3.19.0 或更高版本。有关更新 Amazon SageMaker Studio 的信息,请参阅 关闭并更新 SageMaker Studio

可使用以下过程设置 Okta。在以下所有过程中,您都要为 IAM-role 指定相同的 IAM 角色。

将 SageMaker Canvas 应用程序添加到 Okta

为 Okta 设置登录方法。

  1. 登录 Okta 管理员控制面板。

  2. 选择添加应用程序。搜索 Amazon 账户联合身份验证

  3. 选择添加

  4. 可选:将名称更改为 Amazon SageMaker Canvas

  5. 选择下一步

  6. 选择 SAML 2.0 作为登录方法。

  7. 选择身份提供商元数据以打开元数据 XML 文件。将该文件保存在本地。

  8. 选择完成

在 IAM 中设置 ID 联合身份验证

Amazon Identity and Access Management (IAM) 是您用来获得 Amazon 账户访问权限的 Amazon 服务。您可以通过 IAM 账户访问 Amazon。

  1. 登录 Amazon 控制台。

  2. 选择 Amazon Identity and Access Management (IAM)

  3. 选择身份提供商

  4. 选择创建提供商

  5. 配置提供商中,指定以下内容:

  6. 身份提供商下找到您的身份提供商。复制其提供商 ARN 值。

  7. 对于角色,选择用于 Okta SSO 访问的 IAM 角色。

  8. 在 IAM 角色的信任关系下,选择编辑信任关系

  9. 通过指定已复制的提供商 ARN 值来修改 IAM 信任关系策略,并添加以下策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::123456789012:saml-provider/Okta" }, "Action": [ "sts:AssumeRoleWithSAML", "sts:SetSourceIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml" } } } ] }
  10. 对于权限,添加以下策略:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonSageMakerPresignedUrlPolicy", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:CreatePresignedDomainUrlWithPrincipalTag" ], "Resource": "*" } ] }

在 Okta 中配置 SageMaker Canvas

按照以下过程在 Okta 中配置 Amazon SageMaker Canvas。

要配置 Amazon SageMaker Canvas 以使用 Okta,请按照本节中的步骤操作。您必须为每个 SageMakerStudioProfileName 字段指定唯一的用户名。例如,您可以将 user.login 用作值。如果用户名与 SageMaker Canvas 配置文件名称不同,请选择其他唯一标识属性。例如,您可以使用员工的 ID 号作为配置文件名称。

有关可以为属性设置的值的示例,请参阅该过程后面的代码。

  1. 目录下,选择

  2. 使用以下模式添加一个组:sagemaker#canvas#IAM-role#Amazon-account-id

  3. 在 Okta 中,打开 Amazon 账户联合身份验证应用程序集成配置。

  4. 选择登录,登录 Amazon 账户联合身份验证应用程序。

  5. 选择编辑并指定以下内容:

    • SAML 2.0

    • 默认中继状态 – https://Region.console.aws.amazon.com/sagemaker/home?region=Region#/studio/canvas/open/StudioId。您可以在控制台中找到 Studio ID:https://console.aws.amazon.com/sagemaker/

  6. 选择属性

  7. SageMakerStudioProfileName 字段中,为每个用户名指定唯一值。用户名必须与您在 Amazon 控制台中创建的用户名一致。

    Attribute 1: Name: https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerStudioUserProfileName Value: ${user.login} Attribute 2: Name: https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys Value: {"SageMakerStudioUserProfileName"}
  8. 选择环境类型。选择常规 Amazon

    • 如果未列出您的环境类型,您可以在 ACS URL 字段中设置 ACS URL。如果您的环境类型已列出,则无需输入 ACS URL

  9. 对于身份提供商 ARN,指定您在上述过程的步骤 6 中使用的 ARN。

  10. 指定会话持续时间

  11. 选择加入所有角色

  12. 通过指定以下字段来打开使用组映射

    • 应用程序筛选条件okta

    • 组筛选条件^aws\#\S+\#(?IAM-role[\w\-]+)\#(?accountid\d+)$

    • 角色值模式arn:aws:iam::$accountid:saml-provider/Okta,arn:aws:iam::$accountid:role/IAM-role

  13. 选择保存/下一步

  14. 分配下,将应用程序分配给您已创建的组。

在 IAM 中添加可选的访问控制策略

在 IAM 中,可以对创建用户配置文件的管理员用户应用以下策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateSageMakerStudioUserProfilePolicy", "Effect": "Allow", "Action": "sagemaker:CreateUserProfile", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": [ "studiouserid" ] } } } ] }

如果选择将上述策略添加到管理员用户,则必须使用在 IAM 中设置 ID 联合身份验证中的以下权限。

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