Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan AWS Secrets Manager rahasia di Amazon Elastic Kubernetes Service
Untuk menampilkan rahasia dari Secrets Manager sebagai file yang dipasang di EKS pod Amazon, Anda dapat menggunakan AWS Secrets and Configuration Provider (ASCP) untuk Kubernetes Secrets
Jika Anda menggunakan EKS kluster Amazon pribadi, pastikan klaster VPC tersebut berada di memiliki titik akhir Secrets Manager. CSIDriver Secrets Store menggunakan endpoint untuk melakukan panggilan ke Secrets Manager. Untuk informasi tentang membuat titik akhir di aVPC, lihatVPCtitik akhir.
Jika Anda menggunakan rotasi otomatis Secrets Manager untuk rahasia Anda, Anda juga dapat menggunakan fitur reconciler rotasi Secrets Store CSI Driver untuk memastikan Anda mengambil rahasia terbaru dari Secrets Manager. Untuk informasi selengkapnya, lihat Rotasi otomatis konten yang dipasang dan Rahasia Kubernetes yang disinkronkan
Topik
Langkah 1: Siapkan kontrol akses
Ini ASCP mengambil identitas EKS pod Amazon dan menukarnya dengan IAM peran. Anda menetapkan izin dalam IAM kebijakan untuk IAM peran tersebut. Ketika ASCP mengambil IAM peran, ia mendapat akses ke rahasia yang Anda otorisasi. Wadah lain tidak dapat mengakses rahasia kecuali Anda juga mengaitkannya dengan IAM peran tersebut.
Jika panggilan dari ASCP untuk mencari Region dan IAM peran yang terkait dengan pod dibatasi oleh Kubernetes, Anda dapat mengubah kuota throttling menggunakan, seperti yang ditunjukkan pada Langkah 2. helm install
Untuk memberikan EKS pod Amazon Anda akses ke rahasia di Secrets Manager
-
Buat kebijakan izin yang memberikan
secretsmanager:GetSecretValue
dansecretsmanager:DescribeSecret
mengizinkan rahasia yang perlu diakses oleh pod. Untuk contoh kebijakan, lihat Contoh: Izin untuk membaca dan menggambarkan rahasia individu. -
Buat penyedia IAM OpenID Connect (OIDC) untuk cluster jika Anda belum memilikinya. Untuk informasi selengkapnya, lihat Membuat IAM OIDC penyedia untuk klaster Anda di Panduan EKS Pengguna Amazon.
-
Buat IAMperan untuk akun layanan dan lampirkan kebijakan padanya. Untuk informasi selengkapnya, lihat Membuat IAM peran untuk akun layanan di Panduan EKS Pengguna Amazon.
-
Jika Anda menggunakan EKS kluster Amazon pribadi, pastikan klaster tersebut berada di memiliki AWS STS titik akhir. VPC Untuk informasi tentang membuat titik akhir, lihat VPCEndpoint antarmuka di AWS Identity and Access Management Panduan Pengguna.
Langkah 2: Instal dan konfigurasikan ASCP
ASCPIni tersedia GitHub di repositori secrets-store-csi-provider-aws
Selama instalasi, Anda dapat mengkonfigurasi ASCP untuk menggunakan FIPS titik akhir. Untuk daftar titik akhir, lihatAWS Secrets Manager titik akhir.
Untuk menginstal ASCP dengan menggunakan Helm
Untuk memastikan repo menunjuk ke grafik terbaru, gunakan
helm repo update.
-
Tambahkan bagan CSI Driver Secrets Store.
helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
-
Instal bagan. Untuk mengonfigurasi pelambatan, tambahkan tanda berikut:
--set-json 'k8sThrottlingParams={"qps": "
<number of queries per second>
", "burst": "<number of queries per second>
"}'helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
-
Tambahkan ASCP bagan.
helm repo add aws-secrets-manager https://aws.github.io/secrets-store-csi-driver-provider-aws
-
Instal bagan. Untuk menggunakan FIPS titik akhir, tambahkan tanda berikut:
--set useFipsEndpoint=true
helm install -n kube-system secrets-provider-aws aws-secrets-manager/secrets-store-csi-driver-provider-aws
Untuk menginstal dengan menggunakan YAML di repo
Gunakan perintah berikut.
helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/deployment/aws-provider-installer.yaml
Langkah 3: Identifikasi rahasia mana yang akan dipasang
Untuk menentukan rahasia mana yang ASCP dipasang di Amazon EKS sebagai file di sistem file, Anda membuat file. SecretProviderClass YAML SecretProviderClass
Daftar rahasia untuk dipasang dan nama file untuk dipasang sebagai. SecretProviderClass
Harus berada di namespace yang sama dengan EKS pod Amazon yang direferensikannya.
Contoh berikut menunjukkan cara menggunakan SecretProviderClass
untuk mendeskripsikan rahasia yang ingin Anda pasang dan apa nama file yang dipasang di EKS pod Amazon.
Contoh:
Contoh: Pasang rahasia dengan nama atau ARN
Contoh berikut menunjukkan SecretProviderClass
yang memasang tiga file di AmazonEKS:
Rahasia yang ditentukan secara penuhARN.
Rahasia yang ditentukan oleh nama.
Versi rahasia tertentu.
apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-secrets spec: provider: aws parameters: objects: | - objectName: "arn:aws:secretsmanager:us-east-2:
111122223333
:secret:MySecret2-d4e5f6" - objectName: "MySecret3" objectType: "secretsmanager" - objectName: "MySecret4" objectType: "secretsmanager" objectVersionLabel: "AWSCURRENT"
Contoh: Pasang pasangan kunci/nilai dari rahasia
Contoh berikut menunjukkan SecretProviderClass
yang memasang tiga file di AmazonEKS:
Rahasia yang ditentukan secara penuhARN.
Pasangan
username
kunci/nilai dari rahasia yang sama.Pasangan
password
kunci/nilai dari rahasia yang sama.
apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-secrets spec: provider: aws parameters: objects: | - objectName: "arn:aws:secretsmanager:us-east-2:
111122223333
:secret:MySecret-a1b2c3" jmesPath: - path: username objectAlias: dbusername - path: password objectAlias: dbpassword
Contoh: Tentukan Wilayah failover untuk rahasia Multi-wilayah
Untuk menyediakan ketersediaan selama pemadaman konektivitas atau untuk konfigurasi pemulihan bencana, ASCP mendukung fitur failover otomatis untuk mengambil rahasia dari wilayah sekunder.
Contoh berikut menunjukkan SecretProviderClass
yang mengambil rahasia yang direplikasi ke beberapa Wilayah. Dalam contoh ini, ASCP mencoba untuk mengambil rahasia dari keduanya us-east-1
danus-east-2
. Jika salah satu Wilayah mengembalikan kesalahan 4xx, misalnya untuk masalah otentikasi, ASCP tidak memasang rahasia mana pun. Jika rahasia berhasil diambilus-east-1
, maka nilai rahasia itu ASCP dipasang. Jika rahasia tidak berhasil diambil darius-east-1
, tetapi berhasil diambil darius-east-2
, maka ASCP mount nilai rahasia itu.
apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-secrets spec: provider: aws parameters: region: us-east-1 failoverRegion: us-east-2 objects: | - objectName: "MySecret"
Contoh: Pilih rahasia failover untuk dipasang
Contoh berikut menunjukkan SecretProviderClass
yang menentukan rahasia mana yang akan dipasang jika terjadi failover. Rahasia failover bukanlah replika. Dalam contoh ini, ASCP mencoba untuk mengambil dua rahasia yang ditentukan olehobjectName
. Jika salah satu mengembalikan kesalahan 4xx, misalnya untuk masalah otentikasi, ASCP tidak memasang salah satu rahasia. Jika rahasia berhasil diambilus-east-1
, maka nilai rahasia itu ASCP dipasang. Jika rahasia tidak berhasil diambil darius-east-1
, tetapi berhasil diambil darius-east-2
, maka ASCP mount nilai rahasia itu. File yang dipasang di Amazon EKS diberi namaMyMountedSecret
.
apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-secrets spec: provider: aws parameters: region: us-east-1 failoverRegion: us-east-2 objects: | - objectName: "arn:aws:secretsmanager:us-east-1:
111122223333
:secret:MySecret-a1b2c3" objectAlias: "MyMountedSecret" failoverObject: - objectName: "arn:aws:secretsmanager:us-east-2:111122223333
:secret:MyFailoverSecret-d4e5f6"
Langkah 4: Pasang rahasia sebagai file di EKS pod Amazon
Petunjuk berikut menunjukkan cara memasang rahasia sebagai file menggunakan YAML file contoh .yaml ExampleSecretProviderClassdan.yaml
Untuk memasang rahasia di Amazon EKS
-
Terapkan
SecretProviderClass
ke pod dengan perintahkubectl apply -f ExampleSecretProviderClass.yaml
. -
Terapkan pod Anda dengan perintah
kubectl apply -f ExampleDeployment.yaml
. Itu ASCP memasang file.
Pemecahan Masalah
Anda dapat melihat sebagian besar kesalahan dengan menjelaskan penerapan pod.
Untuk melihat pesan kesalahan untuk penampung Anda
-
Dapatkan daftar nama pod dengan perintah berikut. Jika Anda tidak menggunakan namespace default, gunakan.
-n <NAMESPACE>
kubectl get pods
-
Untuk mendeskripsikan pod, dalam perintah berikut, untuk
<PODID>
gunakan ID pod dari pod yang Anda temukan di langkah sebelumnya. Jika Anda tidak menggunakan namespace default, gunakan.-n <NAMESPACE>
kubectl describe pod/
<PODID>
Untuk melihat kesalahan untuk ASCP
-
Untuk menemukan informasi lebih lanjut di log penyedia, dalam perintah berikut, untuk
<PODID>
gunakan ID pod csi-secrets-store-provider-aws.kubectl -n kube-system get pods kubectl -n kube-system logs pod/
<PODID>