Cloud KMS Autokey を使用して保護されたリソースを作成する

このページでは、暗号化用に Cloud KMS Autokey によって作成された鍵を使用して保護されたリソースを作成する方法について説明します。Autokey の詳細については、Autokey の概要をご覧ください。

始める前に

Autokey を使用して保護されたリソースを作成するために必要な権限を取得するには、フォルダまたはプロジェクトに対する Cloud KMS Autokey ユーザーroles/cloudkms.autokeyUser)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Autokey フォルダまたはフォルダ内のリソース プロジェクトでリソース作成権限も必要です。各リソースの作成に必要な権限の詳細については、サービス固有のドキュメントをご覧ください。このドキュメントを確認するには、CMEK 統合テーブルでサービスを見つけ、作成するリソースタイプのリンクにアクセスします。

Compute Engine リソースでの Autokey の使用

Autokey では、作成中のリソースと同じ場所に、ディスク、イメージ、マシンイメージごとに新しい鍵が作成されます。

Autokey はスナップショット用の新しいキーを作成しません。スナップショットでは、ディスクの暗号化に使用したのと同じ鍵を使用する必要があります。Google Cloud コンソールを使用してスナップショットを作成すると、ディスクが使用する暗号鍵がスナップショットに自動的に適用されます。gcloud CLI、Terraform、または Cloud KMS API を使用してスナップショットを作成する場合は、ディスクの暗号化に使用した鍵を特定し、その鍵を使用してスナップショットを暗号化する必要があります。

スナップショットで CMEK を使用する方法については、CMEK で暗号化されたディスクからスナップショットを作成するをご覧ください。

保護された Compute Engine リソースを作成する

コンソール

ディスクを作成する手順は次のとおりです。

  1. Google Cloud コンソールで、[ディスク] ページに移動します。

    [ディスク] に移動

  2. [ディスクを作成] をクリックし、新しいディスクのプロパティを入力します。

  3. [暗号化] で、[Cloud KMS 鍵] を選択します。

  4. [鍵のタイプ] で [Cloud KMS with Autokey] を選択し、[新しい鍵をリクエスト] をクリックします。鍵が正常に作成され、使用できるようになると、メッセージが表示されます。

  5. ディスクの作成を終了するには、[作成] をクリックします。

同様の手順で、保護された VM インスタンス、イメージ、マシンイメージの各リソースを作成できます。

Terraform

次の Terraform サンプルでは、鍵ハンドルを作成し、返された鍵を使用して新しい永続ディスク リソースを保護します。

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "compute.googleapis.com/Disk"
}

resource "google_compute_disk" "persistent_disk" {
  project = "RESOURCE_PROJECT_ID"
  name    = "DISK_NAME"
  type    = "pd-ssd"
  zone    = "ZONE"
  size    = 30
  physical_block_size_bytes = 4096
  disk_encryption_key {
    kms_key_self_link = google_kms_key_handle.my_key_handle.kms_key
  }
}

次のように置き換えます。

  • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
  • KEY_HANDLE: 鍵ハンドルに使用する ID。
  • LOCATION: 保護されたリソースを作成するロケーション。
  • DISK_NAME: 新しいディスクの名前。
  • ZONE: 保護されたリソースのゾーン。これは、リソースを作成するロケーション内のゾーンである必要があります。たとえば、ロケーション us-central1 にリソースを作成する場合、ゾーンは us-central1-a にできます。

API

  1. KeyHandle を作成して、新しい Cloud KMS 鍵をリクエストします。

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • RESOURCE_TYPE: 作成するリソースのタイプ(例: compute.googleapis.com/Disk)。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    出力の OPERATION_ID をメモに残しておきます。この値は、作成された鍵のリソース ID を取得するために必要です。

  2. 鍵ハンドルに関連付けられた Cloud KMS 鍵を見つけます。

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • OPERATION_ID: 前のステップの出力の鍵ハンドルのリクエスト オペレーションの ID。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    出力の kmsKey 要素の値は、このリソースに対して Autokey によって作成された鍵の完全なリソース ID です。このリソース ID は、他の Cloud KMS リソースのリソース ID と同じように使用できます。

  3. gcloud compute disks create コマンドを使用し、--kms-key フラグを指定して暗号化されたディスクを作成します。

    gcloud compute disks create DISK_NAME \
      --kms-key projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    次のように置き換えます。

    • DISK_NAME: 新しいディスクの名前。
    • KEY_PROJECT_ID: 鍵プロジェクトのプロジェクト ID。
    • LOCATION: リソースを作成するロケーション。
    • KEY_NAME: 前の手順の出力で返された鍵の名前。

