Buat entri akses - Amazon EKS

Bantu tingkatkan halaman ini

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

Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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

Buat entri akses

Sebelum membuat entri akses, pertimbangkan hal berikut:

  • Mode otentikasi yang diatur dengan benar. Lihat Ubah mode otentikasi untuk menggunakan entri akses.

  • Entri akses mencakup Nama Sumber Daya Amazon (ARN) dari satu, dan hanya satu, IAM prinsipal yang ada. IAMPrinsipal tidak dapat dimasukkan dalam lebih dari satu entri akses. Pertimbangan tambahan untuk ARN yang Anda tentukan:

    • IAMPraktik terbaik merekomendasikan untuk mengakses klaster Anda menggunakan IAM peran yang memiliki kredensi jangka pendek, daripada IAM pengguna yang memiliki kredensi jangka panjang. Untuk informasi selengkapnya, lihat Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara di IAMPanduan Pengguna.

    • Jika ARN adalah untuk IAM peran, itu dapat mencakup jalur. ARNsdalam aws-auth ConfigMap entri, tidak dapat menyertakan jalur. Misalnya, Anda ARN bisa arn:aws: iam::<111122223333>:role/<development/apps/my-role> atau arn:aws: iam::<111122223333>:role/<my-role>.

    • Jika jenis entri akses adalah apa pun selain STANDARD (lihat pertimbangan selanjutnya tentang jenis), ARN harus berada di AWS akun yang sama dengan cluster Anda. Jika jenisnyaSTANDARD, ARN bisa di akun yang sama, atau berbeda, dari AWS akun tempat cluster Anda berada.

    • Anda tidak dapat mengubah IAM prinsipal setelah entri akses dibuat.

    • Jika Anda pernah menghapus IAM prinsipal dengan iniARN, entri akses tidak dihapus secara otomatis. Kami menyarankan Anda menghapus entri akses dengan ARN untuk IAM prinsipal yang Anda hapus. Jika Anda tidak menghapus entri akses dan membuat ulang IAM prinsipal, meskipun memiliki entri yang samaARN, entri akses tidak akan berfungsi. Ini karena meskipun sama untuk IAM prinsipal yang dibuat ulang, roleID atau userID (Anda dapat melihat ini dengan aws sts get-caller-identity AWS CLI perintah) berbeda untuk prinsipal yang dibuat ulang daripada untuk IAM prinsipal asliIAM. ARN Meskipun Anda tidak melihat IAM kepala sekolah roleID atau userID untuk entri akses, Amazon EKS menyimpannya dengan entri akses.

  • Setiap entri akses memiliki tipe. Anda dapat menentukan EC2_Linux (untuk IAM peran yang digunakan dengan Linux atau Bottlerocket node yang dikelola sendiri), EC2_Windows (untuk IAM peran yang digunakan dengan node yang dikelola sendiri Windows), FARGATE_LINUX (untuk peran yang digunakan IAM dengan Fargate (Fargate)), AWS HYBRID_LINUX (untuk IAM peran yang digunakan dengan node hibrida) atau sebagai tipe. STANDARD Jika Anda tidak menentukan jenis, Amazon EKS secara otomatis menyetel jenisnyaSTANDARD. Tidak perlu membuat entri akses untuk IAM peran yang digunakan untuk grup node terkelola atau profil Fargate, karena Amazon EKS menambahkan entri untuk peran ini ke aws-authConfigMap, terlepas dari versi platform mana klaster Anda berada.

    Anda tidak dapat mengubah jenis setelah entri akses dibuat.

  • Jika jenis entri aksesnyaSTANDARD, Anda dapat menentukan nama pengguna untuk entri akses. Jika Anda tidak menentukan nilai untuk nama pengguna, Amazon EKS menetapkan salah satu nilai berikut untuk Anda, tergantung pada jenis entri akses dan apakah IAM prinsipal yang Anda tentukan adalah IAM peran atau IAM pengguna. Kecuali Anda memiliki alasan khusus untuk menentukan nama pengguna Anda sendiri, sebaiknya jangan tentukan nama pengguna dan biarkan Amazon membuatnya EKS secara otomatis untuk Anda. Jika Anda menentukan nama pengguna Anda sendiri:

    • Itu tidak bisa dimulai dengansystem:,eks:,aws:,amazon:, atauiam:.

    • Jika nama pengguna adalah untuk IAM peran, kami sarankan Anda menambahkan {{SessionName}} ke akhir nama pengguna Anda. Jika Anda {{SessionName}} menambahkan nama pengguna Anda, nama pengguna harus menyertakan titik dua sebelum {{SessionName}}. Ketika peran ini diasumsikan, nama sesi yang ditentukan saat mengasumsikan peran secara otomatis diteruskan ke cluster dan akan muncul di CloudTrail log. Misalnya, Anda tidak dapat memiliki nama penggunajohn{{SessionName}}. Nama pengguna harus :john{{SessionName}} ataujo:hn{{SessionName}}. Usus besar hanya harus sebelumnya{{SessionName}}. Nama pengguna yang dihasilkan oleh Amazon EKS dalam tabel berikut mencakup fileARN. Karena ARN termasuk titik dua, memenuhi persyaratan ini. Titik dua tidak diperlukan jika Anda tidak menyertakan {{SessionName}} nama pengguna Anda.

      IAMtipe utama Tipe Nilai nama pengguna yang ditetapkan Amazon EKS secara otomatis

      Pengguna

      STANDARD

      ARNDari pengguna. Contoh: arn:aws: iam::<111122223333>:user/<my-user>

      Peran

      STANDARD

      STSARNPeran ketika diasumsikan. Amazon EKS menambahkan {{SessionName}} peran tersebut.

      Contoh: arn:aws: sts::<111122223333>:assumed-role/<my-role>/{{SessionName}}

      Jika peran ARN yang Anda tentukan berisi jalur, Amazon EKS menghapusnya di nama pengguna yang dihasilkan.

      Peran

      EC2_Linux atau EC2_Windows

      system:node:{{EC2PrivateDNSName}}

      Peran

      FARGATE_LINUX

      system:node:{{SessionName}}

      Peran

      HYBRID_LINUX

      system:node:{{SessionName}}

      Anda dapat mengubah nama pengguna setelah entri akses dibuat.

  • Jika jenis entri akses adalahSTANDARD, dan Anda ingin menggunakan Kubernetes RBACotorisasi, Anda dapat menambahkan satu atau lebih nama grup ke entri akses. Setelah Anda membuat entri akses, Anda dapat menambahkan dan menghapus nama grup. Untuk kepala IAM sekolah untuk memiliki akses ke Kubernetes objek di cluster Anda, Anda harus membuat dan mengelola Kubernetes objek otorisasi berbasis peran ()RBAC. Buat Kubernetes RoleBindingatau ClusterRoleBinding objek di cluster Anda yang menentukan nama grup sebagai subject forkind: Group. Kubernetes mengotorisasi akses IAM utama ke objek cluster apa pun yang telah Anda tentukan dalam Kubernetes Roleatau ClusterRole objek yang juga telah Anda tentukan dalam pengikatan AndaroleRef. Jika Anda menentukan nama grup, kami sarankan Anda terbiasa dengan Kubernetes objek otorisasi berbasis peran ()RBAC. Untuk informasi selengkapnya, lihat Menggunakan RBAC Otorisasi di Kubernetes dokumentasi.

    penting

    Amazon EKS tidak mengkonfirmasi bahwa ada Kubernetes RBACobjek yang ada di cluster Anda termasuk salah satu nama grup yang Anda tentukan.

    Alih-alih, atau sebagai tambahan, Kubernetes mengotorisasi akses IAM utama ke Kubernetes objek di cluster Anda, Anda dapat mengaitkan kebijakan EKS akses Amazon ke entri akses. Amazon EKS mengizinkan IAM kepala sekolah untuk mengakses Kubernetes objek di klaster Anda dengan izin dalam kebijakan akses. Anda dapat membuat cakupan izin kebijakan akses ke Kubernetes ruang nama yang Anda tentukan. Penggunaan kebijakan akses tidak mengharuskan Anda untuk mengelola Kubernetes RBACbenda. Untuk informasi selengkapnya, lihat Mengaitkan kebijakan akses dengan entri akses.

  • Jika Anda membuat entri akses dengan tipe EC2_Linux atauEC2_Windows, IAM prinsipal yang membuat entri akses harus memiliki iam:PassRole izin. Untuk informasi selengkapnya, lihat Memberikan izin pengguna untuk meneruskan peran ke AWS layanan di IAMPanduan Pengguna.

  • Mirip dengan IAMperilaku standar, pembuatan dan pembaruan entri akses pada akhirnya konsisten, dan mungkin memerlukan beberapa detik untuk menjadi efektif setelah API panggilan awal berhasil dikembalikan. Anda harus merancang aplikasi Anda untuk memperhitungkan potensi penundaan ini. Kami menyarankan agar Anda tidak menyertakan entri akses yang dibuat atau diperbarui di jalur kode ketersediaan tinggi yang penting dari aplikasi Anda. Sebaliknya, buat perubahan dalam inisialisasi terpisah atau rutinitas pengaturan yang lebih jarang Anda lakukan. Selain itu, pastikan untuk memverifikasi bahwa perubahan telah dibuat merata sebelum alur kerja produksi bergantung padanya.

  • Entri akses tidak mendukung peran terkait layanan. Anda tidak dapat membuat entri akses di mana prinsipal ARN adalah peran terkait layanan. Anda dapat mengidentifikasi peran terkait layanan berdasarkan peran merekaARN, yang ada dalam format arn:aws: iam::*:role/aws-service-role/*.

Anda dapat membuat entri akses menggunakan AWS Management Console atau AWS CLI.

AWS Management Console

  1. Buka EKSkonsol Amazon.

  2. Pilih nama cluster tempat Anda ingin membuat entri akses.

  3. Pilih tab Access.

  4. Pilih Buat entri akses.

  5. Untuk IAMprinsipal, pilih IAM peran atau pengguna yang ada. IAMPraktik terbaik merekomendasikan untuk mengakses klaster Anda menggunakan IAM peran yang memiliki kredensi jangka pendek, daripada IAM pengguna yang memiliki kredensi jangka panjang. Untuk informasi selengkapnya, lihat Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara di IAMPanduan Pengguna.

  6. Untuk Type, jika entri akses adalah untuk peran node yang digunakan untuk EC2 node Amazon yang dikelola sendiri, pilih EC2Linux atau EC2Windows. Jika tidak, terima default (Standar).

  7. Jika Jenis yang Anda pilih adalah Standar dan Anda ingin menentukan Nama Pengguna, masukkan nama pengguna.

  8. Jika Jenis yang Anda pilih adalah Standar dan Anda ingin menggunakan Kubernetes RBACotorisasi untuk kepala IAM sekolah, tentukan satu atau lebih nama untuk Grup. Jika Anda tidak menentukan nama grup apa pun dan ingin menggunakan EKS otorisasi Amazon, Anda dapat mengaitkan kebijakan akses di langkah selanjutnya, atau setelah entri akses dibuat.

  9. (Opsional) Untuk Tag, tetapkan label ke entri akses. Misalnya, untuk membuatnya lebih mudah untuk menemukan semua sumber daya dengan tag yang sama.

  10. Pilih Berikutnya.

  11. Pada halaman Tambahkan kebijakan akses, jika jenis yang Anda pilih adalah Standar dan Anda ingin Amazon EKS mengotorisasi IAM prinsipal untuk memiliki izin ke Kubernetes objek di cluster Anda, selesaikan langkah-langkah berikut. Jika tidak, pilih Selanjutnya.

    1. Untuk nama Kebijakan, pilih kebijakan akses. Anda tidak dapat melihat izin kebijakan akses, tetapi mereka menyertakan izin serupa dengan yang ada di Kubernetes objek yang menghadap penggunaClusterRole. Untuk informasi selengkapnya, lihat Peran yang dihadapi pengguna di Kubernetes dokumentasi.

    2. Pilih salah satu opsi berikut:

      • Cluster - Pilih opsi ini jika Anda EKS ingin Amazon mengotorisasi IAM prinsipal untuk memiliki izin dalam kebijakan akses untuk semua Kubernetes objek di cluster Anda.

      • Kubernetes namespace - Pilih opsi ini jika Anda EKS ingin Amazon mengotorisasi IAM prinsipal untuk memiliki izin dalam kebijakan akses untuk semua Kubernetes objek dalam spesifik Kubernetes namespace di cluster Anda. Untuk Namespace, masukkan nama Kubernetes namespace di cluster Anda. Jika Anda ingin menambahkan ruang nama tambahan, pilih Tambahkan namespace baru dan masukkan nama namespace.

    3. Jika Anda ingin menambahkan kebijakan tambahan, pilih Tambah kebijakan. Anda dapat membuat cakupan setiap kebijakan secara berbeda, tetapi Anda dapat menambahkan setiap kebijakan hanya sekali.

    4. Pilih Berikutnya.

  12. Tinjau konfigurasi untuk entri akses Anda. Jika ada yang terlihat salah, pilih Sebelumnya untuk kembali melalui langkah-langkah dan memperbaiki kesalahan. Jika konfigurasi sudah benar, pilih Buat.

AWS CLI

  1. Instal AWS CLI, seperti yang dijelaskan dalam Menginstal di Panduan Pengguna Antarmuka Baris AWS Perintah.

  2. Untuk membuat entri akses Anda dapat menggunakan salah satu contoh berikut untuk membuat entri akses:

    • Buat entri akses untuk grup node Amazon EC2 Linux yang dikelola sendiri. Ganti my-cluster dengan nama cluster Anda, 111122223333 dengan ID AWS akun Anda, dan EKS-my-cluster-self-managed-ng-1 dengan nama IAMperan node Anda. Jika grup node Anda adalah grup node Windows, maka ganti EC2_Linux denganEC2_Windows.

      aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/EKS-my-cluster-self-managed-ng-1 --type EC2_Linux

      Anda tidak dapat menggunakan --kubernetes-groups opsi ketika Anda menentukan jenis selainSTANDARD. Anda tidak dapat mengaitkan kebijakan akses ke entri akses ini, karena jenisnya adalah nilai selainSTANDARD.

    • Buat entri akses yang memungkinkan IAM peran yang tidak digunakan untuk grup node yang EC2 dikelola sendiri Amazon, yang Anda inginkan Kubernetes untuk mengotorisasi akses ke cluster Anda dengan. Ganti my-cluster dengan nama klaster Anda, 111122223333 dengan ID AWS akun Anda, dan my-role dengan nama IAM peran Anda. Ganti Viewers dengan nama grup yang telah Anda tentukan dalam Kubernetes RoleBindingatau ClusterRoleBinding objek di cluster Anda.

      aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role --type STANDARD --user Viewers --kubernetes-groups Viewers
    • Buat entri akses yang memungkinkan IAM pengguna untuk mengautentikasi ke cluster Anda. Contoh ini diberikan karena hal ini dimungkinkan, meskipun praktik IAM terbaik merekomendasikan untuk mengakses klaster Anda menggunakan IAM peran yang memiliki kredensi jangka pendek, daripada IAM pengguna yang memiliki kredensi jangka panjang. Untuk informasi selengkapnya, lihat Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara di IAMPanduan Pengguna.

      aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:user/my-user --type STANDARD --username my-user

      Jika Anda ingin pengguna ini memiliki lebih banyak akses ke cluster Anda daripada izin di Kubernetes APIperan penemuan, maka Anda perlu mengaitkan kebijakan akses ke entri akses, karena --kubernetes-groups opsi tersebut tidak digunakan. Untuk informasi lebih lanjut, lihat Mengaitkan kebijakan akses dengan entri akses APIdan temukan peran di Kubernetes dokumentasi.