Configurazione del controllo degli accessi basato sui ruoli Kubernetes - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione del controllo degli accessi basato sui ruoli Kubernetes

Gli utenti amministratori del cluster devono inoltre configurare il controllo degli accessi basato sul ruolo di Kubernetes (RBAC) per consentire agli utenti di data scientist di utilizzarlo per SageMaker HyperPod CLIeseguire carichi di lavoro su cluster orchestrati con Amazon. HyperPod EKS

Opzione 1: eseguire la configurazione utilizzando Helm chart RBAC

Il team SageMaker HyperPod di assistenza fornisce una sottocartella Helm per la configurazione. RBAC Per ulteriori informazioni, consulta Installa pacchetti sul EKS cluster Amazon utilizzando Helm.

Opzione 2: da configurare manualmente RBAC

Crea ClusterRole e ClusterRoleBinding con il privilegio minimo e crea Role e RoleBinding con i permessi di mutazione.

Per creare ClusterRole e ClusterRoleBinding per il ruolo di data scientist IAM

Crea un file di configurazione a livello di cluster cluster_level_config.yaml come segue.

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

Applica la configurazione al cluster. EKS

kubectl apply -f cluster_level_config.yaml

Per creare Role & RoleBinding nel namespace

Questo è l'operatore di formazione dello spazio dei nomi che esegue i processi di formazione e Resiliency lo monitorerà per impostazione predefinita. Il ripristino automatico del lavoro può essere supportato solo nel namespace o nel kubeflow namespace con prefisso. aws-hyperpod

Create un file di configurazione del ruolo come segue. namespace_level_role.yaml Questo esempio crea un ruolo nel kubeflow namespace

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

Applica la configurazione al cluster. EKS

kubectl apply -f namespace_level_role.yaml

Crea una voce di accesso per i gruppi Kubernetes

Dopo aver effettuato la configurazione RBAC utilizzando una delle due opzioni precedenti, utilizza il seguente comando di esempio per sostituire le informazioni necessarie.

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"]'

Per il principal-arn parametro, è necessario utilizzare ilIAMutenti per scienziati.