As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurando o controle de acesso baseado em funções do Kubernetes
Os usuários administradores de cluster também precisam configurar o controle de acesso baseado em funções (RBAC) do Kubernetes
Opção 1: Para configurar RBAC usando o gráfico Helm
A equipe SageMaker HyperPod de serviço fornece um subgráfico do Helm para configuração. RBAC Para saber mais, consulte Instale pacotes no EKS cluster da Amazon usando o Helm.
Opção 2: configurar RBAC manualmente
Crie ClusterRole
e ClusterRoleBinding
com o privilégio mínimo, e crie Role
e RoleBinding
com permissões de mutação.
Para criar ClusterRole
e desempenhar ClusterRoleBinding
o IAM papel de cientista de dados
Crie um arquivo cluster_level_config.yaml
de configuração em nível de cluster da seguinte forma.
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
Aplique a configuração ao EKS cluster.
kubectl apply -f cluster_level_config.yaml
Para criar Role & RoleBinding in namespace
Esse é o operador de treinamento de namespace que executa trabalhos de treinamento e o Resiliency monitorará por padrão. A retomada automática de trabalhos só pode ser suportada em kubeflow
namespace ou namespace prefixado. aws-hyperpod
Crie um arquivo de configuração de função da namespace_level_role.yaml
seguinte forma. Este exemplo cria uma função no 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
Aplique a configuração ao EKS cluster.
kubectl apply -f namespace_level_role.yaml
Crie uma entrada de acesso para grupos do Kubernetes
Depois de configurar RBAC usando uma das duas opções acima, use o comando de exemplo a seguir substituindo as informações necessárias.
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"]'
Para o principal-arn
parâmetro, você precisa usar IAMusuários para cientistas o.