Studio での Amazon EKS クラスターの設定 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Studio での Amazon EKS クラスターの設定

次の手順では、Studio で Amazon EKS クラスターを設定する方法について説明します。

  1. ドメインを作成するか、準備します。ドメインの作成については、「Amazon SageMaker AI のセットアップガイド」を参照してください。

  2. 実行ロールのアクセス許可ポリシーに以下を追加します。

    SageMaker AI 実行ロールとその編集方法については、「ドメインスペースのアクセス許可と実行ロールを理解する」を参照してください。

    IAM ユーザーまたはグループにポリシーをアタッチする方法については、「IAM ID のアクセス許可の追加および削除」を参照してください。

    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 アクセスエントリを使用して Kubernetes へのアクセスを IAM ユーザーに許可します。

    1. HyperPod クラスターに関連付けられている Amazon EKS クラスターに移動します。

    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 for EKS クラスターのタスクビューを制限する Studio で表示可能なタスクの詳細については、「タスク」を参照してください。

Studio for EKS クラスターのタスクビューを制限する

ユーザーの Kubernetes 名前空間のアクセス許可を制限して、指定された名前空間に属するタスクのみを表示できるようにすることができます。次のセクションでは、Studio for EKS クラスターでタスクビューを制限する方法について説明します。Studio で表示可能なタスクの詳細については、「タスク」を参照してください。

デフォルトでは、ユーザーはすべての EKS クラスタータスクを可視化できます。EKS クラスタータスクのユーザーの可視性を指定された名前空間に制限することで、厳格なアクセスコントロールを維持しながら、ユーザーは必要なリソースにアクセスできます。以下を設定したら、ユーザーがその名前空間のジョブを表示するための名前空間を指定する必要があります。

制限が適用されたら、ロールを引き受けるユーザーに名前空間を指定する必要があります。Studio は、ユーザーが [タスク] タブで表示するアクセス許可を持つ入力名前空間を提供すると、名前空間のジョブのみを表示します。

次の設定を使用すると、管理者はクラスター内のタスクを表示するために、データサイエンティストに特定の制限付きアクセス権を付与できます。このポリシーは以下のアクセス許可を付与します。

  • ポッドを一覧表示して取得する

  • イベントを一覧表示して取得する

  • カスタムリソース定義 (CRD) を取得する

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 グループにユーザーを割り当てます。