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

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 di Kubernetes

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

Opzione 1: configura RBAC utilizzando Helm chart

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

Opzione 2: configura RBAC manualmente

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 un ruolo e RoleBinding nello spazio dei nomi

Questo è l'operatore di formazione dello spazio dei nomi che esegue i processi di formazione e Resiliency 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 configurato 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 il. Utenti IAM per scienziati