Pelajari cara EKS Pod Identity memberikan akses Pod ke layanan AWS - Amazon EKS

Bantu tingkatkan halaman ini

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.

Pelajari cara EKS Pod Identity memberikan akses Pod ke layanan AWS

Aplikasi dalam Pod kontainer dapat menggunakan AWS SDK atau AWS CLI untuk membuat API permintaan untuk Layanan AWS menggunakan AWS Identity and Access Management (IAM) izin. Aplikasi harus menandatangani AWS API permintaan mereka dengan AWS kredensialnya.

EKSPod Identities menyediakan kemampuan untuk mengelola kredensional untuk aplikasi Anda, mirip dengan cara profil EC2 instans Amazon memberikan kredensi ke instans Amazon. EC2 Alih-alih membuat dan mendistribusikan AWS kredensional Anda ke container atau menggunakan peran EC2 instans Amazon, Anda mengaitkan IAM peran dengan akun Kubernetes layanan dan mengonfigurasi Anda Pods untuk menggunakan akun layanan.

Setiap asosiasi EKS Pod Identity memetakan peran ke akun layanan di namespace di klaster yang ditentukan. Jika Anda memiliki aplikasi yang sama di beberapa cluster, Anda dapat membuat asosiasi identik di setiap cluster tanpa mengubah kebijakan kepercayaan peran.

Jika sebuah pod menggunakan akun layanan yang memiliki asosiasi, Amazon akan EKS menetapkan variabel lingkungan dalam container pod. Variabel lingkungan mengonfigurasi AWS SDKs, termasuk AWS CLI, untuk menggunakan kredensial EKS Pod Identity.

Manfaat Identitas EKS Pod

EKSPod Identities memberikan manfaat sebagai berikut:

  • Keistimewaan paling sedikit — Anda dapat IAM mencakup izin ke akun layanan, dan hanya Pods yang menggunakan akun layanan tersebut yang memiliki akses ke izin tersebut. Fitur ini juga mengurangi kebutuhan akan solusi dari pihak ketiga seperti kiam atau kube2iam.

  • Isolasi kredenal — Pod's Kontainer hanya dapat mengambil kredensi untuk IAM peran yang terkait dengan akun layanan yang digunakan penampung. Kontainer tidak pernah memiliki akses ke kredensional yang digunakan oleh kontainer lain di wadah lain. Pods Saat menggunakan Pod Identities, Pod's container juga memiliki izin yang ditetapkan ke IAMperan EKS node Amazon, kecuali jika Anda memblokir Pod akses ke Amazon EC2 Instance Metadata Service (). IMDS Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja.

  • Auditabilitas — Akses dan pencatatan peristiwa tersedia AWS CloudTrail untuk membantu memfasilitasi audit retrospektif.

EKSPod Identity adalah metode yang lebih sederhana daripadaIAMperan untuk akun layanan, karena metode ini tidak menggunakan penyedia OIDC identitas. EKSPod Identity memiliki penyempurnaan sebagai berikut:

  • Operasi independen — Di banyak organisasi, menciptakan penyedia OIDC identitas adalah tanggung jawab tim yang berbeda daripada mengelola Kubernetes cluster. EKSPod Identity memiliki pemisahan tugas yang bersih, di mana semua konfigurasi asosiasi EKS Pod Identity dilakukan di Amazon EKS dan semua konfigurasi IAM izin dilakukan diIAM.

  • Reusability — EKS Pod Identity menggunakan satu IAM prinsipal, bukan prinsipal terpisah untuk setiap klaster yang IAM berperan untuk akun layanan. IAMAdministrator Anda menambahkan prinsipal berikut ke kebijakan kepercayaan dari peran apa pun agar dapat digunakan oleh EKS Pod Identities.

    "Principal": { "Service": "pods.eks.amazonaws.com" }
  • Skalabilitas - Setiap set kredensial sementara diasumsikan oleh EKS Auth layanan di EKS Pod Identity, bukan setiap AWS SDK yang Anda jalankan di setiap pod. Kemudian, Amazon EKS Pod Identity Agent yang berjalan di setiap node mengeluarkan kredensialnya ke. SDKs Dengan demikian beban dikurangi menjadi satu kali untuk setiap node dan tidak diduplikasi di setiap pod. Untuk detail lebih lanjut tentang prosesnya, lihatMemahami cara EKS Pod Identity kerja.

Untuk informasi lebih lanjut untuk membandingkan dua alternatif, lihatBerikan akses beban kerja Kubernetes untuk menggunakan Akun Layanan AWSKubernetes.

Ikhtisar pengaturan Identitas EKS Pod

Aktifkan Identitas EKS Pod dengan menyelesaikan prosedur berikut:

  1. Siapkan Agen Identitas EKS Pod Amazon— Anda hanya menyelesaikan prosedur ini sekali untuk setiap cluster.

  2. Menetapkan IAM peran ke akun Kubernetes layanan— Selesaikan prosedur ini untuk setiap set izin unik yang Anda inginkan untuk dimiliki aplikasi.

  3. Konfigurasikan pods untuk mengakses AWS layanan dengan akun layanan— Selesaikan prosedur ini untuk masing-masing Pod yang membutuhkan akses Layanan AWS.

  4. Gunakan identitas pod dengan AWS SDK— Konfirmasikan bahwa beban kerja menggunakan AWS SDK versi yang didukung dan bahwa beban kerja menggunakan rantai kredenal default.

