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