Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Entri Akses EKS
Anda dapat menggunakan eksctl untuk mengelola Entri Akses EKS. Gunakan entri akses untuk memberikan izin Kubernetes ke AWS IAM Identities. Misalnya, Anda mungkin memberikan izin peran pengembang untuk membaca sumber daya Kubernetes di klaster.
Topik ini mencakup cara menggunakan eksctl untuk mengelola entri akses. Untuk informasi umum tentang entri akses, lihat Berikan akses kepada pengguna IAM ke Kubernetes dengan entri akses EKS.
Anda dapat melampirkan kebijakan akses Kubernetes yang ditentukan oleh AWS, atau menggabungkan Identitas IAM dengan grup Kubernetes.
Untuk informasi selengkapnya tentang kebijakan yang telah ditentukan sebelumnya, lihat Mengaitkan kebijakan akses dengan entri akses.
Jika Anda perlu menentukan kebijakan Kubernetes pelanggan, kaitkan Identitas IAM dengan grup Kubernetes, dan berikan izin ke grup tersebut.
Mode otentikasi cluster
Anda hanya dapat menggunakan entri akses jika mode otentikasi klaster mengizinkannya.
Untuk informasi selengkapnya, lihat Mengatur Mode Otentikasi Cluster
Mengatur mode otentikasi dengan file YAMG
eksctltelah menambahkan accessConfig.authenticationMode bidang baru di bawah ClusterConfig, yang dapat diatur ke salah satu dari tiga nilai berikut:
-
CONFIG_MAP- default di EKS API - hanyaaws-authConfigMap akan digunakan -
API- hanya akses entri API yang akan digunakan -
API_AND_CONFIG_MAP- default dieksctl- keduanyaaws-authConfigMap dan akses entri API dapat digunakan
Setel mode otentikasi di ClusterConfig YAMB:
accessConfig: authenticationMode: <>
Perbarui mode otentikasi dengan perintah
Jika Anda ingin menggunakan entri akses pada cluster yang sudah ada, non-eksctl dibuat, di mana CONFIG_MAP opsi digunakan, pengguna harus terlebih dahulu mengatur ke. authenticationMode API_AND_CONFIG_MAP Untuk itu, eksctl telah memperkenalkan perintah baru untuk memperbarui mode otentikasi cluster, yang berfungsi baik dengan flag CLI mis.
eksctl utils update-authentication-mode --cluster my-cluster --authentication-mode API_AND_CONFIG_MAP
Akses Sumber Daya Entri
Entri akses memiliki tipe, seperti STANDARD atauEC2_LINUX. Jenisnya tergantung pada bagaimana Anda menggunakan entri akses.
-
standardTipenya adalah untuk memberikan izin Kubernetes kepada Pengguna IAM dan Peran IAM.-
Misalnya, Anda dapat melihat sumber daya Kubernetes di konsol AWS dengan melampirkan kebijakan akses ke Peran atau Pengguna yang Anda gunakan untuk mengakses konsol.
-
-
EC2_WINDOWSTipeEC2_LINUXdan adalah untuk memberikan izin Kubernetes ke instance. EC2 Instance menggunakan izin ini untuk bergabung dengan cluster.
Untuk informasi selengkapnya tentang jenis entri akses, lihat Membuat entri akses
Entitas IAM
Anda dapat menggunakan entri akses untuk memberikan izin Kubernetes ke Identitas IAM seperti Pengguna IAM dan Peran IAM.
Gunakan accessConfig.accessEntries bidang untuk mengaitkan ARN sumber daya IAM dengan API EKS Entri Akses. Contoh:
accessConfig: authenticationMode: API_AND_CONFIG_MAP accessEntries: - principalARN: arn:aws:iam::111122223333:user/my-user-name type: STANDARD kubernetesGroups: # optional Kubernetes groups - group1 # groups can used to give permissions via RBAC - group2 - principalARN: arn:aws:iam::111122223333:role/role-name-1 accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy accessScope: type: namespace namespaces: - default - my-namespace - dev-* - principalARN: arn:aws:iam::111122223333:role/admin-role accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy accessScope: type: cluster - principalARN: arn:aws:iam::111122223333:role/role-name-2 type: EC2_LINUX
Selain mengaitkan kebijakan EKS, seseorang juga dapat menentukan grup Kubernetes yang menjadi milik entitas IAM, sehingga memberikan izin melalui RBAC.
Grup nodegroup dan Fargate yang dikelola
Integrasi dengan entri akses untuk sumber daya ini akan dicapai di belakang layar, oleh EKS API. Grup node terkelola yang baru dibuat dan pod Fargate akan membuat entri akses API, daripada menggunakan sumber daya RBAC yang dimuat sebelumnya. Grup node dan pod Fargate yang ada tidak akan diubah, dan terus mengandalkan entri di peta konfigurasi aws-auth.
Nodegroup yang dikelola sendiri
Setiap entri akses memiliki tipe. Untuk mengotorisasi nodegroup yang dikelola sendiri, eksctl akan membuat entri akses unik untuk setiap nodegroup dengan ARN utama disetel ke ARN peran node dan mengetik disetel ke salah satu atau tergantung pada nodegroup AMIFamily. EC2_LINUX EC2_WINDOWS
Saat membuat entri akses sendiri, Anda juga dapat menentukan EC2_LINUX (untuk peran IAM yang digunakan dengan Linux atau node yang dikelola sendiri oleh Bottlerocket), EC2_WINDOWS (untuk peran IAM yang digunakan dengan node yang dikelola sendiri Windows), (untuk peran IAM yang digunakan dengan AWS Fargate (Fargate)), atau FARGATE_LINUX sebagai tipe. STANDARD Jika Anda tidak menentukan tipe, tipe default diatur keSTANDARD.
catatan
Saat menghapus nodegroup yang dibuat dengan yang sudah ada sebelumnyainstanceRoleARN, adalah tanggung jawab pengguna untuk menghapus entri akses yang sesuai ketika tidak ada lagi nodegroup yang terkait dengannya. Ini karena eksctl tidak berusaha mencari tahu apakah entri akses masih digunakan oleh nodegroup yang dikelola sendiri non-eksctl karena ini adalah proses yang rumit.
Buat entri akses
Ini dapat dilakukan dengan dua cara berbeda, baik selama pembuatan cluster, menentukan entri akses yang diinginkan sebagai bagian dari file konfigurasi dan berjalan:
eksctl create cluster -f config.yaml
ATAU posting pembuatan cluster, dengan menjalankan:
eksctl create accessentry -f config.yaml
Untuk contoh file konfigurasi untuk membuat entri akses, lihat 40-access-entries.yaml
Dapatkan entri akses
Pengguna dapat menghentikan semua entri akses yang terkait dengan cluster tertentu dengan menjalankan salah satu dari berikut ini:
eksctl get accessentry -f config.yaml
ATAU
eksctl get accessentry --cluster my-cluster
Atau, untuk mengambil hanya entri akses yang sesuai dengan entitas IAM tertentu, seseorang harus menggunakan --principal-arn bendera tersebut. misalnya
eksctl get accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Hapus entri akses
Untuk menghapus entri akses tunggal pada satu waktu, gunakan:
eksctl delete accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Untuk menghapus beberapa entri akses, gunakan --config-file bendera dan tentukan semua principalARN’s yang sesuai dengan entri akses, di bawah bidang tingkat atasaccessEntry, mis.
... accessEntry: - principalARN: arn:aws:iam::111122223333:user/my-user-name - principalARN: arn:aws:iam::111122223333:role/role-name-1 - principalARN: arn:aws:iam::111122223333:role/admin-role
eksctl delete accessentry -f config.yaml
Migrasi dari aws-auth ConfigMap
Pengguna dapat memigrasikan identitas IAM mereka yang ada dari aws-auth configmap untuk mengakses entri dengan menjalankan yang berikut:
eksctl utils migrate-to-access-entry --cluster my-cluster --target-authentication-mode <API or API_AND_CONFIG_MAP>
Ketika --target-authentication-mode bendera disetel keAPI, mode otentikasi dialihkan ke API mode (dilewati jika sudah dalam API mode), pemetaan identitas IAM akan dimigrasikan untuk mengakses entri, dan configmap dihapus dari cluster. aws-auth
Ketika --target-authentication-mode bendera disetel keAPI_AND_CONFIG_MAP, mode otentikasi dialihkan ke mode (dilewati jika sudah dalam API_AND_CONFIG_MAP API_AND_CONFIG_MAP mode), pemetaan identitas IAM akan dimigrasikan untuk mengakses entri, tetapi configmap dipertahankan. aws-auth
catatan
Ketika --target-authentication-mode flag diatur keAPI, perintah ini tidak akan memperbarui mode otentikasi ke API mode jika aws-auth configmap memiliki salah satu kendala di bawah ini.
-
Ada pemetaan identitas tingkat Akun.
-
Satu atau lebih Roles/Users dipetakan ke grup kubernetes yang dimulai dengan awalan
system:(kecuali untuk grup khusus EKS yaitusystem:masters,, dll).system:bootstrapperssystem:nodes -
Satu atau lebih pemetaan identitas IAM adalah untuk [Service Linked Role] (link: IAM/latest/UserGuide/using - service-linked-roles .html).
Nonaktifkan izin admin pembuat klaster
eksctltelah menambahkan bidang baru accessConfig.bootstrapClusterCreatorAdminPermissions: boolean yang, ketika disetel ke false, menonaktifkan pemberian izin cluster-admin ke identitas IAM yang membuat klaster. yaitu
tambahkan opsi ke file konfigurasi:
accessConfig: bootstrapClusterCreatorAdminPermissions: false
dan jalankan:
eksctl create cluster -f config.yaml