Pada cluster Container Service for Kubernetes (ACK) Pro, Anda dapat menggunakan kunci yang dibuat di Key Management Service (KMS) untuk mengenkripsi Rahasia Kubernetes. Topik ini menjelaskan cara menggunakan kunci yang dikelola oleh KMS untuk mengenkripsi Rahasia pada cluster ACK Pro.
Daftar isi
Prasyarat
Item | Deskripsi |
Kunci KMS | Kunci KMS dibuat di Konsol KMS. Kunci tersebut termasuk dalam wilayah tempat cluster ACK Pro Anda berada. Cluster ACK Pro 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 kunci. Untuk informasi lebih lanjut tentang penagihan KMS, lihat Penagihan. Penting Setelah Anda mengaktifkan Enkripsi Rahasia, jangan gunakan API KMS atau Konsol KMS untuk menonaktifkan atau menghapus kunci yang digunakan untuk mengenkripsi dan mendekripsi Rahasia. Jika tidak, server API menjadi tidak tersedia dan tidak dapat mengambil Rahasia atau objek akun layanan. Akibatnya, terjadi gangguan layanan. |
Otorisasi | Persyaratan berikut harus dipenuhi:
|
Gambaran Umum Enkripsi Rahasia
Rahasia Kubernetes digunakan untuk menyimpan dan mengelola data sensitif seperti kata sandi aplikasi, sertifikat Transport Layer Security (TLS), dan kredensial untuk mengunduh gambar Docker. Kubernetes menyimpan Rahasia di etcd cluster. Untuk informasi lebih lanjut, lihat Rahasia.
Cluster ACK Serverless Pro memungkinkan Anda menggunakan kunci yang dibuat di KMS untuk mengenkripsi Rahasia. Mekanisme Penyedia KMS Kubernetes digunakan selama proses enkripsi. Penyedia KMS menggunakan Enkripsi Amplop untuk mengenkripsi dan mendekripsi Rahasia yang disimpan di etcd. Berikut adalah prosedur untuk enkripsi dan dekripsi Rahasia:
Saat Anda menggunakan Rahasia Kubernetes untuk menyimpan kata sandi, server API menghasilkan kunci enkripsi data (DEK) acak untuk mengenkripsi Rahasia. Kemudian, server API mengirim DEK ke KMS. KMS menggunakan kunci yang ditentukan untuk mengenkripsi DEK dan mengembalikan DEK terenkripsi ke server API. Server API kemudian menyimpan Rahasia terenkripsi dan DEK di etcd.
Saat Anda mendekripsi Rahasia Kubernetes, sistem memanggil operasi Decrypt dari KMS untuk mendekripsi DEK terlebih dahulu. Kemudian, sistem menggunakan DEK teks biasa untuk mendekripsi Rahasia Kubernetes dan mengembalikan Rahasia yang didekripsi.
Untuk informasi lebih lanjut, lihat Penyedia KMS dan Gunakan Enkripsi Amplop.
Aktifkan Enkripsi Rahasia untuk cluster ACK Pro
Aktifkan Enkripsi Rahasia saat Anda membuat cluster ACK Pro
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik Cluster Templates di pojok kanan atas. Di halaman Select Cluster Template, temukan Professional Managed Kubernetes Cluster dan klik Create.
Di tab Managed Kubernetes, klik Show Advanced Options di bagian bawah halaman. Temukan Secret Encryption, pilih Select Key, lalu pilih kunci dari daftar drop-down. Atur parameter lain sesuai kebutuhan bisnis Anda dan klik Create Cluster. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat Cluster ACK Pro.

