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