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 yang dapat AWS Certificate Manager 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 ACM Controller for Kubernetes
AWS Controller for Kubernetes (ACK) memperluas API Kubernetes untuk mengelola sumber daya menggunakan manifes Kubernetes asli. AWS 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 yang diterbitkan dan kunci pribadi 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 diterbitkan 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): Menerbitkan sertifikat melalui ACK dan menggunakannya untuk mengakhiri TLS pada penyeimbang beban. AWS Sertifikat tetap dalam ACM dan secara otomatis ditemukan oleh AWS Load Balancer
Controller. Pendekatan ini tidak memerlukan ekspor sertifikat. -
Penghentian masuk (dengan ekspor): Ekspor sertifikat dari ACM dan simpan di Rahasia Kubernetes untuk penghentian TLS di tingkat Ingress. Ini memungkinkan Anda untuk menggunakan sertifikat secara langsung dalam beban kerja Kubernetes Anda.
catatan
Untuk kasus penggunaan yang memerlukan sertifikat pribadi, lihat Konektor CA AWS Pribadi untuk Kubernetes, sebuah plugin cert-manager.
Prasyarat
Sebelum Anda menginstal pengontrol layanan ACK untuk ACM, pastikan Anda memiliki yang berikut:
-
Sebuah cluster Kubernetes.
-
Helm dipasang.
-
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 kluster 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 AWS Region 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 -
Verifikasi pengontrol sedang berjalan.
$ kubectl get pods -n ack-system
Untuk informasi selengkapnya tentang asosiasi identitas pod, lihat EKS Pod Identity di Panduan Pengguna Amazon EKS.
Contoh: Hentikan TLS di Ingress
Contoh berikut menunjukkan cara mengekspor sertifikat ACM dan menggunakannya untuk mengakhiri TLS di tingkat Ingress Kubernetes. Konfigurasi ini membuat sertifikat ACM, mengekspornya ke Rahasia Kubernetes, 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 ACK Certificate meminta sertifikat dari ACM untuk domain Anda dan mengekspornya ke Rahasia.
exported-cert-secret -
Sumber daya Ingress mereferensikan
exported-cert-secretuntuk menghentikan 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 perpanjangan. Saat ACM memperbarui sertifikat, pengontrol memperbarui exported-cert-secret Rahasia dengan sertifikat baru, memastikan Ingress Anda terus menggunakan sertifikat yang valid tanpa intervensi manual.