Configurando o controle de acesso baseado em funções do Kubernetes - Amazon SageMaker

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 para que usuários de cientistas de dados o usem para executar cargas de trabalho em clusters SageMaker HyperPod CLIorquestrados com a Amazon. HyperPod EKS

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.