Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amankan beban kerja Kubernetes dengan Sertifikat ACM
Anda dapat menggunakan sertifikat publik AWS Certificate Manager yang dapat diekspor dengan AWS Controllers for Kubernetes (ACK) untuk menerbitkan dan mengekspor sertifikat TLS publik dari ACM ke beban kerja Kubernetes Anda. Integrasi ini memungkinkan Anda mengamankan pod Amazon Elastic Kubernetes Service (Amazon EKS) dan menghentikan TLS di Kubernetes Ingress Anda. Untuk memulai, lihat Pengontrol ACM untuk Kuber
Tip
Jika Anda menggunakan cert-manager
AWS Controllers for Kubernetes (ACK) memperluas Kubernetes API untuk mengelola AWS sumber daya menggunakan manifes Kubernetes asli. Pengontrol layanan ACK untuk ACM menyediakan manajemen siklus hidup sertifikat otomatis dalam alur kerja Kubernetes Anda. Saat Anda membuat sumber daya Sertifikat ACM di Kubernetes, pengontrol ACK melakukan tindakan berikut:
-
Meminta sertifikat dari ACM, yang menghasilkan permintaan penandatanganan sertifikat (CSR).
-
Menunggu validasi domain selesai dan ACM mengeluarkan sertifikat.
-
Jika
exportTobidang ditentukan, ekspor sertifikat dan kunci pribadi yang dikeluarkan dan menyimpannya di Rahasia Kubernetes yang Anda tentukan. -
Jika
exportTobidang ditentukan dan sertifikat memenuhi syarat untuk diperpanjang, perbarui Rahasia Kubernetes dengan sertifikat yang diperbarui sebelum kedaluwarsa.
Sertifikat yang dikeluarkan secara publik memerlukan validasi domain sebelum ACM dapat menerbitkannya. Anda dapat menggunakan pengontrol layanan ACK untuk Amazon Route 53
Opsi penggunaan sertifikat
Anda dapat menggunakan sertifikat ACM dengan Kubernetes dalam beberapa cara:
-
Penghentian penyeimbang beban (tanpa ekspor): Keluarkan sertifikat melalui ACK dan gunakan untuk menghentikan TLS di penyeimbang AWS beban. Sertifikat tetap berada di ACM dan secara otomatis ditemukan oleh AWS Load Balancer Controller.
Pendekatan ini tidak memerlukan ekspor sertifikat. -
Pengakhiran Ingress (dengan ekspor): Ekspor sertifikat dari ACM dan simpan di Rahasia Kubernetes untuk penghentian TLS di tingkat Ingress. Ini memungkinkan Anda untuk menggunakan sertifikat langsung dalam beban kerja Kubernetes Anda.
catatan
Untuk kasus penggunaan yang memerlukan sertifikat pribadi, lihat Konektor CA AWS Pribadi untuk Kubernetes, plugin manajer sertifikat.
Prasyarat
Sebelum Anda menginstal pengontrol layanan ACK untuk ACM, pastikan Anda memiliki yang berikut:
-
Sebuah cluster Kubernetes.
-
Helm terpasang.
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda. -
eksctldiinstal untuk mengonfigurasi asosiasi identitas pod di EKS.
Instal pengontrol layanan ACK untuk ACM
Gunakan Helm untuk menginstal pengontrol layanan ACK untuk ACM di cluster Amazon EKS Anda.
-
Buat namespace untuk pengontrol ACK.
$ kubectl create namespace ack-system --dry-run=client -o yaml | kubectl apply -f - -
Buat asosiasi identitas pod untuk pengontrol ACK. Ganti
CLUSTER_NAMEdengan nama cluster Anda danREGIONdengan Wil AWS ayah Anda.$ eksctl create podidentityassociation --clusterCLUSTER_NAME--regionREGION\ --namespace ack-system \ --create-service-account \ --service-account-name ack-acm-controller \ --permission-policy-arns arn:aws:iam::aws:policy/AWSCertificateManagerFullAccess -
Masuk ke registri Publik Amazon ECR.
$ aws ecr-public get-login-password --region us-east-1 | helm registry login --username AWS --password-stdin public.ecr.aws -
Instal pengontrol layanan ACK untuk ACM. Ganti
REGIONdengan AWS wilayah Anda.$ helm install -n ack-system ack-acm-controller oci://public.ecr.aws/aws-controllers-k8s/acm-chart --set serviceAccount.create=false --set serviceAccount.name=ack-acm-controller --set aws.region=REGION -
Pastikan pengontrol sedang berjalan.
$ kubectl get pods -n ack-system
Untuk informasi selengkapnya tentang asosiasi identitas pod, lihat Identitas Pod EKS di Panduan Pengguna Amazon EKS.
Contoh: Menghentikan TLS di Ingress
Contoh berikut menunjukkan cara mengekspor sertifikat ACM dan menggunakannya untuk mengakhiri TLS di tingkat Kubernetes Ingress. Konfigurasi ini membuat sertifikat ACM, mengekspornya ke Kubernetes Secret, dan mengonfigurasi sumber daya Ingress untuk menggunakan sertifikat untuk penghentian TLS.
Dalam contoh ini:
-
Rahasia dibuat untuk menyimpan sertifikat yang diekspor (
exported-cert-secret) -
Sumber daya Sertifikat ACK meminta sertifikat dari ACM untuk domain Anda dan mengekspornya ke
exported-cert-secretRahasia. -
Sumber daya Ingress merefer
exported-cert-secretensikan TLS untuk lalu lintas masuk.
Ganti ${HOSTNAME} dengan nama domain Anda.
apiVersion: v1 kind: Secret type: kubernetes.io/tls metadata: name: exported-cert-secret namespace: demo-app data: tls.crt: "" tls.key: "" --- apiVersion: acm.services.k8s.aws/v1alpha1 kind: Certificate metadata: name: exportable-public-cert namespace: demo-app spec: domainName: ${HOSTNAME} options: certificateTransparencyLoggingPreference: ENABLED exportTo: namespace: demo-app name: exported-cert-secret key: tls.crt --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-traefik namespace: demo-app spec: tls: - hosts: - ${HOSTNAME} secretName: exported-cert-secret ingressClassName: traefik rules: - host: ${HOSTNAME} http: paths: - path: / pathType: Prefix backend: service: name: whoami port: number: 80
Setelah digunakan, pengontrol layanan ACK untuk ACM secara otomatis mengelola siklus hidup sertifikat, termasuk pembaruan. Saat ACM memperbarui sertifikat, pengontrol memperbarui Rahasia dengan sertifikat baru, memastikan Ingress Anda terus menggunakan sertifikat yang valid tanpa intervensi manual. exported-cert-secret