IAMperan untuk akun layanan - 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.

IAMperan untuk akun layanan

Aplikasi dalam Pod kontainer dapat menggunakan AWS SDK atau AWS CLI untuk membuat API permintaan untuk AWS layanan menggunakan AWS Identity and Access Management (IAM) izin. Aplikasi harus menandatangani AWS API permintaan mereka dengan AWS kredensil. IAMperan untuk akun layanan menyediakan kemampuan untuk mengelola kredensil untuk aplikasi Anda, mirip dengan cara profil EC2 instans Amazon memberikan kredensil ke instans Amazon. EC2 Alih-alih membuat dan mendistribusikan AWS kredensil 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. Anda tidak dapat menggunakan IAM peran untuk akun layanan dengan kluster lokal untuk EKS Amazon AWS Outposts.

IAMperan untuk akun layanan memberikan manfaat 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 kredensil untuk IAM peran yang terkait dengan akun layanan yang digunakan penampung. Kontainer tidak pernah memiliki akses ke kredensil yang digunakan oleh kontainer lain di wadah lain. Pods Saat menggunakan IAM peran untuk akun layanan, Pod's container juga memiliki izin yang ditetapkan ke IAMperan EKS node Amazon, kecuali 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 memastikan audit retrospektif.

Aktifkan IAM peran untuk akun layanan dengan menyelesaikan prosedur berikut:

  1. Buat IAM OIDC penyedia untuk klaster Anda— Anda hanya menyelesaikan prosedur ini sekali untuk setiap cluster.

    catatan

    Jika Anda mengaktifkan EKS VPC titik akhir, titik akhir EKS OIDC layanan tidak dapat diakses dari dalamnya. VPC Akibatnya, operasi Anda seperti membuat OIDC penyedia dengan eksctl in tidak VPC akan berfungsi dan akan menghasilkan batas waktu saat mencoba meminta. https://oidc.eks.region.amazonaws.com Contoh pesan kesalahan berikut:

    ** server can't find oidc.eks.region.amazonaws.com: NXDOMAIN

    Untuk menyelesaikan langkah ini, Anda dapat menjalankan perintah di luarVPC, misalnya di dalam AWS CloudShell atau di komputer yang terhubung ke internet. Atau, Anda dapat membuat resolver bersyarat split-horizon diVPC, seperti Route 53 Resolver untuk menggunakan resolver yang berbeda untuk Penerbit dan tidak menggunakannya untuk itu. OIDC URL VPC DNS Untuk contoh penerusan bersyaratCoreDNS, lihat permintaan EKSfitur Amazon pada. GitHub

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

  3. PodsKonfigurasikan untuk menggunakan akun Kubernetes layanan— Selesaikan prosedur ini untuk masing-masing Pod yang membutuhkan akses AWS layanan.

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

IAM,Kubernetes, dan OpenID Connect (OIDC) informasi latar belakang

Pada tahun 2014, AWS Identity and Access Management menambahkan dukungan untuk identitas federasi menggunakan OpenID Connect ()OIDC. Fitur ini memungkinkan Anda untuk mengautentikasi AWS API panggilan dengan penyedia identitas yang didukung dan menerima token OIDC JSON web yang valid (JWT). Anda dapat meneruskan token ini ke AWS STS AssumeRoleWithWebIdentity API operasi dan menerima kredensi peran IAM sementara. Anda dapat menggunakan kredensil ini untuk berinteraksi dengan manapun AWS layanan, termasuk Amazon S3 dan DynamoDB.

Setiap JWT token ditandatangani oleh tanda tangan key pair. Kunci disajikan pada OIDC penyedia yang dikelola oleh Amazon EKS dan kunci pribadi berputar setiap 7 hari. Amazon EKS menyimpan kunci publik sampai kedaluwarsa. Jika Anda menghubungkan OIDC klien eksternal, ketahuilah bahwa Anda perlu menyegarkan kunci penandatanganan sebelum kunci publik kedaluwarsa. Pelajari cara Ambil kunci penandatanganan untuk memvalidasi token OIDC.

Kubernetestelah lama menggunakan akun layanan sebagai sistem identitas internalnya sendiri. Podsdapat mengautentikasi dengan Kubernetes API server menggunakan token yang dipasang secara otomatis (yang bukan- OIDCJWT) yang hanya dapat divalidasi oleh Kubernetes API server. Token akun layanan lama ini tidak kedaluwarsa, dan memutar kunci penandatanganan adalah proses yang sulit. Dalam Kubernetes versi1.12, dukungan ditambahkan untuk ProjectedServiceAccountToken fitur baru. Fitur ini adalah token OIDC JSON web yang juga berisi identitas akun layanan dan mendukung audiens yang dapat dikonfigurasi.

Amazon EKS menghosting titik akhir OIDC penemuan publik untuk setiap cluster yang berisi kunci penandatanganan untuk token ProjectedServiceAccountToken JSON web sehingga sistem eksternal, sepertiIAM, dapat memvalidasi dan menerima OIDC token yang dikeluarkan oleh. Kubernetes