View a markdown version of this page

Gunakan AWS CSI Penyedia Rahasia dan Konfigurasi dengan Identitas Pod untuk Amazon EKS - AWS Systems Manager

• AWS Systems Manager CloudWatch Dasbor tidak akan lagi tersedia setelah 30 April 2026. Pelanggan dapat terus menggunakan CloudWatch konsol Amazon untuk melihat, membuat, dan mengelola dasbor Amazon CloudWatch mereka, seperti yang mereka lakukan hari ini. Untuk informasi selengkapnya, lihat dokumentasi CloudWatch Dasbor Amazon.

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

Gunakan AWS CSI Penyedia Rahasia dan Konfigurasi dengan Identitas Pod untuk Amazon EKS

Integrasi AWS Penyedia Rahasia dan Konfigurasi dengan Pod Identity Agent untuk Amazon Elastic Kubernetes Service memberikan keamanan yang ditingkatkan, konfigurasi yang disederhanakan, dan peningkatan kinerja untuk aplikasi yang berjalan di Amazon EKS. Pod Identity menyederhanakan AWS Identity and Access Management (IAM) otentikasi untuk Amazon EKS saat mengambil parameter dari AWS Systems Manager Parameter Store atau rahasia dari Secrets Manager.

Amazon EKS Pod Identity merampingkan proses konfigurasi izin IAM untuk aplikasi Kubernetes dengan mengizinkan izin diatur langsung melalui antarmuka Amazon EKS, mengurangi jumlah langkah dan menghilangkan kebutuhan untuk beralih antara layanan Amazon EKS dan IAM. Pod Identity memungkinkan penggunaan peran IAM tunggal di beberapa cluster tanpa memperbarui kebijakan kepercayaan dan mendukung tag sesi peran untuk kontrol akses yang lebih terperinci. Pendekatan ini tidak hanya menyederhanakan manajemen kebijakan dengan mengizinkan penggunaan kembali kebijakan izin di seluruh peran tetapi juga meningkatkan keamanan dengan mengaktifkan akses ke AWS sumber daya berdasarkan tag yang cocok.

Cara kerjanya

  1. Pod Identity menetapkan peran IAM ke Pod.

  2. ASCP menggunakan peran ini untuk mengotentikasi dengan. Layanan AWS

  3. Jika diotorisasi, ASCP mengambil parameter yang diminta dan membuatnya tersedia untuk Pod.

Untuk informasi selengkapnya, lihat Mem ahami cara kerja Amazon EKS Pod Identity di Panduan Pengguna Amazon EKS.

Prasyarat

penting

Pod Identity hanya didukung untuk Amazon EKS di cloud. Ini tidak didukung untuk Amazon EKS Anywhere, Layanan OpenShift Red Hat di AWS, atau cluster Kubernetes yang dikelola sendiri di instans Amazon EC2.

  • Amazon EKS cluster (versi 1.24 atau lebih baru)

  • Akses ke AWS CLI dan cluster Amazon EKS melalui kubectl

  • (Opsional) Akses ke dua Akun AWS untuk akses lintas akun

Instal Agen Identity Pod Amazon EKS

Untuk menggunakan Pod Identity dengan cluster Anda, Anda harus menginstal add-on Amazon EKS Pod Identity Agent.

Untuk menginstal Pod Identity Agent
  • Instal add-on Pod Identity Agent di cluster Anda.

    Ganti default placeholder text dengan nilai-nilai Anda sendiri:

    eksctl create addon \ --name eks-pod-identity-agent \ --cluster clusterName \ --region region

Siapkan ASCP dengan Pod Identity

  1. Buat kebijakan izin yang memberikan ssm:GetParameters dan ssm:DescribeParameters mengizinkan parameter yang perlu diakses oleh Pod.

  2. Buat peran IAM yang dapat diasumsikan oleh prinsipal layanan Amazon EKS untuk Identitas Pod:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

    Lampirkan kebijakan IAM ke peran tersebut.

    Ganti default placeholder text dengan nilai-nilai Anda sendiri:

    aws iam attach-role-policy \ --role-name MY_ROLE \ --policy-arn POLICY_ARN
  3. Buat asosiasi Identitas Pod. Sebagai contoh, lihat Membuat asosiasi Identitas Pod di Panduan Pengguna Amazon EKS

  4. Buat SecretProviderClass yang menentukan parameter atau rahasia mana yang akan dipasang di Pod:

    kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass-PodIdentity.yaml

    Perbedaan utama SecretProviderClass antara IRSA dan Pod Identity adalah parameter usePodIdentity opsional. Ini adalah bidang opsional yang menentukan pendekatan otentikasi. Jika tidak ditentukan, default menggunakan Peran IAM untuk Akun Layanan (IRSA).

    • Untuk menggunakan EKS Pod Identity, gunakan salah satu dari nilai-nilai berikut:"true", "True", "TRUE", "t", "T".

    • Untuk menggunakan IRSA secara eksplisit, atur ke salah satu dari nilai-nilai ini:"false", "False", "FALSE", "f", or "F".

  5. Terapkan Pod yang memasang parameter atau rahasia di bawah/mnt/secrets-store:

    kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment-PodIdentity.yaml
  6. Jika Anda menggunakan cluster Amazon EKS pribadi, pastikan VPC tempat cluster berada memiliki AWS STS titik akhir. Untuk informasi tentang membuat titik akhir, lihat Titik akhir Antarmuka VPC di Panduan AWS Identity and Access Management Pengguna.

Verifikasi dudukan rahasia

Untuk memverifikasi bahwa parameter atau rahasia dipasang dengan benar, jalankan perintah berikut.

Ganti default placeholder text dengan nilai-nilai Anda sendiri:

kubectl exec -it $(kubectl get pods | awk '/pod-identity-deployment/{print $1}' | head -1) -- cat /mnt/secrets-store/MyParameter
Cara mengatur Amazon EKS Pod Identity untuk mengakses parameter di Penyimpanan Parameter
  1. Buat kebijakan izin yang memberikan ssm:GetParameters dan ssm:DescribeParameters mengizinkan parameter yang perlu diakses oleh Pod.

  2. Buat parameter Parameter Store jika Anda belum memilikinya. Untuk informasi, lihat Membuat Penyimpanan Parameter parameter dalam Manajer Sistem.

Pemecahan Masalah

Anda dapat melihat sebagian besar kesalahan dengan menjelaskan penyebaran Pod.

Untuk melihat pesan kesalahan untuk wadah Anda
  1. Dapatkan daftar nama Pod dengan perintah berikut. Jika Anda tidak menggunakan namespace default, gunakan-n namespace.

    kubectl get pods
  2. Untuk menjelaskan Pod, dalam perintah berikut, untuk pod-id menggunakan ID Pod dari Pod yang Anda temukan di langkah sebelumnya. Jika Anda tidak menggunakan namespace default, gunakan-n NAMESPACE.

    kubectl describe pod/pod-id
Untuk melihat kesalahan untuk ASCP
  • Untuk menemukan informasi lebih lanjut di log penyedia, dalam perintah berikut, untuk PODID menggunakan ID Pod csi-secret s-store-provider-aws.

    kubectl -n kube-system get pods kubectl -n kube-system logs pod/pod-id