添加用户并设置服务帐号 - 亚马逊 SageMaker AI

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

添加用户并设置服务帐号

精细的访问控制——我们的建议

根据用户的 Kubernetes 用户名进行区分。用户的 Kubernetes 用户名在其访问条目中定义。为确保两个人类用户具有不同的用户名,有两种选择:

  1. 推荐-多个人类用户可以使用同一个角色,前提是每个用户都有自己的不同会话名称,且该名称将在会话之间保留。默认情况下,IAM 角色的 Kubernetes 用户名采用以下格式。arn:aws:sts::{ACCOUNT_ID}:assumed-role/{ROLE_NAME}/{SESSION_NAME}使用此默认设置,用户将已经按会话名称进行区分。管理员有几种方法可以为每个用户强制使用唯一的会话名称。

    • SSO 登录-默认情况下,使用 SSO 登录的用户将使用与其用户名关联的会话名称 AWS

    • 中央凭证自动售卖服务-对于企业客户,他们可能有一些内部凭证自动售货服务,用户可以拨打这些服务来获取带有其身份的证书。

    • 基于角色的强制执行-要求 IAM 用户在您的角色中担任 IAM 角色时将其aws:username设置为角色会话名称AWS 账户。有关如何执行此操作的文档在这里:s https://aws.amazon.com/blogs/ecurity/ easily-control-naming-individual-iam-role-sessions/

  2. 如果 2 位数据科学家使用不同的访问条目(不同的 IAM 角色或用户),则他们将始终被视为不同的用户。

创建访问条目

数据科学家角色必需的 IAM 策略:

  • eks:DescribeCluster

必需的访问权限入口政策

  • AmazonSagemakerHyperpodSpacePolicy-范围限定为命名空间 DS 应在其中创建空间

  • AmazonSagemakerHyperpodSpaceTemplatePolicy-作用域为 “jupyter-k8s-shared” 命名空间

私人和公共空间

我们支持两种类型的共享模式:“公开” 和 “OwnerOnly”。“AccessType” 和 “OwnershipType” 字段都使用这两个值。

  • AccessType:拥有命名空间权限的任何人都可以访问公共空间,而 OwnerOnly 只有空间创建者和管理员用户才能访问。管理员用户是根据以下标准定义的:

  • OwnershipType:公共空间可以 modified/deleted 由在命名空间中拥有权限的任何人 OwnerOnly 使用,也可以 modified/deleted 由创建者或管理员创建。

管理员用户的定义是:

  1. system:mastersKubernetes 小组的一员

  2. 在掌舵图的 CLUSTER_ADMIN_GROUP 环境变量中定义的 Kubernetes 组的一部分。

可以使用 EKS 访问条目配置用户的群组。通过在对象中配置规范,可以将空间定义为 “公共OwnerOnly” 或 “”:

apiVersion: workspace.jupyter.org/v1alpha1 kind: Workspace metadata: labels: app.kubernetes.io/name: jupyter-k8s name: example-workspace spec: displayName: "Example Workspace" image: "public.ecr.aws/sagemaker/sagemaker-distribution:3.4.2-cpu" desiredStatus: "Running" ownershipType: "Public"/"OwnerOnly" accessType: "Public"/"OwnerOnly" # more fields here