EKSPertimbangan Identitas Pod

  • Anda dapat mengaitkan satu IAM peran ke setiap akun Kubernetes layanan di setiap cluster. Anda dapat mengubah peran mana yang dipetakan ke akun layanan dengan mengedit asosiasi EKS Pod Identity.

  • Anda hanya dapat mengaitkan peran yang Akun AWS sama dengan cluster. Anda dapat mendelegasikan akses dari akun lain ke peran di akun ini yang Anda konfigurasikan untuk menggunakan Identitas EKS Pod. Untuk tutorial tentang mendelegasikan akses danAssumeRole, lihat Mendelegasikan akses di seluruh AWS akun menggunakan IAM peran dalam IAMPanduan Pengguna.

  • Agen Identitas EKS Pod diperlukan. Ini berjalan sebagai a Kubernetes DaemonSet pada node Anda dan hanya menyediakan kredensional untuk pod pada node yang dijalankan. Untuk informasi selengkapnya tentang kompatibilitas Agen Identitas EKS Pod, lihat bagian berikutEKSPembatasan Identitas Pod.

  • EKSPod Identity Agent menggunakan node dan menggunakan port 80 dan port 2703 pada alamat link-local pada node. hostNetwork Alamat ini 169.254.170.23 untuk IPv4 dan [fd00:ec2::23] untuk IPv6 cluster.

    Jika Anda menonaktifkan IPv6 alamat, atau mencegah alamat IPv6 IP localhost, agen tidak dapat memulai. Untuk memulai agen pada node yang tidak dapat digunakanIPv6, ikuti langkah-langkah Nonaktifkan IPv6 di Agen Identitas EKS Pod untuk menonaktifkan IPv6 konfigurasi.

EKSVersi klaster Identitas Pod

Untuk menggunakan EKS Pod Identities, cluster harus memiliki versi platform yang sama atau lebih lambat dari versi yang tercantum dalam tabel berikut, atau Kubernetes versi yang lebih lambat dari versi yang tercantum dalam tabel.

Versi Kubernetes Versi platform
1.30 eks.2
1.29 eks.1
1.28 eks.4
1.27 eks.8
1.26 eks.9
1.25 eks.10
1.24 eks.13

Versi add-on yang kompatibel dengan EKS Pod Identity

penting

Untuk menggunakan EKS Pod Identity dengan EKS Add-on, Anda harus membuat asosiasi EKS Pod Identity secara manual. Jangan memilih IAM peran dalam konfigurasi add-on di AWS Management Console, peran itu hanya digunakan denganIRSA.

Add-on Amazon dan EKS add-on yang dikelola sendiri yang memerlukan IAM kredensional dapat menggunakan EKS Pod Identity, IRSA atau peran instans. Daftar add-on yang menggunakan IAM kredensial yang mendukung EKS Pod Identity adalah:

  • Amazon VPC CNI plugin for Kubernetes1.15.5-eksbuild.1atau nanti

  • AWS Load Balancer Controller2.7.0atau nanti. Perhatikan bahwa AWS Load Balancer Controller tidak tersedia sebagai EKS Add-on, tetapi tersedia sebagai add-on yang dikelola sendiri.

EKSPembatasan Identitas Pod

EKSIdentitas Pod tersedia pada hal-hal berikut:

  • Versi EKS cluster Amazon tercantum dalam topik sebelumnyaEKSVersi klaster Identitas Pod.

  • Node pekerja di cluster yang merupakan EC2 instance Linux Amazon.

EKSIdentitas Pod tidak tersedia pada hal berikut:

  • AWS Outposts.

  • Amazon EKS Di Mana Saja.

  • Kubernetescluster yang Anda buat dan jalankan di AmazonEC2. Komponen EKS Pod Identity hanya tersedia di AmazonEKS.

Anda tidak dapat menggunakan EKS Pod Identities dengan:

  • Pod yang berjalan di mana saja kecuali EC2 instance Linux Amazon. Pod Linux dan Windows yang berjalan AWS Fargate (Fargate) tidak didukung. Pod yang berjalan di EC2 instans Windows Amazon tidak didukung.

  • EKSAdd-on Amazon yang membutuhkan IAM kredensional. EKSAdd-on hanya dapat menggunakan IAMperan untuk akun layanan sebagai gantinya. Daftar EKS add-on yang menggunakan IAM kredensional meliputi:

    • Driver CSI penyimpanan: EBSCSI, EFSCSI, Amazon FSx untuk driver Lustre, Amazon untuk CSI driver, Amazon FSx untuk NetApp ONTAP CSI driver Terbuka, ZFS CSI driver Amazon File Cache, AWS Rahasia dan Penyedia Konfigurasi (ASCP) untuk CSI Driver Toko Kubernetes Rahasia FSx CSI

    catatan

    Jika pengontrol, driver, dan plugin ini diinstal sebagai add-on yang dikelola sendiri, bukan add-on, mereka mendukung Identitas EKS Pod selama mereka diperbarui untuk menggunakan yang terbaru. EKS AWS SDKs