Configuración del control de acceso basado en roles de Kubernetes - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración del control de acceso basado en roles de Kubernetes

Los usuarios administradores de clústeres también deben configurar el control de acceso basado en roles (RBAC) de Kubernetes para que los usuarios científicos de datos lo utilicen SageMaker HyperPod CLIpara ejecutar cargas de trabajo en clústeres organizados con Amazon. HyperPod EKS

Opción 1: Para configurarlo mediante el diagrama de Helm RBAC

El equipo SageMaker HyperPod de servicio proporciona un subgráfico de Helm para la configuración. RBAC Para obtener más información, consulte Instalar paquetes en el EKS clúster de Amazon con Helm.

Opción 2: configurar manualmente RBAC

Cree ClusterRole y ClusterRoleBinding con el mínimo de privilegios y cree Role y RoleBinding con permisos de mutación.

Para crear ClusterRole y ClusterRoleBinding para el IAM puesto de científico de datos

Cree un archivo cluster_level_config.yaml de configuración a nivel de clúster de la siguiente manera.

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 la configuración al clúster. EKS

kubectl apply -f cluster_level_config.yaml

Para crear un rol y RoleBinding en el espacio de nombres

Este es el operador de formación del espacio de nombres que ejecuta los trabajos de formación y Resiliency lo supervisará de forma predeterminada. La reanudación automática de trabajos solo se admite en un kubeflow espacio de nombres o con un prefijo de espacio de nombres. aws-hyperpod

Cree un archivo de configuración de roles de la siguiente manera. namespace_level_role.yaml En este ejemplo se crea un rol en el kubeflow espacio de nombres

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 la configuración al clúster. EKS

kubectl apply -f namespace_level_role.yaml

Cree una entrada de acceso para los grupos de Kubernetes

Tras realizar la configuración RBAC mediante una de las dos opciones anteriores, utilice el siguiente comando de ejemplo para sustituir la información necesaria.

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 el principal-arn parámetro, debe usar elIAMusuarios para científicos.