このセクションでは、GCP クラウドのためのサービス エンジン (SE) ディスクの暗号化のユーザー管理の暗号化キー (CMEK) サポートについて説明します。

NSX Advanced Load Balancer GCP クラウドは、次のリソースの暗号化をサポートします。リソースごとに異なる暗号化キーがサポートされます。

  • Raw SE イメージ ファイルをアップロードするために作成された GCS バケット。

  • GCS オブジェクトとしてアップロードされた Raw SE イメージ。

  • Raw イメージから作成された GCP イメージ。

  • SE の作成時の SE ディスク。

キーがクラウド構成に追加されると、Cloud Connector はキーの存在と権限を確認します。キーの検証に失敗した場合、クラウドは失敗状態になります。SE の作成後に SE ディスク暗号化キーがクラウドから削除された場合、対応する SE が後でシャットダウンすると、起動に失敗します。

前提条件

CMEK の使用前に、次の手順に従います。

  1. Google KMS でキーを作成します。

  2. NSX Advanced Load Balancer クラウド サービス アカウントに、次のいずれかのキーを使用する権限を付与します。

    a) cloudkms.cryptoKeys.get、または

    b) ロール:roles/cloudkms.admin

  3. 次のサービス アカウントに権限を付与して、Google コンピューティングとストレージがキーを使用してデータを暗号化または復号化できるようにします。

    a) 権限

    i. cloudkms.cryptoKeyVersions.useToEncrypt

    ii.cloudkms.cryptoKeyVersions.useToDecrypt、または

    iii.ロール:roles/cloudkms.cryptoKeyEncrypterDecrypter

    b) GCS オブジェクトとバケットの暗号化キーの場合、次のメンバーは上記の権限を持っている必要があります。

    i. service-[PROJECT_NUMBER]@gs-project-accounts.iam.gserviceaccount.com

    c) SE イメージおよびディスク暗号化キーの場合、次のメンバーは上記の権限を持っている必要があります

    i. service-[PROJECT_NUMBER]@compute-system.iam.gserviceaccount.com

クラウド構成

暗号化キーを構成するには、GCP クラウド構成の encryption_keys フィールドを設定します。暗号化キーは、SE プロジェクトとは関係なく任意の GCP プロジェクトに含められますが、SE と同じリージョンに配置するか、グローバルにする必要があります。[kms] キー ID は、projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name の形式である必要があります。

構成フィールド

構成フィールドは次のとおりです。

gcs_bucket_kms_key_id    CMEK Resource ID to encrypt Google Cloud Storage Bucket. This Bucket is used to upload Service Engine raw image.
gcs_objects_kms_key_id   CMEK Resource ID to encrypt Service Engine raw image. The raw image is a Google Cloud Storage Object.
se_disk_kms_key_id       CMEK Resource ID to encrypt Service Engine Disks.
se_image_kms_key_id      CMEK Resource ID to encrypt Service Engine GCE Image.

暗号を使用した GCP の構成

Google クラウドの構成時に、暗号化に使用するキーが必要です。URI 形式のキー ID を次のように提供できます。

CLI 形式は次のとおりです。

[admin:10-138-10-66]: > configure cloud gcp-cloud
[admin:10-138-10-66]: cloud> gcp_configuration
[admin:10-138-10-66]: cloud:gcp_configuration> encryption_keys
[admin:10-138-10-66]: cloud:gcp_configuration:encryption_keys> se_disk_kms_key_id projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/se-disk
[admin:10-138-10-66]: cloud:gcp_configuration:encryption_keys> gcs_bucket_kms_key_id projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/bucket
[admin:10-138-10-66]: cloud:gcp_configuration:encryption_keys> se_image_kms_key_id projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/se-image
[admin:10-138-10-66]: cloud:gcp_configuration:encryption_keys> gcs_objects_kms_key_id projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/se-raw
[admin:10-138-10-66]: cloud:gcp_configuration:encryption_keys> save
save[admin:10-138-10-66]: cloud:gcp_configuration> save
[admin:10-138-10-66]: cloud> save
+------------------------------+----------------------------------------+
| Field                        | Value                                  |
+------------------------------+----------------------------------------+
| uuid                         | cloud-d4513a65-0907-4f67-b75f-bb47a6990423                                                            |
| name                         | gcp-cloud                              |
| vtype                        | CLOUD_GCP                              |
| apic_mode                    | False                                  |
| gcp_configuration            |                                        |
|   cloud_credentials_ref      | gcp-creds                              |
|   region_name                | us-central1                            |
|   zones[1]                   | us-central1-a                          |
|   zones[2]                   | us-central1-b                          |
|   se_project_id              | development-237409                     |
|   network_config             |                                        |
|     config                   | INBAND_MANAGEMENT                      |
|     inband                   |                                        |
|       vpc_subnet_name        | subnet-1                               |
|       vpc_project_id         | net-project                            |
|       vpc_network_name       | net-1                                  |
|   vip_allocation_strategy    |                                        |
|     mode                     | ROUTES                                 |
|     routes                   |                                        |
|       match_se_group_subnet  | False                                  |
|   encryption_keys            |                                        |
|     se_image_kms_key_id      | projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/se-image                           |
|     se_disk_kms_key_id       | projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/se-disk                            |
|     gcs_bucket_kms_key_id    | projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/bucket                             |
|     gcs_objects_kms_key_id   | projects/kms-project/locations/us-central1/keyRings/keyring/cryptoKeys/se-raw                             |
| dhcp_enabled                 | True                                   |
| mtu                          | 1500 bytes                             |
| prefer_static_routes         | False                                  |
| enable_vip_static_routes     | False                                  |
| license_type                 | LIC_CORES                              |
| ipam_provider_ref            | ipam-gcp-cloud       		        |
| state_based_dns_registration | True                                   |
| ip6_autocfg_enabled          | False                                  |
| dns_resolution_on_se         | False                                  |
| enable_vip_on_all_interfaces | False                                  |
| tenant_ref                   | admin                                  |
| license_tier                 | ENTERPRISE_18                          |
| autoscale_polling_interval   | 60 seconds                             |
+------------------------------+----------------------------------------+
}

暗号化オプションの変更

すでに作成されているクラウドの暗号化オプションを変更できます。変更には、次のようなものがあります。

  1. 暗号化の有効化/無効化

  2. 暗号化のキーの変更

SE ディスク暗号化キーは、GCP クラウド用に作成された SE がない場合にのみ更新できます。

その他の暗号化キーは、いつでも変更できます。SE イメージ暗号化キーが更新されると、新しい暗号化キーを使用して GCP で SE イメージが再作成されます。

注:
  1. キーは URI 形式である必要があります。

  2. SE ディスク暗号化キーの変更は、SE が作成されていない場合にのみ許可されます。

  3. キー リージョンを確認する必要があります。SE と同じリージョン内にあるか、グローバルである必要があります。GCP コンソールの [ディスクの暗号化キー] フィールドからキー ID をコピーできます。

参考資料