Cloud Storage リソースでの Autokey の使用

Autokey は、バケットと同じロケーションに新しい鍵を作成します。Autokey によって作成された鍵が、バケットのデフォルト鍵として割り当てられます。

Autokey はオブジェクトの鍵を作成しません。デフォルトでは、バケット内に作成されたオブジェクトはバケットのデフォルト鍵を使用します。バケットのデフォルト鍵以外の鍵を使用してオブジェクトを暗号化する場合は、手動で CMEK を作成し、オブジェクトの作成時にその鍵を使用できます。

バケットに割り当てられているデフォルトの鍵を変更する場合は、既存の CMEK (Autokey によって作成された鍵を含む)を使用できます。

保護された Cloud Storage リソースを作成する

コンソール

  1. Google Cloud コンソールで、[バケットの作成] ページに移動します。

    [バケットの作成] に移動

  2. [オブジェクト データを保護する方法を選択する] が表示されるまで、新しいバケットを作成する手順を行います。

  3. [オブジェクト データを保護する方法を選択する] で、[データ暗号化] セクションを開き、[Cloud KMS 鍵] を選択します。

  4. [鍵のタイプ] で [Cloud KMS with Autokey] を選択し、[新しい鍵をリクエスト] をクリックします。鍵が正常に作成され、使用できるようになると、メッセージが表示されます。

  5. [作成] をクリックして、バケットの作成を終了します。

Terraform

次の Terraform サンプルでは、鍵ハンドルを作成し、返された鍵を使用して新しいストレージ バケットを保護します。

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "storage.googleapis.com/Bucket"
}

resource "google_storage_bucket" "simple_bucket_name" {
  name                        = "BUCKET_NAME"
  location                    = "LOCATION"
  force_destroy               = true
  project                     = "RESOURCE_PROJECT_ID"
  uniform_bucket_level_access = true
  encryption {
    default_kms_key_name      = google_kms_key_handle.my_key_handle.kms_key
  }
}

次のように置き換えます。

  • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
  • KEY_HANDLE: 鍵ハンドルに使用する ID。
  • LOCATION: 保護されたリソースを作成するロケーション。
  • BUCKET_NAME: 新しいバケットの名前。

API

  1. KeyHandle を作成して、新しい Cloud KMS 鍵をリクエストします。

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • RESOURCE_TYPE: 作成するリソースのタイプ(例: storage.googleapis.com/Bucket)。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    出力の OPERATION_ID をメモに残しておきます。作成した鍵のリソース ID を取得するには、この値が必要です。

  2. 鍵ハンドルに関連付けられた Cloud KMS 鍵を見つけます。

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • OPERATION_ID: 前のステップの出力の鍵ハンドルのリクエスト オペレーションの ID。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    出力の kmsKey 要素の値は、このリソースに対して Autokey によって作成された鍵の完全なリソース ID です。このリソース ID は、他の Cloud KMS リソースのリソース ID と同じように使用できます。

  3. --default-encryption-key フラグを指定し、gcloud storage buckets create コマンドを使用して暗号化されたバケットを作成します。

    gcloud storage buckets create gs://BUCKET_NAME \
        --location=LOCATION \
        --default-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    次のように置き換えます。

    • BUCKET_NAME: 新しいバケットの名前。バケット名はバケット名の要件を満たしている必要があります。
    • LOCATION: バケットを作成するロケーション。
    • KEY_PROJECT_ID: 鍵プロジェクトのプロジェクト ID。
    • LOCATION: リソースを作成するロケーション。
    • KEY_NAME: 前の手順の出力で返された鍵の名前。

BigQuery リソースでの Autokey の使用

