Einrichtung der rollenbasierten Zugriffskontrolle für Kubernetes - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einrichtung der rollenbasierten Zugriffskontrolle für Kubernetes

Cluster-Admin-Benutzer müssen außerdem die rollenbasierte Zugriffskontrolle von Kubernetes (RBAC) einrichten, damit Data-Scientist-Benutzer Workloads auf HyperPod Clustern ausführen können SageMaker HyperPod CLI, die mit Amazon orchestriert wurden. EKS

Option 1: Zur Einrichtung mithilfe von Helm Chart RBAC

Das SageMaker HyperPod Serviceteam stellt eine Helm-Untertabelle für die Einrichtung RBAC zur Verfügung. Weitere Informationen hierzu finden Sie unter Installieren Sie Pakete auf dem EKS Amazon-Cluster mit Helm.

Option 2: Manuelles Einrichten RBAC

Erstellen Sie ClusterRole und ClusterRoleBinding mit den Mindestberechtigungen und erstellen Sie Role und RoleBinding mit Mutationsberechtigungen.

Um ClusterRole & ClusterRoleBinding für die IAM Rolle eines Datenwissenschaftlers zu erstellen

Erstellen Sie cluster_level_config.yaml wie folgt eine Konfigurationsdatei auf Clusterebene.

kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: hyperpod-scientist-user-cluster-role rules: - apiGroups: [""] resources: ["pods"] verbs: ["list"] - apiGroups: [""] resources: ["nodes"] verbs: ["list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: hyperpod-scientist-user-cluster-role-binding subjects: - kind: Group name: hyperpod-scientist-user-cluster-level apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: hyperpod-scientist-user-cluster-role # this must match the name of the Role or ClusterRole you wish to bind to apiGroup: rbac.authorization.k8s.io

Wenden Sie die Konfiguration auf den Cluster anEKS.

kubectl apply -f cluster_level_config.yaml

Um Role & RoleBinding im Namespace zu erstellen

Dies ist der Namespace-Trainingsoperator, der Trainingsjobs ausführt und von Resiliency standardmäßig überwacht wird. Die automatische Wiederaufnahme von Job kann nur in kubeflow Namespaces oder Namespace-Präfixen unterstützt werden. aws-hyperpod

Erstellen Sie wie folgt eine Rollenkonfigurationsdatei. namespace_level_role.yaml In diesem Beispiel wird eine Rolle im kubeflow Namespace erstellt

kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: kubeflow name: hyperpod-scientist-user-namespace-level-role ### # 1) add/list/describe/delete pods # 2) get/list/watch/create/patch/update/delete/describe kubeflow pytroch job # 3) get pod log ### rules: - apiGroups: [""] resources: ["pods"] verbs: ["create", "get"] - apiGroups: [""] resources: ["nodes"] verbs: ["get", "list"] - apiGroups: [""] resources: ["pods/log"] verbs: ["get", "list"] - apiGroups: [""] resources: ["pods/exec"] verbs: ["get", "create"] - apiGroups: ["kubeflow.org"] resources: ["pytorchjobs", "pytorchjobs/status"] verbs: ["get", "list", "create", "delete", "update", "describe"] - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "update", "get", "list", "delete"] - apiGroups: [""] resources: ["secrets"] verbs: ["create", "get", "list", "delete"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: kubeflow name: hyperpod-scientist-user-namespace-level-role-binding subjects: - kind: Group name: hyperpod-scientist-user-namespace-level apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: hyperpod-scientist-user-namespace-level-role # this must match the name of the Role or ClusterRole you wish to bind to apiGroup: rbac.authorization.k8s.io

Wenden Sie die Konfiguration auf den EKS Cluster an.

kubectl apply -f namespace_level_role.yaml

Erstellen Sie einen Zugriffseintrag für Kubernetes-Gruppen

Nachdem Sie eine der beiden oben genannten Optionen eingerichtet haben, verwenden Sie den folgenden Beispielbefehl, um die erforderlichen Informationen zu ersetzen. RBAC

aws eks create-access-entry \ --cluster-name <eks-cluster-name> \ --principal-arn arn:aws:iam::<AWS_ACCOUNT_ID_SCIENTIST_USER>:role/ScientistUserRole \ --kubernetes-groups '["hyperpod-scientist-user-namespace-level","hyperpod-scientist-user-cluster-level"]'

Für den principal-arn Parameter müssen Sie den verwendenIAMNutzer für Wissenschaftler.