Menyiapkan kontrol akses berbasis peran Kubernetes - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyiapkan kontrol akses berbasis peran Kubernetes

Pengguna admin klaster juga perlu menyiapkan Kubernetes role-based access control (RBAC) agar pengguna data scientist dapat menggunakannya SageMaker HyperPod CLIuntuk menjalankan beban kerja pada klaster yang diatur dengan Amazon. HyperPod EKS

Opsi 1: Untuk mengatur RBAC menggunakan bagan Helm

Tim SageMaker HyperPod layanan menyediakan sub-bagan Helm untuk pengaturan. RBAC Untuk mempelajari selengkapnya, lihat Instal paket di EKS cluster Amazon menggunakan Helm.

Opsi 2: Untuk mengatur RBAC secara manual

Buat ClusterRole dan ClusterRoleBinding dengan hak istimewa minimum, dan buat Role dan RoleBinding dengan izin mutasi.

Untuk membuat ClusterRole & ClusterRoleBinding untuk IAM peran ilmuwan data

Buat file cluster_level_config.yaml konfigurasi tingkat cluster sebagai berikut.

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

Terapkan konfigurasi ke EKS cluster.

kubectl apply -f cluster_level_config.yaml

Untuk membuat Peran & RoleBinding di namespace

Ini adalah operator pelatihan namespace yang menjalankan pekerjaan pelatihan dan Ketahanan akan memantau secara default. Job auto-resume hanya dapat mendukung di kubeflow namespace atau namespace awalan. aws-hyperpod

Buat file konfigurasi peran namespace_level_role.yaml sebagai berikut. Contoh ini menciptakan peran dalam 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

Terapkan konfigurasi ke EKS cluster.

kubectl apply -f namespace_level_role.yaml

Membuat entri akses untuk grup Kubernetes

Setelah Anda mengatur RBAC menggunakan salah satu dari dua opsi di atas, gunakan perintah contoh berikut untuk menggantikan informasi yang diperlukan.

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"]'

Untuk principal-arn parameter, Anda perlu menggunakanIAMpengguna untuk ilmuwan.