GKE di AWS menggunakan AWS Key Management Service (KMS) untuk mengenkripsi volume EBS. GKE di AWS 1.7 dan yang lebih tinggi mendukung enkripsi volume dengan Customer Master Key (CMK) yang dikelola pelanggan. GKE di AWS versi 1.6.x dan yang lebih rendah hanya mendukung AWS Managed Customer Master Keys.
Topik ini menjelaskan cara menyiapkan CMK yang dikelola pelanggan untuk mengenkripsi volume. Jika Anda tidak menyiapkan CMK yang dikelola pelanggan, GKE di AWS akan menggunakan CMK yang dikelola AWS secara default.
Ringkasan
Komponen GKE di AWS berikut mendukung volume terenkripsi CMK yang dikelola pelanggan:
- Volume root bastion host
- Volume root layanan pengelolaan
- Volume data etcd layanan pengelolaan
- Volume root bidang kontrol cluster pengguna
- Volume data etcd bidang kontrol cluster pengguna
- Volume root node cluster pengguna
Anda menentukan kunci dalam konfigurasi layanan pengelolaan, cluster, dan node pool.
Prasyarat
Untuk menggunakan CMK yang dikelola pelanggan untuk volume root GKE di AWS, Anda memerlukan hal berikut:
- Izin untuk membuat atau menggunakan kebijakan kunci AWS KMS. Untuk mengetahui informasi selengkapnya, lihat Menggunakan kebijakan kunci di AWS KMS.
Membuat kebijakan kunci
Kunci AWS KMS Anda harus memiliki kebijakan kunci yang memungkinkan GKE di AWS membuat dan membaca volume yang dienkripsi dengan CMK yang dikelola pelanggan. Contoh kebijakan diberikan di bagian berikut. Untuk membuat kebijakan, lakukan langkah-langkah berikut:
Dari direktori
anthos-aws
, gunakanterraform
untuk mendapatkan ID layanan pengelolaan Anda. Output-nya mencakup ID layanan pengelolaan Anda. Pada contoh di bawah, ID-nya adalahcd anthos-aws terraform output cluster_id
gke-12345abc
.terraform output cluster_id
gke-12345abcBuat kebijakan kunci AWS KMS dengan konten berikut:
{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_NUMBER:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow creating encrypted EBS volumes for EC2 use", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::ACCOUNT_NUMBER:role/gke-CLUSTER_ID-management", "arn:aws:iam::ACCOUNT_NUMBER:user/AWS_USER", "arn:aws:iam::ACCOUNT_NUMBER:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "ACCOUNT_NUMBER", "kms:ViaService": "ec2.AWS_REGION.amazonaws.com" } } }, { "Sid": "Allow attaching encrypted EBS volumes for EC2 Use", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::ACCOUNT_NUMBER:role/CLUSTER_ID-management", "arn:aws:iam::ACCOUNT_NUMBER:role/CLUSTER_ID-controlplane", "arn:aws:iam::ACCOUNT_NUMBER:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "ACCOUNT_NUMBER", "kms:ViaService": "ec2.AWS_REGION.amazonaws.com" } } } ] }
Ganti kode berikut:
ACCOUNT_NUMBER
: nomor akun AWS Anda—misalnya,1234567890
.CLUSTER_ID
: ID cluster pengelolaan GKE di AWS Anda—misalnyagke-12345678
.AWS_USER
: nama pengguna AWS Anda.AWS_REGION
: Region AWS tempat cluster GKE di AWS Anda berjalan—misalnyaus-east1
.
Mengonfigurasi resource untuk menggunakan CMK yang dikelola pelanggan
Bagian ini menjelaskan cara mengonfigurasi CMK yang dikelola pelanggan untuk komponen GKE di AWS. Sebelum mengupgrade komponen yang ada, lihat Menggunakan CMK dengan cluster yang ada.
Bastion host dan layanan pengelolaan
Anda mengonfigurasi CMK yang dikelola pelanggan untuk volume root host bastion, volume root layanan pengelolaan, dan volume data etcd layanan pengelolaan di anthos-gke.yaml
sebelum menyiapkan layanan pengelolaan. Untuk mengetahui informasi selengkapnya, lihat referensi Mengintegrasikan infrastruktur yang ada dan AWSManagementService.
Volume bidang kontrol cluster pengguna
Anda mengonfigurasi CMK yang dikelola pelanggan untuk volume data etcd dan bidang kontrol cluster pengguna dalam definisi AWSCluster. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster pengguna kustom.
Volume root node cluster pengguna
Anda mengonfigurasi CMK yang dikelola pelanggan pada volume root node cluster pengguna dalam definisi AWSNodePool Anda. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster pengguna kustom.
Menggunakan CMK dengan cluster yang ada
Anda dapat menambahkan konfigurasi CMK yang dikelola pelanggan ke komponen yang ada berikut:
- Volume root bastion host
- Volume root layanan pengelolaan
- Volume root bidang kontrol cluster pengguna
- Volume root node cluster pengguna
GKE di AWS membuat ulang volume ini setelah upgrade atau perubahan konfigurasi. Untuk menambahkan konfigurasi CMK yang dikelola pelanggan ke komponen yang ada, ikuti petunjuk di Mengupgrade GKE di AWS. Saat Anda mengubah konfigurasi resource, ubah kolom berikut:
Resource | Kolom |
---|---|
AWSManagementService | spec.rootVolume and spec.bastionHost.rootVolume |
AWSCluster | spec.controlPlane.rootVolume |
AWSNodePools | spec.rootVolume |
Saat Anda menyelesaikan upgrade, GKE di AWS akan membuat resource baru dengan volume CMK yang dikelola pelanggan terpasang.