Tutorial ini menunjukkan cara mengenkripsi Secret Kubernetes pada lapisan aplikasi menggunakan kunci yang Anda kelola di Cloud Key Management Service (Cloud KMS). Proses mengenkripsi Secret memberikan lapisan keamanan tambahan untuk workload sensitif.
Halaman ini ditujukan untuk spesialis Keamanan yang ingin mengenkripsi Secret. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.
Sebelum membaca halaman ini, pastikan Anda memahami konsep berikut:
Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:
Ringkasan
Secara default, Google Kubernetes Engine (GKE) mengenkripsi konten pelanggan yang disimpan dalam penyimpanan, termasuk Secret. GKE menangani dan mengelola enkripsi default ini untuk Anda tanpa perlu tindakan tambahan.
Enkripsi secret lapisan aplikasi memberikan lapisan keamanan tambahan untuk data sensitif, seperti Secret, yang disimpan di etcd. Anda menggunakan kunci yang dikelola dengan Cloud KMS untuk mengenkripsi data dalam istirahat di lapisan aplikasi. Enkripsi ini melindungi dari penyerang yang mendapatkan akses ke salinan etcd offline.
Untuk menggunakan enkripsi secret lapisan aplikasi, Anda harus membuat kunci Cloud KMS terlebih dahulu dan memberi akun layanan GKE akses ke kunci tersebut. Anda dapat menggunakan kunci yang memiliki tingkat perlindungan yang didukung oleh Cloud KMS.
Pastikan kunci berada di lokasi yang sama dengan cluster untuk mengurangi latensi dan mencegah kasus saat resource bergantung pada layanan yang tersebar di beberapa domain kegagalan. Setelah membuat kunci, Anda dapat mengaktifkan fitur ini di cluster baru atau yang sudah ada dengan menentukan kunci yang ingin digunakan. Saat Anda mengaktifkan fitur ini, GKE akan mengenkripsi semua Secret baru dan yang sudah ada menggunakan kunci enkripsi.
Enkripsi alamat pengiriman
Kubernetes menawarkan enkripsi menyeluruh Secret dengan penyedia KMS. Artinya, kunci lokal, biasanya disebut kunci enkripsi data (DEK), digunakan untuk mengenkripsi Secret. DEK itu sendiri dienkripsi dengan kunci lain yang disebut kunci enkripsi kunci (KEK). Kubernetes tidak menyimpan KEK.
Enkripsi alamat pengiriman memiliki manfaat berikut:
- Performa yang lebih baik dibandingkan dengan enkripsi kunci publik: GKE hanya menggunakan Cloud KMS API untuk mengenkripsi DEK baru dengan KEK atau mendekripsi DEK saat cache lokal kosong.
- Pengelolaan kunci yang lebih baik dalam skala besar: satu KEK dapat mengenkripsi beberapa DEK. Jumlah kunci yang perlu Anda simpan di layanan Cloud KMS jauh lebih sedikit daripada jumlah kunci yang mengenkripsi data Anda.
- Kemampuan untuk menggunakan root kepercayaan pusat: Secret yang disimpan di Kubernetes dapat mengandalkan root kepercayaan eksternal. Ini berarti Anda dapat menggunakan root kepercayaan terpusat, misalnya modul keamanan hardware, untuk semua Secret Anda. Musuh yang mengakses penampung Anda secara offline tidak dapat memperoleh Secret Anda.
Dengan enkripsi secret lapisan aplikasi di GKE, GKE mengenkripsi Secret Anda menggunakan DEK lokal dan penyedia AES-CBC. GKE mengenkripsi DEK dengan KEK yang Anda kelola di Cloud KMS.
Untuk mempelajari enkripsi amplop lebih lanjut, lihat Enkripsi alamat pengiriman.
Yang terjadi saat Anda membuat Secret
Saat Anda membuat Secret baru, berikut yang akan terjadi:
Server Kubernetes API menghasilkan DEK unik untuk Secret menggunakan generator angka acak.
Server Kubernetes API menggunakan DEK secara lokal untuk mengenkripsi Secret.
Plugin KMS mengirim DEK ke Cloud KMS untuk dienkripsi. Plugin KMS menggunakan akun layanan GKE project Anda untuk melakukan autentikasi ke Cloud KMS.
Cloud KMS mengenkripsi DEK menggunakan KEK, dan mengirimkannya kembali ke plugin KMS.
Server Kubernetes API menyimpan Secret terenkripsi dan DEK yang dienkripsi. DEK teks biasa tidak disimpan ke disk dan hanya disimpan di memori server API.
Server Kubernetes API membuat entri cache yang memetakan DEK terenkripsi ke DEK teks biasa dalam memori. Hal ini memungkinkan server API mendekripsi Secret tanpa menggunakan Cloud KMS.
Saat klien meminta Secret dari server Kubernetes API, inilah yang akan terjadi:
Server Kubernetes API mengambil Secret dan DEK yang dienkripsi.
Server Kubernetes API memeriksa cache untuk entri pemetaan yang ada dan mendekripsi Secret tanpa menggunakan Cloud KMS.
Jika entri cache tidak ditemukan, plugin KMS akan mengirimkan DEK ke Cloud KMS untuk dekripsi menggunakan KEK. DEK yang didekripsi kemudian digunakan untuk mendekripsi Secret.
Server Kubernetes API menampilkan Secret yang didekripsi kepada klien.
Yang terjadi jika Anda menghancurkan kunci
Saat Anda menghancurkan KEK di Cloud KMS yang digunakan untuk mengenkripsi Secret di GKE, Secret tidak lagi tersedia kecuali jika Anda mengupdate cluster agar menggunakan KEK baru terlebih dahulu.
Jika Anda berencana untuk menghancurkan versi KEK lama setelah rotasi kunci, gunakan versi KEK baru untuk mengenkripsi ulang Secret terlebih dahulu. Anda dapat memilih untuk mempertahankan versi KEK sebelumnya untuk menghindari mengenkripsi ulang Secret, tetapi Anda akan terus ditagih untuk semua KEK yang aktif di Cloud KMS. Untuk mengetahui detail harga, lihat harga Cloud KMS.
Kecuali Anda menggunakan Proyeksi Volume Token Akun Layanan, akun layanan yang digunakan oleh beban kerja Anda di GKE juga menggunakan Secret, dan jika kunci dihancurkan, akun tersebut menjadi tidak tersedia. Ketidakmampuan untuk mengaksesnya berarti bahwa beban kerja akan gagal.
Pengecualian berikut berlaku:
Pod yang memiliki akses yang ada ke Secret saat volume yang terpasang atau variabel lingkungan akan mempertahankan akses.
Server Kubernetes API masih dapat menggunakan entri pemetaan DEK yang di-cache untuk mendekripsiSecret setelah Anda menghancurkan KEK. Hal ini memungkinkan Pod yang dimulai ulang atau dijadwalkan ulang mengakses Secret, kecuali jika salah satu situasi berikut terjadi:
- Bidang kontrol cluster dimulai ulang.
- Pod server Kubernetes API dimulai ulang.
- Entri pemetaan DEK untuk Secret tidak ada dalam cache server Kubernetes API.
Sebelum menghancurkan KEK, periksa apakah KEK sedang digunakan oleh cluster Anda. Anda juga dapat membuat kebijakan pemberitahuan untuk penghancuran kunci di Cloud KMS. Hanya hancurkan versi KEK sebelumnya jika Anda yakin bahwa tidak ada data di cluster Anda yang dienkripsi menggunakan versi sebelumnya. Sebelum Anda menghancurkan KEK, periksa apakah kunci sedang digunakan. Untuk mengetahui detailnya, lihat Menghancurkan dan memulihkan versi kunci.
Sebelum memulai
Untuk melakukan latihan terkait topik ini, Anda memerlukan dua project Google Cloud:
Project utama: Di sinilah Anda membuat KEK.
Project cluster: Ini adalah tempat Anda membuat cluster yang mengaktifkan enkripsi secret lapisan aplikasi.
Anda dapat menggunakan project yang sama untuk project utama dan project cluster Anda. Namun, praktik yang direkomendasikan adalah menggunakan project terpisah.
Dalam project kunci Anda, pastikan Anda telah mengaktifkan Cloud KMS API.
Dalam project kunci Anda, pengguna yang membuat key ring dan kunci memerlukan izin IAM berikut:
cloudkms.keyRings.getIamPolicy
cloudkms.keyRings.setIamPolicy
Izin ini (dan banyak lagi) diberikan ke
roles/cloudkms.admin
peran Identity and Access Management yang telah ditentukan. Anda dapat mempelajari lebih lanjut cara memberikan izin untuk mengelola kunci di dokumentasi Cloud KMS.Dalam project cluster, pastikan Anda telah mengaktifkan Google Kubernetes Engine API.
Pastikan Anda telah menginstal Google Cloud CLI.
Update
gcloud
ke versi terbaru:gcloud components update
Membuat kunci Cloud KMS
Untuk membuat kunci Cloud KMS, Anda harus membuat key ring terlebih dahulu. Kunci dan key ring adalah resource regional. Saat membuat key ring, tentukan lokasi yang cocok dengan lokasi cluster GKE Anda:
Cluster zona harus menggunakan key ring dari region superset. Misalnya, cluster di zona
us-central1-a
hanya dapat menggunakan kunci di regionus-central1
.Cluster regional harus menggunakan key ring dari lokasi yang sama. Misalnya, cluster di region
asia-northeast1
harus dilindungi dengan key ring dari regionasia-northeast1
.
Region global
Cloud KMS tidak didukung untuk digunakan dengan GKE.
Anda dapat menggunakan gcloud CLI atau Google Cloud Console.
Konsol
Dalam project kunci Anda, buat key ring:
Buka halaman Key Management di konsol Google Cloud.
Klik Create key ring.
Di kolom Key ring name, masukkan nama untuk key ring.
Dari daftar Location, pilih lokasi cluster Kubernetes Anda.
Klik Create.
Selanjutnya, buat kunci:
Buka halaman Key Management di konsol Google Cloud.
Klik nama key ring yang akan Anda buat kunci.
Klik Create key.
Di kolom Key name, masukkan nama untuk kunci Anda.
Setujui nilai default untuk Rotation period dan Starting on, atau tetapkan periode rotasi kunci dan waktu mulai jika ingin untuk menggunakan nilai yang berbeda.
[Opsional] Di kolom Labels, klik Add label jika ingin menambahkan label ke kunci Anda.
Klik Create.
gcloud
Dalam project kunci Anda, buat key ring:
gcloud kms keyrings create RING_NAME \
--location=LOCATION \
--project=KEY_PROJECT_ID
Ganti kode berikut:
RING_NAME
: nama key ring baru Anda.LOCATION
: lokasi Anda ingin membuat key ring.KEY_PROJECT_ID
: project ID kunci Anda.
Buat kunci:
gcloud kms keys create KEY_NAME \
--location=LOCATION \
--keyring=RING_NAME \
--purpose=encryption \
--project=KEY_PROJECT_ID
Ganti kode berikut:
KEY_NAME
: nama kunci baru Anda.LOCATION
: lokasi Cloud KMS tempat Anda membuat key ring.RING_NAME
: nama key ring Anda.KEY_PROJECT_ID
: project ID kunci Anda.
Memberikan izin untuk menggunakan kunci
Akun layanan GKE di project cluster Anda memiliki nama berikut:
service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
Ganti CLUSTER_PROJECT_NUMBER
dengan nomor project cluster Anda.
Untuk menemukan nomor project Anda menggunakan gcloud CLI, jalankan perintah berikut:
gcloud projects describe CLUSTER_PROJECT_ID \
--format="value(projectNumber)"
Untuk memberikan akses ke akun layanan, Anda dapat menggunakan Google Cloud Console atau gcloud CLI.
Konsol
Berikan peran CryptoKey Encrypter/Decrypter Cloud KMS pada akun layanan GKE Anda:
- Buka browser Cloud Key Management Service Keys di Konsol Google Cloud.
Buka browser Kunci Cloud KMS Klik nama key ring yang berisi kunci yang diinginkan.
Centang kotak untuk kunci yang diinginkan.
Tab Permissions di panel jendela kanan akan tersedia.
Dalam dialog Add members, tentukan alamat email untuk akun layanan GKE yang Anda berikan akses.
Di menu drop-down Select a role, pilih Cloud KMS CryptoKey Encrypter/Decrypte.
Klik Save.
gcloud
Berikan peran CryptoKey Encrypter/Decrypter Cloud KMS pada akun layanan GKE Anda:
gcloud kms keys add-iam-policy-binding KEY_NAME \
--location=LOCATION \
--keyring=RING_NAME \
--member=serviceAccount:SERVICE_ACCOUNT_NAME \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter \
--project=KEY_PROJECT_ID
Ganti kode berikut:
KEY_NAME
: nama kunci Anda.LOCATION
: lokasi Cloud KMS tempat Anda membuat key ring.RING_NAME
: nama key ring Anda.SERVICE_ACCOUNT_NAME
: nama akun layanan GKE Anda.KEY_PROJECT_ID
: project ID kunci Anda.
Memastikan kunci memiliki kuota yang cukup jika berupa kunci Cloud HSM
Jika Anda menggunakan kunci Cloud HSM, project Google Cloud yang berisi kunci tersebut dibatasi oleh kuota kunci Anda. Pastikan Anda memiliki kuota yang cukup untuk menggunakan kunci Cloud HSM dengan enkripsi secret lapisan aplikasi. Jika kuota Anda habis, node Anda mungkin kehilangan konektivitas ke bidang kontrol cluster.
Mengaktifkan enkripsi secret lapisan aplikasi
Anda dapat mengaktifkan enkripsi secret lapisan aplikasi pada cluster GKE Standard dan GKE Autopilot baru atau yang sudah ada menggunakan gcloud CLI atau Google Cloud Console.
Setelah mengaktifkan enkripsi secret lapisan aplikasi, lakukan rotasi kunci. Anda dapat mengonfigurasi rotasi kunci otomatis di Cloud KMS.
Di cluster baru
Anda dapat membuat cluster baru dengan enkripsi secret lapisan aplikasi yang diaktifkan menggunakan Google Cloud Console atau gcloud CLI.
Konsol - Autopilot
Untuk membuat cluster Autopilot dengan enkripsi secret lapisan aplikasi diaktifkan, lakukan langkah-langkah berikut:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Create.
Di bagian Autopilot, klik Configure.
Konfigurasikan cluster Anda sesuai keinginan.
Di panel navigasi, klik Advanced Options, lalu luaskan bagian Security.
Centang kotak Enable Application-layer secret encryption, lalu pilih kunci yang Anda buat di Membuat kunci Cloud KMS.
Klik Create.
Konsol - Standar
Untuk membuat cluster Standar dengan enkripsi secret lapisan aplikasi diaktifkan, lakukan langkah-langkah berikut:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Create.
Di bagian Standard, klik Configure.
Konfigurasikan cluster Anda sesuai keinginan.
Dari panel navigasi, pada Cluster, klik Sec urity.
Centang kotak Enable Application-layer secret encryption, lalu pilih kunci yang Anda buat di Membuat kunci Cloud KMS.
Klik Create.
gcloud
Untuk membuat cluster yang mendukung enkripsi secret lapisan aplikasi, tentukan nilai untuk parameter --database-encryption-key
dalam perintah pembuatan Anda.
gcloud container clusters create-auto CLUSTER_NAME \
--cluster-version=latest \
--region=COMPUTE_REGION \
--database-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
--project=CLUSTER_PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME
: nama yang dipilih untuk cluster baru Anda.COMPUTE_REGION
: region Compute Engine tempat Anda ingin membuat cluster.KEY_PROJECT_ID
: project ID kunci Anda.LOCATION
: lokasi Cloud KMS tempat Anda membuat key ring.RING_NAME
: nama key ring Anda.KEY_NAME
: nama kunci Anda.CLUSTER_PROJECT_ID
: project ID cluster Anda.
Anda dapat mengaktifkan enkripsi secret lapisan aplikasi di cluster Standar baru menggunakan perintah gcloud container clusters create
dengan flag yang sama.
Di cluster yang sudah ada
Anda dapat menggunakan gcloud CLI atau Google Cloud Console untuk mengupdate cluster yang ada agar dapat menggunakan enkripsi secret lapisan aplikasi. GKE mengenkripsi semua Secret yang ada dan yang baru menggunakan kunci enkripsi yang Anda tentukan.
Memperbarui cluster yang ada untuk menggunakan enkripsi secret lapisan aplikasi akan memulai ulang bidang kontrol cluster. Untuk cluster zona, bidang kontrol menjadi tidak tersedia.
Konsol
Untuk mengupdate cluster agar mendukung enkripsi secret lapisan aplikasi:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Security, di kolom Application-layer secrets encryption, klik edit Edit application-layer secrets encryption.
Centang kotak Enable Application-layer secret encryption, lalu pilih kunci yang Anda buat di Membuat kunci Cloud KMS.
Klik Save Changes.
gcloud
Untuk mengaktifkan enkripsi secret lapisan aplikasi di cluster yang ada, jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--region=COMPUTE_REGION \
--database-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
--project=CLUSTER_PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.COMPUTE_REGION
: region Compute Engine cluster.KEY_PROJECT_ID
: project ID kunci Anda.LOCATION
: lokasi Cloud KMS tempat Anda membuat key ring.RING_NAME
: nama key ring Anda.KEY_NAME
: nama kunci Anda.CLUSTER_PROJECT_ID
: project ID cluster Anda.
Memperbarui kunci Cloud KMS
Anda dapat menggunakan gcloud CLI atau Google Cloud Console untuk mengupdate cluster yang ada agar menggunakan kunci Cloud KMS baru.
Memperbarui cluster yang ada untuk menggunakan kunci Cloud KMS baru akan memulai ulang bidang kontrol cluster. Untuk cluster zona, bidang kontrol menjadi tidak tersedia.
Konsol
Untuk mengupdate cluster agar menggunakan kunci Cloud KMS baru:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Security, di kolom Application-layer secrets encryption, klik edit Edit application-layer secrets encryption.
Pilih kunci enkripsi baru yang ingin Anda gunakan.
Klik Save Changes.
gcloud
Perbarui cluster yang ada untuk menggunakan kunci Cloud KMS baru:
gcloud container clusters update CLUSTER_NAME \
--region=COMPUTE_REGION \
--database-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
--project=CLUSTER_PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.COMPUTE_REGION
: region Compute Engine cluster.KEY_PROJECT_ID
: project ID kunci Anda.LOCATION
: lokasi Cloud KMS tempat Anda membuat key ring.RING_NAME
: nama key ring Anda.KEY_NAME
: nama kunci Anda.CLUSTER_PROJECT_ID
: project ID cluster Anda.
Menonaktifkan enkripsi secret lapisan aplikasi
Untuk menonaktifkan enkripsi secret lapisan aplikasi, Anda dapat menggunakan gcloud CLI atau Google Cloud Console.
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Security, di kolom Application-layers secret encryption, klik edit Edit application-layers encryption.
Hapus centang Enable Application-layer secrets encryption.
Klik Save Changes.
gcloud
Untuk menonaktifkan enkripsi secret lapisan aplikasi, jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--region=COMPUTE_REGION \
--disable-database-encryption \
--project=CLUSTER_PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.COMPUTE_REGION
: region Compute Engine cluster.CLUSTER_PROJECT_ID
: project ID cluster Anda.
Memastikan enkripsi secret lapisan aplikasi diaktifkan
Anda dapat memeriksa apakah cluster menggunakan enkripsi secret lapisan aplikasi dengan menggunakan Google Cloud Console atau gcloud CLI.
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Security, pastikan kolom Application-layers encryptions encryption menampilkan
Enabled
dan mencantumkan kunci yang benar.
gcloud
Periksa apakah cluster menggunakan enkripsi secret lapisan aplikasi:
gcloud container clusters describe CLUSTER_NAME \
--region=COMPUTE_REGION \
--format='value(databaseEncryption)' \
--project=CLUSTER_PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.COMPUTE_REGION
: region Compute Engine cluster.CLUSTER_PROJECT_ID
: project ID cluster Anda.
Jika cluster menggunakan enkripsi secret lapisan aplikasi, output-nya akan mirip dengan berikut ini:
keyName=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME;state=ENCRYPTED
Merotasi kunci Anda
Rotasikan kunci Anda secara rutin, termasuk setelah Anda mengaktifkan enkripsi secret lapisan aplikasi. Untuk mendapatkan petunjuk dalam mengonfigurasi rotasi kunci otomatis atau merotasi kunci secara manual, lihat Merotasi kunci.
Saat Anda melakukan rotasi kunci, rahasia Anda yang ada akan tetap dienkripsi dengan versi kunci enkripsi kunci (KEK) sebelumnya. Untuk memastikan versi KEK yang lebih baru menggabungkan Secret, enkripsi ulang Secret setelah rotasi Kunci.
Misalnya, Anda membuat dan menyimpan Secret, Secret1
.
Kunci ini dienkripsi dengan DEK1
, yang digabungkan dengan KEKv1
.
Setelah KEK diputar, Anda mengenkripsi ulang Secret1
sehingga dibungkus oleh DEK2
, yang kemudian digabungkan dengan KEKv2
, KEK yang dirotasi.
Rotasi versi kunci adalah operasi yang pada akhirnya konsisten dan mungkin ada penundaan sebelum versi kunci baru diterapkan. Lihat Konsistensi versi kunci untuk mengetahui informasi selengkapnya.
Mengenkripsi ulang Secret Anda
Setelah melakukan rotasi kunci, Anda harus mengenkripsi ulang Secret untuk menggabungkan Secret dengan versi baru KEK. Tunggu setidaknya tiga jam sebelum mengenkripsi ulang Secret setelah rotasi.
Meskipun tidak dapat mengonfigurasi enkripsi ulang otomatis menggunakan gcloud CLI, Anda dapat menggunakan CronJob untuk menjalankan perintah enkripsi ulang secara berkala.
Untuk mengenkripsi ulang Secret secara manual setelah rotasi kunci, tunggu setidaknya tiga jam agar versi baru menjadi konsisten. Lalu, sentuh setiap Secret untuk memaksa enkripsi ulang menggunakan perintah seperti berikut:
kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - encryption-key-rotation-time="TIME"
Ganti TIME
dengan string yang menunjukkan kapan rotasi terjadi (misalnya, 20200909-090909
).
Versi kunci lama masih akan ada, dan akan dikenai biaya. Jika versi lama tidak lagi digunakan, Anda mungkin perlu memusnahkannya. Penghancuran versi kunci bersifat permanen, jadi pastikan Anda mengenkripsi ulang Secret sebelum melakukannya.
Batasan
- GKE mendukung hingga 30.000 secret per cluster untuk enkripsi secret lapisan aplikasi. Jika Anda menyimpan lebih dari 30.000 secret, cluster Anda mungkin akan menjadi tidak stabil pada waktu upgrade, sehingga menyebabkan potensi pemadaman pada beban kerja Anda.
- Pastikan ukuran rata-rata metadata secret di setiap namespace lebih rendah dari 5KiB. Jika ukuran rata-rata metadata di atas 5KiB, cluster Anda mungkin memasuki kondisi buruk. Beberapa secret dienkripsi, sementara yang lainnya didekripsi setelah mengaktifkan fitur atau menonaktifkan fitur tersebut.
Anda harus memilih kunci di region yang sama dengan cluster. Misalnya, cluster zona di
us-central1-a
hanya dapat menggunakan kunci di regionus-central1
. Untuk cluster regional, kunci harus berada di lokasi yang sama untuk mengurangi latensi dan mencegah kasus saat resource bergantung pada layanan yang tersebar di beberapa domain gagal.Kunci tidak perlu berada dalam project yang sama dengan cluster. Untuk mengetahui informasi selengkapnya tentang lokasi yang didukung untuk Cloud KMS, lihat Lokasi Google Cloud.
GKE hanya mendukung kunci dari Cloud KMS. Anda tidak dapat menggunakan penyedia KMS Kubernetes lain atau penyedia enkripsi lainnya.
Pemecahan masalah
Untuk informasi tentang cara memecahkan masalah enkripsi secret lapisan aplikasi, termasuk menyelesaikan masalah dengan update enkripsi Secret yang gagal, lihat Memecahkan masalah enkripsi secret lapisan aplikasi.
Kunci Cloud KMS dinonaktifkan
Akun layanan default GKE tidak dapat menggunakan kunci Cloud KMS yang dinonaktifkan untuk enkripsi secret lapisan aplikasi.
Untuk mengaktifkan kembali kunci yang dinonaktifkan, lihat Mengaktifkan versi kunci yang dinonaktifkan.
Langkah berikutnya
- Pelajari Secret di Kubernetes lebih lanjut.
- Pelajari lebih lanjut Pengelolaan rahasia yang menggunakan Cloud KMS.
- Pelajari cara melakukan hardening cluster.