Cloud KMS は、BigQuery の複数のエディションで利用できます。Autokey を使用して BigQuery リソースを保護する前に、使用している BigQuery のエディションが Cloud KMS と互換性があることを確認してください。BigQuery エディションの詳細については、BigQuery のエディションの概要をご覧ください。

新しいデータセットごとに、Autokey はリソース自体と同じ場所に新しい鍵を作成します。これがデータセットのデフォルト鍵になります。

Autokey は、テーブル、クエリ、一時テーブル、モデルの鍵を作成しません。デフォルトでは、これらのリソースはデータセットのデフォルト鍵によって保護されます。データセットのデフォルト鍵以外の鍵を使用してデータセット内のリソースを保護する場合は、CMEK を手動で作成し、リソースの作成時にその鍵を使用できます。

データセット内に存在しないクエリと一時テーブルの場合は、プロジェクトのデフォルト鍵を使用します。BigQuery リソースを含むプロジェクト内のロケーションごとに、異なるプロジェクトのデフォルト鍵を使用します。プロジェクトのデフォルト鍵の使用方法について詳しくは、プロジェクトのデフォルト鍵を設定するをご覧ください。

BigQuery で CMEK を使用する方法について詳しくは、顧客管理の Cloud KMS 鍵をご覧ください。

保護された BigQuery リソースを作成する

コンソール

Autokey を使用して BigQuery データセットを作成する前に、必要な権限があることを確認してください。データセット作成の詳細については、データセットの作成をご覧ください。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [詳細オプション] > [暗号化] が表示されるまで、データセットの作成の手順に従って操作します。

  3. [暗号化] で、[Cloud KMS 鍵] を選択します。

  4. [鍵のタイプ] で [Cloud KMS with Autokey] を選択し、[新しい鍵をリクエスト] をクリックします。鍵が正常に作成され、使用できるようになると、メッセージが表示されます。

  5. データセットの作成を終了するには、[データセットの作成] をクリックします。

Terraform

次の Terraform サンプルでは、鍵ハンドルを作成し、返された鍵を使用して新しいデータセットを保護します。

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "LOCATION"
  resource_type_selector = "bigquery.googleapis.com/Dataset"
}

resource "google_bigquery_dataset" "dataset" {
  dataset_id                  = "DATASET_ID"
  friendly_name               = "DATASET_NAME"
  description                 = "DATASET_DESCRIPTION"
  location                    = "LOCATION"
  default_table_expiration_ms = 3600000

  default_encryption_configuration {
    kms_key_name = google_kms_key_handle.my_key_handle.kms_key
  }
}

次のように置き換えます。

  • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
  • LOCATION: 保護されたリソースを作成するロケーション。
  • DATASET_ID: 新しいデータセットに使用する ID。
  • DATASET_NAME: 新しいデータセットのわかりやすい名前。
  • DATASET_DESCRIPTION: 新しいデータセットの説明。

API

  1. KeyHandle を作成して、新しい Cloud KMS 鍵をリクエストします。

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • RESOURCE_TYPE: 作成するリソースのタイプ(例: bigquery.googleapis.com/Dataset)。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    出力の OPERATION_ID をメモに残しておきます。作成した鍵のリソース ID を取得するには、この値が必要です。

  2. 鍵ハンドルに関連付けられた Cloud KMS 鍵を見つけます。

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • OPERATION_ID: 前のステップの出力の鍵ハンドルのリクエスト オペレーションの ID。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    出力の kmsKey 要素の値は、このリソースに対して Autokey によって作成された鍵の完全なリソース ID です。このリソース ID は、他の Cloud KMS リソースのリソース ID と同じように使用できます。

  3. --destination_kms_key フラグを指定し、bq mk コマンドを使用して暗号化されたデータセットを作成します。

    bq --location=LOCATION mk \
        --dataset \
        --default_kms_key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME \
        --default_table_expiration=TABLE_EXPIRATION \
        --description="DATASET_DESCRIPTION" \
        RESOURCE_PROJECT_ID:DATASET_ID
    

    次のように置き換えます。

    • LOCATION: データセットを作成するロケーション。
    • KEY_PROJECT_ID: 鍵プロジェクトのプロジェクト ID。
    • KEY_NAME: 前の手順の出力で返された鍵の名前。
    • TABLE_EXPIRATION: このデータセット内の新しいテーブルのデフォルトの存続期間(秒数)です。
    • DATASET_DESCRIPTION: 新しいデータセットの説明。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • DATASET_ID: 作成するデータセットの ID。

    bq ツールの詳細については、bq コマンドライン ツールを使ってみるをご覧ください。

