Di kluster Container Compute Service (ACS), Anda dapat menggunakan kunci yang dibuat di Key Management Service (KMS) untuk mengenkripsi Kubernetes Secrets. Topik ini menjelaskan cara menggunakan kunci yang dikelola oleh KMS untuk mengenkripsi Secrets dalam kluster ACS.
Prasyarat
Kunci KMS harus dibuat di KMS console. Pastikan kunci tersebut berada di wilayah yang sama dengan kluster ACS Anda.
PentingUntuk menggunakan fitur enkripsi Secret, pastikan versi kluster ACS Anda adalah 1.28 atau lebih baru.
Persyaratan berikut harus dipenuhi:
Jika Anda menggunakan akun Alibaba Cloud, akun tersebut harus memiliki otorisasi untuk memerankan peran AliyunCCManagedSecurityRole. Jika tidak, konsol ACS akan meminta Anda untuk melakukan otorisasi ketika Anda mengaktifkan fitur enkripsi Secret. Anda juga dapat menyelesaikan otorisasi melalui halaman Otorisasi Akses Sumber Daya Cloud.
Jika Anda menggunakan Pengguna Resource Access Management (RAM) atau Peran RAM:
Pengguna RAM atau Peran RAM harus memiliki izin administrator atau insinyur O&M pada kluster ACS. Untuk informasi lebih lanjut, lihat Berikan izin RBAC kepada pengguna RAM atau peran RAM.
Pengguna RAM atau Peran RAM harus memiliki izin AliyunKMSCryptoAdminAccess. Untuk informasi lebih lanjut, lihat Lampirkan kebijakan RAM ke pengguna RAM atau peran RAM.
Ikhtisar Enkripsi Secret
Kubernetes Secrets digunakan untuk menyimpan dan mengelola data sensitif seperti kata sandi aplikasi, sertifikat Transport Layer Security (TLS), dan kredensial untuk mengunduh gambar Docker. Kubernetes menyimpan Secrets di etcd kluster. Untuk informasi lebih lanjut, lihat Secrets.
Kluster ACS menggunakan API open source KMS v2 untuk mengimplementasikan enkripsi Secret, sehingga memungkinkan Anda mengelola sejumlah besar Secrets di kluster dan mengenkripsi atau mendekripsi Secrets. Kluster ACS mendukung kunci default, kunci yang dilindungi perangkat lunak, dan kunci yang dilindungi perangkat keras. Untuk informasi lebih lanjut tentang fitur manajemen kunci KMS, lihat Memulai dengan Key Management. Untuk informasi lebih lanjut tentang penagihan KMS, lihat Tagihan.
Setelah mengaktifkan enkripsi Secret, jangan gunakan API KMS atau konsol KMS untuk menonaktifkan atau menghapus kunci yang digunakan untuk mengenkripsi dan mendekripsi Secrets. Jika tidak, server API menjadi tidak tersedia dan tidak dapat mengambil Secrets atau objek akun layanan, yang dapat menyebabkan gangguan layanan.
Untuk informasi lebih lanjut, lihat Penyedia KMS dan Gunakan enkripsi amplop.
Aktifkan Enkripsi Secret untuk kluster ACS
Aktifkan Enkripsi Secret saat Anda membuat kluster ACS
Masuk ke konsol ACS. Di panel navigasi kiri, klik Clusters.
Di pojok kiri atas halaman Clusters, klik Create Cluster.
Klik Show Advanced Options di bagian bawah halaman. Temukan Secret Encryption, pilih Select Key, lalu pilih kunci dari daftar drop-down. Konfigurasikan parameter lain sesuai kebutuhan dan klik Confirm Order. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat kluster ACS.

Masuk ke konsol ActionTrail. Di panel navigasi kiri, klik Event Detail Query. Pada halaman Event Detail Query, periksa operasi enkripsi dan dekripsi yang dilakukan dengan memerankan peran aliyuncsmanagedsecurityrole. Jika operasi ini ada, fitur enkripsi Secret diaktifkan.
Jika fitur enkripsi Secret tidak lagi diperlukan, klik nama kluster yang ingin Anda kelola dalam daftar kluster. Pada halaman Cluster Information, klik tab Basic Information. Dalam bagian Security and Audit, matikan Secret Encryption.
Aktifkan Enkripsi Secret untuk kluster ACS yang sudah ada
Masuk ke konsol ACS. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri halaman detail kluster, klik Cluster Information.
Pada halaman Cluster Information, klik tab Basic Information. Dalam bagian Security and Audit, aktifkan Secret Encryption.
Dalam kotak dialog Secret Encryption, pilih kunci yang ada dan klik OK.
Jika Anda belum membuat kunci di KMS, klik create keys untuk pergi ke konsol KMS untuk membuat satu. Untuk informasi lebih lanjut, lihat Buat CMK.
Jika status kluster berubah dari Updating menjadi Running, fitur enkripsi Secret diaktifkan untuk kluster.
Jika Anda tidak lagi memerlukan fitur enkripsi Secret, Anda dapat mematikan Secret Encryption dalam bagian Security and Audit.
Gunakan rotasi kunci otomatis untuk mengenkripsi Secrets
Anda dapat menggunakan fitur rotasi kunci otomatis yang disediakan oleh KMS untuk mengenkripsi Secrets. Selama rotasi kunci, sistem menggunakan kunci asli untuk mengenkripsi Secrets yang ada dan menggunakan kunci baru untuk mengenkripsi Secrets baru. Untuk informasi lebih lanjut tentang rotasi kunci otomatis, lihat Konfigurasi rotasi kunci.
Untuk memaksa sistem menggunakan kunci baru untuk mengenkripsi Secrets yang ada, jalankan perintah berikut setelah kunci dirotasi:
kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - encryption-key-rotation-time="$(date -u +'%Y-%m-%dT%H:%M:%S%z')"FAQ
Setelah enkripsi Secret diaktifkan, apakah ciphertext dikembalikan jika saya menggunakan kubectl untuk menanyakan Secret?
Tidak. Setelah enkripsi Secret diaktifkan, plaintext dikembalikan jika Anda menggunakan kubectl untuk menanyakan Secret. Fitur enkripsi Secret mengenkripsi Secrets yang disimpan di etcd. Setelah Anda mengaktifkan enkripsi Secret, Secrets disimpan di etcd sebagai ciphertext. Namun, jika Anda menggunakan klien kubectl untuk menanyakan Secret dengan memanggil Secret API yang disediakan oleh server API kluster, plaintext dikembalikan untuk Secret tersebut.
Bagaimana cara melarang pengguna RAM atau peran RAM untuk mengaktifkan atau menonaktifkan fitur enkripsi Secret untuk kluster ACS yang sudah ada?
Untuk melarang pengguna RAM atau peran RAM mengaktifkan atau menonaktifkan fitur enkripsi Secret untuk kluster ACS yang sudah ada, lampirkan kebijakan berikut ke pengguna RAM atau peran RAM. Untuk informasi lebih lanjut, lihat Lampirkan kebijakan RAM ke pengguna RAM atau peran RAM.
{
"Action": [
"cs:UpdateKMSEncryption"
],
"Effect": "Deny",
"Resource": [
"*"
]
}