Masuk ke Konsol ActionTrail. Di panel navigasi kiri, klik Event Detail Query. Di halaman Event Detail Query, periksa operasi enkripsi dan dekripsi yang dilakukan dengan mengasumsikan peran aliyuncsmanagedsecurityrole. Jika operasi ini ada, fitur Enkripsi Rahasia diaktifkan.
Jika fitur Enkripsi Rahasia tidak lagi diperlukan, klik nama cluster yang ingin Anda kelola dalam daftar cluster. Di halaman Cluster Information, klik tab Basic Information. Di bagian Basic Information, matikan Secret Encryption.
Aktifkan Enkripsi Rahasia untuk cluster ACK Pro yang sudah ada
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama cluster ACK Pro yang ingin Anda kelola. Di halaman detail cluster, klik tab Basic Information. Di bagian Basic Information, aktifkan Secret Encryption.
Jika ini adalah pertama kalinya Anda mengaktifkan Enkripsi Rahasia, ikuti petunjuk dan klik Go to RAM console untuk membuka halaman Otorisasi Akses Sumber Daya Cloud. Lalu, klik Confirm Authorization Policy.
CatatanJika Anda ingin mengaktifkan Enkripsi Rahasia, pastikan bahwa Pengguna RAM atau Peran RAM yang Anda gunakan memiliki salah satu peran RBAC berikut: peran administrator dan peran insinyur O&M. Untuk informasi lebih lanjut, lihat Gunakan RBAC untuk Mengelola Izin Operasi pada Sumber Daya dalam Cluster.
Jika Anda ingin menetapkan peran aliyuncsmanagedsecurityrole, pastikan Anda masuk ke konsol ACK dengan akun Alibaba Cloud atau Pengguna RAM atau Peran RAM yang memiliki izin manajemen RAM.
Di kotak dialog Secret Encryption, pilih kunci yang ada dan klik OK.
Jika tidak ada kunci yang tersedia, klik create keys untuk membuat kunci di Konsol KMS. Untuk informasi lebih lanjut, lihat Buat CMK.
Jika status cluster berubah dari Updating menjadi Running, fitur Enkripsi Rahasia diaktifkan untuk cluster tersebut.
Jika Anda tidak lagi memerlukan fitur Enkripsi Rahasia, Anda dapat mematikan Secret Encryption di bagian Basic Information.
Gunakan rotasi kunci otomatis untuk mengenkripsi Rahasia
Anda dapat menggunakan fitur rotasi kunci otomatis yang disediakan oleh KMS untuk mengenkripsi Rahasia. Selama rotasi kunci, sistem menggunakan kunci asli untuk mengenkripsi Rahasia yang ada dan menggunakan kunci baru untuk mengenkripsi Rahasia baru. Untuk informasi lebih lanjut tentang rotasi kunci otomatis, lihat Konfigurasikan Rotasi Kunci.
Untuk memaksa sistem menggunakan kunci baru untuk mengenkripsi Rahasia 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 Rahasia diaktifkan, apakah ciphertext dikembalikan jika saya menggunakan kubectl untuk menanyakan Rahasia?
Tidak. Setelah Enkripsi Rahasia diaktifkan, teks biasa dikembalikan jika Anda menggunakan kubectl untuk menanyakan Rahasia. Fitur Enkripsi Rahasia mengenkripsi Rahasia yang disimpan di etcd. Setelah Anda mengaktifkan Enkripsi Rahasia, Rahasia disimpan di etcd sebagai ciphertext. Namun, jika Anda menggunakan klien kubectl untuk menanyakan Rahasia dengan memanggil API Rahasia yang disediakan oleh server API cluster, teks biasa dikembalikan untuk Rahasia tersebut.
Bagaimana cara melarang Pengguna RAM atau Peran RAM untuk mengaktifkan atau menonaktifkan fitur Enkripsi Rahasia untuk cluster ACK Serverless Pro yang sudah ada?
Untuk melarang Pengguna RAM atau Peran RAM mengaktifkan atau menonaktifkan fitur Enkripsi Rahasia untuk Cluster ACK Serverless Pro yang sudah ada, lampirkan kebijakan berikut ke Pengguna RAM atau Peran RAM. Untuk informasi lebih lanjut, lihat Gunakan RAM untuk Memberi Otorisasi Akses ke Cluster dan Sumber Daya Cloud.
{
"Action": [
"cs:UpdateKMSEncryption"
],
"Effect": "Deny",
"Resource": [
"*"
]
}