Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
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 kontainer Pod dapat menggunakan AWS SDK atau AWS CLI untuk membuat permintaan API AWS ke layanan AWS menggunakan izin Identity and Access Management (IAM). Aplikasi harus menandatangani permintaan AWS API mereka dengan AWS kredensialnya.
EKS Pod 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 kredensialmu ke container atau menggunakan peran EC2 instans Amazon, kamu mengaitkan peran IAM dengan akun layanan Kubernetes dan mengonfigurasi Pod kamu untuk menggunakan akun layanan.
Setiap asosiasi EKS Pod Identity memetakan peran ke akun layanan di namespace di cluster 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 EKS menetapkan variabel lingkungan dalam kontainer pod. Variabel lingkungan mengonfigurasi AWS SDKs, termasuk AWS CLI, untuk menggunakan kredenal Identitas Pod EKS.
Manfaat Identitas EKS Pod
EKS Pod Identities memberikan manfaat sebagai berikut:
-
Keistimewaan paling kecil — Anda dapat memberikan cakupan izin IAM ke akun layanan, dan hanya Pod yang menggunakan akun layanan tersebut yang memiliki akses ke izin tersebut. Fitur ini juga mengurangi kebutuhan akan solusi dari pihak ketiga seperti
kiam
ataukube2iam
. -
Isolasi kredenal — Ketika akses ke Amazon EC2 Instance Metadata Service (IMDS) dibatasi, container Pod hanya dapat mengambil kredensial untuk peran IAM yang terkait dengan akun layanan yang digunakan container. Container tidak pernah memiliki akses ke kredensi yang digunakan oleh kontainer lain di Pod lain. Jika IMDS tidak dibatasi, kontainer Pod juga memiliki akses ke peran IAM node Amazon EKS dan kontainer mungkin dapat memperoleh akses ke kredensial-kredensi peran IAM dari Pod lain pada node yang sama. Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja.
catatan
Pod yang dikonfigurasi hostNetwork: true
akan selalu memiliki akses IMDS, tetapi CLI AWS SDKs dan akan menggunakan kredenal Identitas Pod saat diaktifkan.
-
Auditabilitas — Akses dan pencatatan peristiwa tersedia AWS CloudTrail untuk membantu memfasilitasi audit retrospektif.
penting
Container bukanlah batas keamanan, dan penggunaan Pod Identity tidak mengubah ini. Pod yang ditetapkan ke node yang sama akan berbagi kernel dan kemungkinan sumber daya lainnya tergantung pada konfigurasi Pod Anda. Sementara Pod yang berjalan pada node terpisah akan diisolasi pada lapisan komputasi, ada aplikasi node yang memiliki izin tambahan di API Kubernetes di luar cakupan instance individual. Beberapa contohnya adalah kubelet
kube-proxy
, driver penyimpanan CSI, atau aplikasi Kubernetes Anda sendiri.
EKS Pod Identity adalah metode yang lebih sederhana daripadaIAM role untuk akun layanan, karena metode ini tidak menggunakan penyedia identitas OIDC. EKS Pod Identity memiliki penyempurnaan sebagai berikut:
-
Operasi independen — Di banyak organisasi, membuat penyedia identitas OIDC adalah tanggung jawab tim yang berbeda daripada mengelola klaster Kubernetes. EKS Pod Identity memiliki pemisahan tugas yang bersih, di mana semua konfigurasi asosiasi Identitas Pod EKS dilakukan di Amazon EKS dan semua konfigurasi izin IAM dilakukan di IAM.
-
Reusability — EKS Pod Identity menggunakan satu prinsipal IAM, bukan prinsipal terpisah untuk setiap klaster yang digunakan peran IAM untuk akun layanan. Administrator IAM 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 layanan EKS Auth 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, lihatPahami cara kerja EKS Pod Identity.
Untuk informasi lebih lanjut untuk membandingkan dua alternatif, lihatBerikan akses beban kerja Kubernetes untuk AWS menggunakan Akun Layanan Kubernetes.
Ikhtisar pengaturan EKS Pod Identities
Aktifkan Identitas Pod EKS dengan menyelesaikan prosedur berikut:
-
Siapkan Agen Identitas Amazon EKS Pod— Anda hanya menyelesaikan prosedur ini sekali untuk setiap cluster. Anda tidak perlu menyelesaikan langkah ini jika Mode Otomatis EKS diaktifkan di cluster Anda.
-
Menetapkan peran IAM ke akun layanan Kubernetes— Selesaikan prosedur ini untuk setiap set izin unik yang Anda inginkan untuk dimiliki aplikasi.
-
Konfigurasikan Pod untuk mengakses AWS layanan dengan akun layanan— Selesaikan prosedur ini untuk setiap Pod yang membutuhkan akses ke AWS layanan.
-
Menggunakan identitas pod dengan AWS SDK— Konfirmasikan bahwa beban kerja menggunakan AWS SDK versi yang didukung dan bahwa beban kerja menggunakan rantai kredenal default.
Batas
-
Hingga 5.000 asosiasi Identitas Pod EKS per cluster untuk memetakan peran IAM ke akun layanan Kubernetes didukung.
Pertimbangan
-
Asosiasi Peran IAM: Setiap akun layanan Kubernetes dalam klaster dapat dikaitkan dengan satu peran IAM dari akun yang sama AWS dengan klaster. Untuk mengubah peran, edit asosiasi EKS Pod Identity. Untuk akses lintas akun, delegasikan akses ke peran menggunakan peran IAM. Untuk mempelajari lebih lanjut, lihat Mendelegasikan akses di seluruh AWS akun menggunakan peran IAM di Panduan Pengguna IAM.
-
Agen Identitas Pod EKS: Agen Identitas Pod wajib menggunakan EKS Pod Identity. Agen berjalan sebagai Kubernetes
DaemonSet
pada node cluster, memberikan kredensi hanya untuk pod pada node yang sama. Ini menggunakan nodehostNetwork
, menempati port80
dan2703
pada alamat link-lokal (169.254.170.23
untuk IPv4,[fd00:ec2::23]
untuk). IPv6 Jika IPv6 dinonaktifkan di klaster Anda, nonaktifkan IPv6 untuk Agen Identitas Pod. Untuk mempelajari lebih lanjut, lihat Menonaktifkan IPv6 di Agen Identitas Pod EKS. -
Konsistensi Akhir: Asosiasi Identitas Pod EKS pada akhirnya konsisten, dengan potensi penundaan beberapa detik setelah panggilan API. Hindari membuat atau memperbarui asosiasi di jalur kode ketersediaan tinggi yang kritis. Sebagai gantinya, lakukan tindakan ini dalam rutinitas inisialisasi atau pengaturan yang terpisah dan lebih jarang. Untuk mempelajari selengkapnya, lihat Grup Keamanan Per Pod di Panduan Praktik Terbaik EKS.
-
Pertimbangan Grup Proxy dan Keamanan: Untuk pod yang menggunakan proxy, tambahkan
169.254.170.23
(IPv4) dan[fd00:ec2::23]
(IPv6) ke variabelno_proxy/NO_PROXY
lingkungan untuk mencegah permintaan gagal ke Agen Identitas Pod EKS. Jika menggunakan Grup Keamanan untuk Pod dengan AWS VPC CNI, aturENABLE_POD_ENI
flag ke 'true' dan flag ke 'standard'.POD_SECURITY_GROUP_ENFORCING_MODE
Untuk mempelajari lebih lanjut, lihat Menetapkan grup keamanan ke Pod individual.
EKS Pod Identity versi cluster
Untuk menggunakan EKS Pod Identity, cluster harus memiliki versi platform yang sama atau lebih lambat dari versi yang tercantum dalam tabel berikut, atau versi Kubernetes yang lebih lambat dari versi yang tercantum dalam tabel. Untuk menemukan versi yang disarankan dari Amazon EKS Pod Identity Agent untuk versi Kubernetes, lihat. Verifikasi kompatibilitas versi add-on Amazon EKS dengan klaster
Versi Kubernetes | Versi platform |
---|---|
Versi Kubernetes tidak terdaftar |
Semua versi platform mendukung |
|
|
|
|
|
|
Pembatasan Identitas Pod EKS
Identitas Pod EKS tersedia pada hal-hal berikut:
-
Amazon EKS versi cluster tercantum dalam topik sebelumnyaEKS Pod Identity versi cluster.
-
Node pekerja di cluster yang merupakan EC2 instance Linux Amazon.
EKS Pod Identities tidak tersedia di berikut ini:
-
AWS Outposts.
-
Amazon EKS Anywhere.
-
Cluster Kubernetes yang Anda buat dan jalankan di Amazon. EC2 Komponen EKS Pod Identity hanya tersedia di Amazon EKS.
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 di AWS Fargate (Fargate) tidak didukung. Pod yang berjalan di EC2 instans Windows Amazon tidak didukung.