GKE di AWS menggunakan AWS Key Management Service (KMS) untuk mengenkripsi volume EBS. GKE pada AWS 1.7 dan yang lebih tinggi mendukung enkripsi volume dengan Customer Master Keys (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
GKE pada komponen AWS berikut mendukung volume yang dienkripsi CMK yang dikelola pelanggan:
- Volume root host bastion
- 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 di konfigurasi layanan pengelolaan, cluster, dan kumpulan node.
Prasyarat
Untuk menggunakan CMK yang dikelola pelanggan untuk GKE pada volume root AWS, Anda memerlukan hal berikut:
- Izin untuk membuat atau menggunakan kebijakan kunci AWS KMS. Untuk informasi selengkapnya, lihat Menggunakan kebijakan utama 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 disediakan di bagian berikut. Untuk membuat kebijakan, lakukan langkah-langkah berikut:
Dari direktori
anthos-aws
, gunakanterraform
untuk mendapatkan ID layanan pengelolaan Anda.cd anthos-aws terraform output cluster_id
Output mencakup ID layanan pengelolaan Anda. Dalam contoh di bawah ini, ID-nya adalahgke-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
: GKE Anda di ID cluster pengelolaan AWS— misalnyagke-12345678
.AWS_USER
: nama pengguna AWS Anda.AWS_REGION
: Region AWS tempat GKE Anda pada cluster AWS berjalan—misalnyaus-east1
.
Mengonfigurasi resource untuk menggunakan CMK yang dikelola pelanggan
Bagian ini menjelaskan cara mengonfigurasi CMK yang dikelola pelanggan untuk GKE pada komponen 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 dapat mengonfigurasi CMK yang dikelola pelanggan untuk bidang kontrol cluster pengguna dan volume data dll. 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. 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 host bastion
- 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 dalam artikel Mengupgrade GKE di AWS. Saat mengubah konfigurasi resource, ubah kolom berikut:
Resource | Kolom |
---|---|
AWSManagementService | spec.rootVolume and spec.bastionHost.rootVolume |
AWSCluster | spec.controlPlane.rootVolume |
AWSNodePools | spec.rootVolume |
Setelah Anda menyelesaikan upgrade, GKE di AWS akan membuat resource baru dengan volume CMK yang dikelola pelanggan terlampir.