Halaman ini menunjukkan cara mengonfigurasi bidang kontrol cluster Google Kubernetes Engine (GKE) dengan otoritas sertifikat (CA) dan kunci yang Anda kelola. Panduan ini ditujukan untuk administrator keamanan yang memiliki persyaratan kebijakan atau kepatuhan organisasi tertentu untuk kontrol atas penerbitan dan penandatanganan kredensial.
Halaman ini menjelaskan salah satu bagian dari serangkaian fitur bidang kontrol opsional di GKE yang memungkinkan Anda melakukan tugas seperti memverifikasi postur keamanan bidang kontrol atau mengonfigurasi enkripsi dan penandatanganan kredensial di bidang kontrol menggunakan kunci yang Anda kelola. Untuk mengetahui detailnya, lihat Tentang otoritas bidang kontrol GKE.
Secara default, Google Cloud menerapkan berbagai langkah keamanan ke bidang kontrol terkelola. Halaman ini menjelaskan kemampuan opsional yang memberi Anda lebih banyak visibilitas atau kontrol atas bidang kontrol GKE.
Anda seharusnya sudah memahami konsep berikut:
Komponen kredensial bidang kontrol
Cluster GKE menggunakan CA dan kunci tertentu untuk menerbitkan kredensial di cluster, seperti sertifikat X.509 atau token ServiceAccount. Anda dapat membuat kunci di Cloud Key Management Service (Cloud KMS) dan CA di Certificate Authority Service (CA Service) serta mengonfigurasi cluster untuk menggunakan resource ini alih-alih CA dan kunci yang dikelola Google Cloud.
Untuk mempelajari lebih lanjut komponen spesifik yang Anda buat, lihat CA dan kunci yang dikelola sendiri.
Penggunaan dengan fitur otoritas bidang kontrol GKE lainnya
Otoritas bidang kontrol GKE menyediakan fitur berikut yang terkait dengan kunci yang dikelola sendiri:
- Menjalankan certificate authority (CA) dan kunci Anda sendiri (halaman ini)
- Mengenkripsi komponen bidang kontrol
Menyiapkan lingkungan
Di bagian ini, Anda akan mengidentifikasi Google Cloud project yang akan digunakan dalam tutorial ini, dan membuat key ring di Cloud KMS untuk menyimpan kunci Anda.
Mengidentifikasi project
Sebaiknya gunakan project Google Cloud terpisah sebagai berikut:
- Project kunci: berisi semua kunci dan CA.
- Project cluster: berisi cluster GKE Anda.
Anda dapat secara opsional menggunakan project yang sama untuk kunci, CA, dan cluster GKE, tetapi sebaiknya Anda menggunakan project terpisah agar tim yang mengelola operasi kriptografi di organisasi Anda terpisah dari tim yang mengelola operasi cluster.
Membuat key ring
Buat key ring di project kunci untuk menyimpan semua kunci untuk cluster tertentu. Anda harus membuat key ring di lokasi yang sama dengan cluster GKE Anda.
Jalankan perintah berikut:
gcloud kms keyrings create KEY_RING_NAME \
--location=LOCATION \
--project=KEY_PROJECT_ID
Ganti kode berikut:
KEY_RING_NAME
: nama untuk key ring Anda.KEY_PROJECT_ID
: project ID project utama Anda.LOCATION
: region Google Cloud tempat Anda ingin membuat key ring. Region ini harus sama dengan region tempat cluster GKE Anda berada.
Membuat kunci
Untuk setiap otoritas kredensial seperti kunci akun layanan dan CA, Anda membuat kunci menggunakan Cloud KMS. Bagian ini menunjukkan cara membuat
kunci yang digunakan GKE untuk menandatangani dan memverifikasi kredensial di cluster.
Anda dapat menentukan properti Anda sendiri untuk kunci ini, bergantung pada kebutuhan organisasi Anda. Untuk mengetahui detailnya, lihat halaman Membuat kunci dan referensi API projects.locations.keyRings.cryptoKeys
.
Pertimbangkan hal berikut saat Anda membuat resource ini di Cloud KMS:
- Jika memiliki key ring yang sudah ada di project kunci, Anda dapat menggunakan key ring tersebut untuk menyimpan semua kunci yang Anda buat untuk digunakan dengan cluster.
- Key ring Anda harus berada di Google Cloud lokasi yang sama dengan cluster untuk meminimalkan latensi.
- Kunci harus menentukan
asymmetric-signing
sebagai tujuan kunci. - Gunakan algoritma berikut berdasarkan jenis kunci:
- Kunci penandatanganan ServiceAccount: algoritma PKCS1 penandatanganan RSA yang kuat, seperti
rsa-sign-pkcs1-4096-sha256
ataursa-sign-pkcs1-3072-sha256
. - Kunci otoritas sertifikat: algoritma yang kuat seperti
ec-sign-p256-sha256
.
- Kunci penandatanganan ServiceAccount: algoritma PKCS1 penandatanganan RSA yang kuat, seperti
- Kunci hardware Cloud HSM didukung, tetapi
software
tingkat perlindungan sudah cukup untuk sebagian besar kasus penggunaan. Untuk mengetahui detail tentang kunci hardware, lihat Cloud HSM. - Jangan ubah durasi default untuk penghancuran kunci.
- GKE tidak mencegah Anda menghapus kunci Cloud KMS, termasuk kunci Layanan CA, yang sedang digunakan oleh cluster. Sebelum Anda menghapus kunci atau CA, pastikan resource tersebut tidak digunakan.
Untuk membuat kunci, jalankan perintah berikut:
Buat kunci penandatanganan Akun Layanan Kubernetes, yang juga Anda tetapkan sebagai kunci verifikasi akun layanan selama pembuatan cluster:
gcloud kms keys create sa-signing-key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=rsa-sign-pkcs1-4096-sha256 \ --project=KEY_PROJECT_ID
Ganti
KEY_PROJECT_ID
dengan project ID untuk project kunci khusus Anda.Buat kunci CA root cluster:
gcloud kms keys create cluster-ca-key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
Buat kunci CA root peer etcd:
gcloud kms keys create etcd-peer-ca-key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
Buat kunci CA root API etcd:
gcloud kms keys create etcd-api-ca-key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
Buat kunci CA root agregasi:
gcloud kms keys create aggregation-ca-key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
Buat CA
Setelah membuat kunci untuk setiap fungsi bidang kontrol, gunakan setiap kunci untuk membuat kumpulan CA dan CA root yang sesuai menggunakan CA Service:
Buat kumpulan CA cluster:
gcloud privateca pools create cluster-ca-pool \ --location=LOCATION \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Flag
--no-publish-crl
dan flag--no-publish-ca-cert
bersifat opsional. Menghilangkan tanda ini akan memublikasikan sertifikat ke bucket Cloud Storage. Untuk mengetahui detailnya, lihat Mengaktifkan publikasi CRL dan sertifikat CA untuk CA di kumpulan CA.Buat CA root cluster:
gcloud privateca roots create cluster-root-ca \ --pool=cluster-ca-pool \ --location=LOCATION \ --kms-key-version=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/cluster-ca-key/cryptoKeyVersions/1 \ --subject="CN=cluster-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
Ganti
ORGANIZATION
dengan nama organisasi Anda.Buat kumpulan CA peer etcd:
gcloud privateca pools create etcd-peer-ca-pool \ --location=LOCATION \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Buat CA root peer etcd:
gcloud privateca roots create etcd-peer-root-ca \ --pool=etcd-peer-ca-pool \ --location=LOCATION \ --kms-key-version=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/etcd-peer-ca-key/cryptoKeyVersions/1 \ --subject="CN=etcd-peer-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
Buat kumpulan CA API etcd:
gcloud privateca pools create etcd-api-ca-pool \ --location=LOCATION \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Buat CA root API etcd:
gcloud privateca roots create etcd-api-root-ca \ --pool=etcd-api-ca-pool \ --location=LOCATION \ --kms-key-version=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/etcd-api-ca-key/cryptoKeyVersions/1 \ --subject="CN=etcd-api-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
Buat kumpulan CA agregasi:
gcloud privateca pools create aggregation-ca-pool \ --location=LOCATION \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Buat CA root agregasi:
gcloud privateca roots create aggregation-root-ca \ --pool=aggregation-ca-pool \ --location=LOCATION \ --kms-key-version=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/aggregation-ca-key/cryptoKeyVersions/1 \ --subject="CN=aggregation-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
Memberikan peran IAM ke agen layanan GKE
Agen layanan GKE memerlukan akses ke resource yang Anda buat di Cloud KMS dan di CA Service. Agen layanan menggunakan resource ini untuk menandatangani, memverifikasi, dan menerbitkan kredensial di cluster. Anda dapat menggunakan peran IAM bawaan berikut:
- Kubernetes Engine KMS Crypto Key User
(
roles/container.cloudKmsKeyUser
) - CA Service Certificate Manager
(
roles/privateca.certificateManager
)
Untuk memberikan peran ini ke agen layanan GKE, lakukan hal berikut:
Temukan nomor project project cluster Anda:
gcloud projects describe CLUSTER_PROJECT_ID \ --format='value(projectNumber)'
Ganti
CLUSTER_PROJECT_ID
dengan project ID project cluster Anda.Berikan peran Pengguna Kunci Kripto KMS Kubernetes Engine pada kunci penandatanganan akun layanan yang Anda buat di Buat kunci:
gcloud kms keys add-iam-policy-binding sa-signing-key \ --location=LOCATION \ --keyring=KEY_RING_NAME \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/container.cloudKmsKeyUser \ --project=KEY_PROJECT_ID
Ganti
CLUSTER_PROJECT_NUMBER
dengan nomor project untuk project cluster.Berikan peran CA Service Certificate Manager pada kumpulan CA yang Anda buat di Buat CA:
gcloud privateca pools add-iam-policy-binding cluster-ca-pool \ --location=LOCATION \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID gcloud privateca pools add-iam-policy-binding etcd-peer-ca-pool \ --location=LOCATION \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID gcloud privateca pools add-iam-policy-binding etcd-api-ca-pool \ --location=LOCATION \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID gcloud privateca pools add-iam-policy-binding aggregation-ca-pool \ --location=LOCATION \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID
Memberikan peran tambahan saat tidak menggunakan gcloud CLI
Bagian ini menjelaskan langkah-langkah konfigurasi tambahan yang harus Anda lakukan jika Anda berencana mengonfigurasi CA dan kunci menggunakan klien seperti Terraform atau konsol Google Cloud , bukan menggunakan gcloud CLI. Jika Anda menggunakan gcloud CLI, lewati bagian ini dan buka bagian Siapkan CA dan kunci di cluster baru.
Saat Anda menggunakan gcloud CLI untuk menyiapkan CA dan kunci, seperti yang dijelaskan di halaman ini, gcloud CLI akan otomatis membuat dan mengonfigurasi agen layanan untuk CA Service serta memberikan peran IAM kepada agen layanan tersebut. Namun, jika Anda menggunakan klien seperti Terraform atau konsol Google Cloud untuk mengonfigurasi lingkungan Google Cloud, Anda harus melakukan langkah-langkah konfigurasi ini secara manual sebagai berikut untuk project utama Anda:
Memicu pembuatan agen layanan CA Service.
gcloud beta services identity create --service=privateca.googleapis.com \ --project=KEY_PROJECT_ID
Temukan nomor project project utama Anda:
gcloud projects describe KEY_PROJECT_ID \ --format='value(projectNumber)'
Berikan peran Pelihat (
roles/viewer
) dan peran Penanda/Pemverifikasi CryptoKey Cloud KMS (roles/cloudkms.signerVerifier
) pada semua kunci CA root yang Anda buat di bagian Buat kunci:for key in cluster-ca-key etcd-peer-ca-key etcd-api-ca-key aggregation-ca-key do gcloud kms keys add-iam-policy-binding $key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --role=roles/viewer \ --member="serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com" \ --project=KEY_PROJECT_ID gcloud kms keys add-iam-policy-binding $key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --role=roles/cloudkms.signerVerifier \ --member="serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com" \ --project=KEY_PROJECT_ID done
Ganti
KEY_PROJECT_NUMBER
dengan nomor project utama dari output langkah sebelumnya.Perintah ini adalah loop
for
yang melakukan iterasi melalui kunci CA root, memberikan setiap peran pada kunci tersebut kepada agen layanan CA Service. Jika Anda menggunakan nama yang berbeda untuk kunci CA root, jalankan perintah ini secara manual untuk setiap kunci.
Menyiapkan CA dan kunci di cluster baru
Setelah membuat kunci, kumpulan CA, CA root, dan memberikan peran IAM kepada agen layanan GKE, buat cluster baru yang menggunakan resource ini.
Flag yang Anda tentukan dalam perintah pembuatan cluster memerlukan jalur resource berikut sebagai nilai:
- Jalur ke versi kunci di Cloud KMS untuk kunci penandatanganan akun layanan yang Anda buat di Membuat kunci. Anda
menentukan jalur ini untuk tanda
service-account-signing-keys
dan untuk tandaservice-account-verification-keys
. - Jalur ke setiap kumpulan CA yang Anda buat di Membuat CA.
Untuk mengonfigurasi cluster baru agar menggunakan kunci dan CA Anda, lakukan langkah-langkah berikut:
Temukan jalur ke versi kunci penandatanganan akun layanan yang diaktifkan terbaru:
gcloud kms keys versions list \ --key=sa-signing-key \ --keyring=KEY_RING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --filter="STATE=ENABLED" --sort-by=~ --format="value(name)" | sed 1q
Ganti
KEY_PROJECT_ID
dengan project ID project kunci.Outputnya mirip dengan hal berikut ini:
projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
Temukan jalur ke setiap kumpulan CA yang Anda buat:
gcloud privateca pools list --format="get(name)" \ --project=KEY_PROJECT_ID
Outputnya mirip dengan hal berikut ini:
projects/KEY_PROJECT_ID/locations/LOCATION/caPools/cluster-ca-pool projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-peer-ca-pool projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-api-ca-pool projects/KEY_PROJECT_ID/locations/LOCATION/caPools/aggregation-ca-pool
Pastikan output berisi semua kumpulan CA yang Anda buat untuk GKE.
Membuat cluster
Di bagian ini, Anda akan membuat cluster dengan opsi berbeda yang ditentukan
bergantung pada fitur otoritas bidang kontrol GKE yang ingin Anda
konfigurasi. Anda hanya dapat mengonfigurasi fitur ini di cluster selama pembuatan cluster. Perintah berikut membuat cluster mode Standard. Untuk
membuat cluster mode Autopilot, gunakan flag yang sama dengan perintah
gcloud container clusters create-auto
.
Untuk hanya mengonfigurasi CA dan kunci yang Anda buat dalam tutorial ini, jalankan perintah berikut:
gcloud container clusters create example-cluster \ --location=LOCATION \ --project=CLUSTER_PROJECT_ID \ --cluster-version=VERSION \ --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --cluster-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/cluster-ca-pool \ --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-peer-ca-pool \ --etcd-api-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-api-ca-pool \ --aggregation-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/aggregation-ca-pool
Ganti kode berikut:
CLUSTER_PROJECT_ID
: project ID project cluster.VERSION
: versi GKE cluster. Harus 1.31.1-gke.1846000 atau yang lebih baru.
Untuk mengonfigurasi CA dan kunci serta enkripsi boot disk bidang kontrol dan enkripsi etcd, lakukan hal berikut:
- Lakukan semua langkah konfigurasi kunci di Mengenkripsi etcd dan boot disk bidang kontrol.
- Temukan jalur ke setiap kunci menggunakan petunjuk di Menggunakan kunci enkripsi dalam cluster.
Membuat cluster:
gcloud container clusters create example-cluster \ --location=LOCATION \ --project=CLUSTER_PROJECT_ID \ --cluster-version=VERSION \ --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --cluster-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/cluster-ca-pool \ --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-peer-ca-pool \ --etcd-api-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-api-ca-pool \ --aggregation-ca=projects/KEY_PROJECT_ID/locations/LOCATION/caPools/aggregation-ca-pool \ --control-plane-disk-encryption-key=PATH_TO_DISK_KEY \ --gkeops-etcd-backup-encryption-key=PATH_TO_ETCD_BACKUP_KEY
Ganti kode berikut:
CLUSTER_PROJECT_ID
: project ID project cluster.VERSION
: versi GKE cluster. Harus 1.31.1-gke.1846000 atau yang lebih baru.PATH_TO_DISK_KEY
: jalur ke kunci enkripsi disk Anda.PATH_TO_ETCD_BACKUP_KEY
: jalur ke kunci enkripsi cadangan internal etcd Anda.
Anda juga dapat menggunakan flag ini saat membuat cluster mode Standar baru.
Verifikasi bahwa cluster menggunakan kunci dan CA yang Anda tentukan
Bagian ini menunjukkan cara memverifikasi kunci dan CA yang digunakan selama pembuatan cluster. Anda dapat melakukan verifikasi ini menggunakan Cloud Logging atau menggunakan Google Cloud CLI.
Menggunakan Logging untuk memverifikasi kunci dan CA
Untuk memverifikasi kunci dan CA menggunakan Logging, lakukan hal berikut:
Di konsol Google Cloud , buka halaman Logs Explorer:
Tentukan kueri berikut:
resource.type="gke_cluster" resource.labels.cluster_name="CLUSTER_NAME" resource.labels.location="CLUSTER_LOCATION" protoPayload.serviceName="container.googleapis.com" protoPayload.methodName=~"google.container.v(1|1alpha1|1beta1).ClusterManager.CreateCluster" protoPayload.request.cluster.userManagedKeysConfig:*
protoPayload.request.cluster.userManagedKeysConfig:*
memfilter hasil untuk log pembuatan cluster yang menyertakan kunci dan CA yang Anda kelola.Klik Run query.
Pada hasil, luaskan log pembuatan cluster Anda. Pastikan jalur ke kunci dan CA sama dengan yang Anda buat untuk cluster tersebut, seperti dalam contoh berikut:
# lines omitted for clarity
userManagedKeysConfig: {
aggregationCa: "projects/KEY_PROJECT_ID/locations/LOCATION/caPools/aggregation-ca-pool"
clusterCa: "projects/KEY_PROJECT_ID/locations/LOCATION/caPools/cluster-ca-pool"
etcdApiCa: "projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-api-ca-pool"
etcdPeerCa: "projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-peer-ca-pool"
serviceAccountSigningKeys: [
0: "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
]
serviceAccountVerificationKeys: [
0: "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
]
}
Menggunakan gcloud CLI untuk memverifikasi kunci dan CA
Untuk memverifikasi bahwa cluster menggunakan CA dan kunci yang Anda buat, jalankan perintah berikut:
gcloud container clusters describe example-cluster \
--location=LOCATION \
--project=CLUSTER_PROJECT_ID
Output harus menyertakan kolom userManagedKeysConfig
seperti dalam
contoh berikut:
# lines omitted for clarity
userManagedKeysConfig:
sa-signing-key: projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
sa-verification-key: projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
cluster-ca: projects/KEY_PROJECT_ID/locations/LOCATION/caPools/cluster-ca-pool
etcd-peer-ca: projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-peer-ca-pool
etcd-api-ca: projects/KEY_PROJECT_ID/locations/LOCATION/caPools/etcd-api-ca-pool
aggregation-ca: projects/KEY_PROJECT_ID/locations/LOCATION/caPools/aggregation-ca-pool