Secret Manager リソースでの Autokey の使用

Autokey は、同じプロジェクトとロケーション内のすべての Secret を保護するための単一の鍵を作成します。鍵がローテーションされると、プロジェクトに追加された新しい Secret は鍵の新しいメイン バージョンを使用します。

Terraform または REST API を使用してリソースを作成する場合、Secret Manager と互換性があるのは Cloud KMS Autokey のみです。

保護された Secret Manager リソースを作成する

Terraform

次の Terraform サンプルは、鍵ハンドルを作成し、返された鍵を使用して、自動レプリケーションで新しい Secret を保護します。

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "global"
  resource_type_selector = "secretmanager.googleapis.com/Secret"
}

resource "google_secret_manager_secret" "my_secret" {
  secret_id = "SECRET_ID"

  replication {
    auto {
      customer_managed_encryption {
        kms_key_name = google_kms_key_handle.my_key_handle.kms_key
      }
    }
  }
}

次のように置き換えます。

  • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
  • SECRET_ID: 新しい Secret に使用する ID。

鍵ハンドルがすでに存在する同じプロジェクトとロケーションで Secret の鍵ハンドルを作成しようとすると、エラー メッセージで既存の鍵ハンドルの詳細が返されます。その場合は、鍵ハンドルを作成するブロックが 1 つだけであることを確認してください。ID(KEY_HANDLE)を使用して鍵ハンドルを再利用すると、鍵を共有する追加の Secret を作成できます。

API

  1. KeyHandle を作成して、新しい Cloud KMS 鍵をリクエストします。

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • RESOURCE_TYPE: 作成するリソースのタイプ(例: secretmanager.googleapis.com/Secret)。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    出力の OPERATION_ID をメモに残しておきます。作成した鍵のリソース ID を取得するには、この値が必要です。

    鍵ハンドルがすでに存在する同じプロジェクトとロケーションで Secret の鍵ハンドルを作成しようとすると、エラー メッセージで既存の鍵ハンドルの詳細が返されます。この場合は、次の手順をスキップして existingKmsKey フィールドの鍵のリソース ID を使用して新しい Secret を保護します。

  2. 鍵ハンドルに関連付けられた Cloud KMS 鍵を見つけます。

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    次のように置き換えます。

    • USER_PROJECT: このリクエストに関連する料金の請求先となるプロジェクト。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。
    • LOCATION: 保護されたリソースを作成するロケーション。
    • OPERATION_ID: 前のステップの出力の鍵ハンドルのリクエスト オペレーションの ID。

    出力は次のようになります。

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    出力の kmsKey 要素の値は、このリソースに対して Autokey によって作成された鍵の完全なリソース ID です。このリソース ID は、他の Cloud KMS リソースのリソース ID と同じように使用できます。

  3. --kms-key-name フラグを指定して gcloud secrets create コマンドを使用し、自動レプリケーションで暗号化された Secret を作成します。

    gcloud secrets create "SECRET_ID" \
        --replication-policy "automatic" \
        --kms-key-name "projects/KEY_PROJECT_ID/locations/global/keyRings/autokey/cryptoKeys/KEY_NAME" \
        --project "RESOURCE_PROJECT_ID"
    

    次のように置き換えます。

    • SECRET_ID: 新しい Secret に使用する ID。
    • KEY_PROJECT_ID: 鍵プロジェクトのプロジェクト ID。
    • KEY_NAME: 前の手順の出力で返された鍵の名前。
    • RESOURCE_PROJECT_ID: 保護されたリソースを作成する Autokey フォルダ内のリソース プロジェクトのプロジェクト ID。

次のステップ