10.5.6.4. マシンセットの顧客管理の暗号鍵の有効化
Google Cloud コンピュート Engine を使用して暗号鍵を指定し、ディスク上の保存データを暗号化します。この鍵は、顧客のデータの暗号化に使用されず、データ暗号化キーの暗号化に使用されます。デフォルトでは、Compute Engine は Compute Engine キーを使用してこのデータを暗号化します。
Machine API を使用するクラスターでは、顧客管理の鍵による暗号化を有効にすることができます。まず KMS キーを作成 し、適切なパーミッションをサービスアカウントに割り当てる必要があります。サービスアカウントが鍵を使用できるようにするには、KMS キー名、キーリング名、および場所が必要です。
KMS の暗号化に専用のサービスアカウントを使用しない場合は、代わりに Compute Engine のデフォルトのサービスアカウントが使用されます。専用のサービスアカウントを使用しない場合、デフォルトのサービスアカウントに、キーにアクセスするためのパーミッションを付与する必要があります。Compute Engine のデフォルトのサービスアカウント名は、service-<project_number>@compute-system.iam.gserviceaccount.com パターンをベースにしています。
手順
特定のサービスアカウントが KMS キーを使用できるようにし、サービスアカウントに正しい IAM ロールを付与するには、KMS キー名、キーリング名、場所を指定して次のコマンドを実行します。
$ gcloud kms keys add-iam-policy-binding <key_name> \ --keyring <key_ring_name> \ --location <key_ring_location> \ --member "serviceAccount:service-<project_number>@compute-system.iam.gserviceaccount.com” \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterマシンセット YAML ファイルの
providerSpecフィールドで暗号化キーを設定します。以下に例を示します。apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet ... spec: template: spec: providerSpec: value: disks: - type: encryptionKey: kmsKey: name: machine-encryption-key keyRing: openshift-encryption-ring location: global projectID: openshift-gcp-project kmsKeyServiceAccount: openshift-service-account@openshift-gcp-project.iam.gserviceaccount.comここでは、以下のようになります。
spec.template.spec.providerSpec.value.disks.type.encryptionKey.kmsKey.name- ディスク暗号化に使用される、お客様が管理する暗号鍵の名前を指定します。
spec.template.spec.providerSpec.value.disks.type.encryptionKey.kmsKey.keyRing- KMS キーが属する KMS キーリングの名前を指定します。
spec.template.spec.providerSpec.value.disks.type.encryptionKey.kmsKey.location- KMS キーリングが存在する Google Cloud の場所を指定します。
spec.template.spec.providerSpec.value.disks.type.encryptionKey.kmsKey.projectID-
オプション:KMS キーリングが存在するプロジェクトの ID を指定します。プロジェクト ID が設定されていない場合、マシンセットが作成されたマシンセットの
projectIDが使用されます。 spec.template.spec.providerSpec.value.disks.type.encryptionKey.kmsKeyServiceAccountオプション: 指定された KMS キーの暗号化要求に使用されるサービスアカウントを指定します。サービスアカウントが設定されていない場合、Compute Engine のデフォルトのサービスアカウントが使用されます。
更新された
providerSpecオブジェクト設定を使用して新しいマシンが作成されると、ディスク暗号化キーが KMS キーで暗号化されます。