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 su ruoli Kubernetes
Gli utenti amministratori del cluster devono inoltre configurare il controllo degli accessi basato sul ruolo (RBAC) di Kubernetes
Opzione 1: configurazione di RBAC con un grafico Helm
Il team di assistenza fornisce una sottocartella Helm per la configurazione di RBAC. SageMaker HyperPod Per ulteriori informazioni, consulta Installazione di pacchetti sul cluster Amazon EKS con Helm.
Opzione 2: configurazione manuale di RBAC
Crea ClusterRole e ClusterRoleBinding con privilegi minimi e Role e RoleBinding con autorizzazioni di mutazione.
Per creare ClusterRole e ClusterRoleBinding per il ruolo IAM di Data Scientist
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 nello spazio dei nomi RoleBinding
Questo è l’operatore di addestramento del namespace monitorato per impostazione predefinita dai job di addestramento eseguiti e da Resiliency. La funzionalità di ripresa automatica del processo è supportata solo nel namespace kubeflow o nel namespace con prefisso aws-hyperpod.
Crea un file di configurazione del ruolo namespace_level_role.yaml come segue. Questo esempio crea un ruolo nel namespace kubeflow.
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
Creazione di una voce di accesso per i gruppi Kubernetes
Dopo aver configurato RBAC con una delle due opzioni precedenti, utilizza il comando di esempio seguente sostituendo 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 parametro principal-arn è necessario utilizzare Utenti IAM per Data Scientist.