在 Studio 中设置 Amazon EKS 集群 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Studio 中设置 Amazon EKS 集群

以下说明介绍如何在 Studio 中设置 Amazon EKS 集群。

  1. 创建一个域,或准备好一个已有的域。有关创建域的信息,请参阅 亚马逊 A SageMaker I 入门指南

  2. 将以下权限添加到执行角色。

    有关 SageMaker AI 执行角色以及如何对其进行编辑的信息,请参阅了解域空间权限和执行角色

    要了解如何将策略附加到 IAM 用户或组,请参阅添加和移除 IAM 身份权限

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "DescribeHyerpodClusterPermissions", "Effect": "Allow", "Action": [ "sagemaker:DescribeCluster" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster-name" }, { "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:CompleteLayerUpload", "ecr:GetAuthorizationToken", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheckLayerAvailability", "ecr:PutImage" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "cloudwatch:GetMetricData" ], "Resource": "*" }, { "Sid": "UseEksClusterPermissions", "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:AccessKubernetesApi", "eks:DescribeAddon" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/cluster-name" }, { "Sid": "ListClustersPermission", "Effect": "Allow", "Action": [ "sagemaker:ListClusters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }
  3. 使用 EKS 访问条目向 IAM 用户授予 Kubernetes 访问权限

    1. 导航到与您的集群关联的 Amazon EKS HyperPod 集群。

    2. 选择访问选项卡,然后所创建的执行角色创建访问条目

      1. 在步骤 1 中,在 IAM 主体下拉列表中选择您在上面创建的执行角色。

      2. 在步骤 2 中,选择策略名称,并选择您希望用户有权访问的访问范围。

  4. (可选)我们建议您向集群添加标签,以确保更加顺畅的体验。有关如何添加标签的信息,请参阅编辑集 SageMaker HyperPod 群使用 SageMaker AI 控制台更新集群。

    1. Amazon Managed Grafana 工作区添加标签,使其关联到 Studio 域。这将用于直接在 Studio 中从集群快速链接到 Grafana 工作区。为此,请向集群添加以下标签,以便使用 Grafana 工作区 ID ws-id 标识集群。

      标签键 =“grafana-workspace”,标签值 =“ws-id”。

  5. (可选)在 Studio 中限制 EKS 集群的任务视图。有关 Studio 中的可查看任务的信息,请参阅任务

在 Studio 中限制 EKS 集群的任务视图

您可以限制用户的 Kubernetes 命名空间权限,使他们仅有权查看属于指定命名空间的任务。下文介绍如何在 Studio 中限制 EKS 集群的任务视图。有关 Studio 中的可查看任务的信息,请参阅任务

默认情况下,用户将能看到所有 EKS 集群任务。您可以将用户对 EKS 集群任务的可见范围限制在指定的命名空间内,这样既能确保用户可访问他们所需的资源,又能保持严格的访问控制。完成以下设置后,您需要提供命名空间,以便用户查看该命名空间下的作业。

应用限制后,您需要为代入该角色的用户提供命名空间。仅在用户提供他们有权在任务选项卡中查看的输入命名空间后,Studio 才会显示命名空间的作业。

以下配置可让管理员向数据科学家授予特定的、有限的访问权限,以便其查看集群内的任务。此配置授予以下权限:

  • 列出并获取容器组(pod)

  • 列出并获取事件

  • 获取自定义资源定义 (CRDs)

YAML 配置

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: pods-events-crd-cluster-role rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "list"] - apiGroups: [""] resources: ["events"] verbs: ["get", "list"] - apiGroups: ["apiextensions.k8s.io"] resources: ["customresourcedefinitions"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: pods-events-crd-cluster-role-binding subjects: - kind: Group name: pods-events-crd-cluster-level apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: pods-events-crd-cluster-role apiGroup: rbac.authorization.k8s.io
  1. 将 YAML 配置保存到名为 cluster-role.yaml 的文件中。

  2. 使用 kubectl 应用配置:

    kubectl apply -f cluster-role.yaml
  3. 验证配置:

    kubectl get clusterrole pods-events-crd-cluster-role kubectl get clusterrolebinding pods-events-crd-cluster-role-binding
  4. 通过身份提供者或 IAM 将用户分配到 pods-events-crd-cluster-level 组。