GKE で独自の認証局と鍵を実行する


このページでは、お客様が管理する認証局(CA)と鍵を使用して Google Kubernetes Engine(GKE)クラスタ コントロール プレーンを構成する方法について説明します。このガイダンスは、認証情報の発行と署名を制御するための組織のコンプライアンス要件またはポリシー要件があるセキュリティ管理者を対象としています。

このページでは、GKE のコントロール プレーンの一連のオプション機能について説明します。これらの機能を使用すると、コントロール プレーンのセキュリティ ポスチャーを確認したり、管理対象の鍵を使用してコントロール プレーンでの暗号化と認証情報の署名を構成したりといったタスクを実行できます。詳細については、control plane authority についてをご覧ください。

デフォルトでは、Google Cloud はマネージド コントロール プレーンにさまざまなセキュリティ対策を適用します。このページでは、コントロール プレーンの可視性と制御性をさらに高めるオプション機能について説明します。

次のコンセプトに精通している必要があります。

コントロール プレーンの認証情報コンポーネント

GKE クラスタは、X.509 証明書や ServiceAccount トークンなど、特定の CA と鍵を使用して、クラスタ内で認証情報を発行します。Cloud Key Management Service(Cloud KMS)で鍵を作成し、Certificate Authority Service(CA Service)で CA を作成し、Google Cloud マネージドの CA および鍵の代わりにこれらのリソースを使用するようにクラスタを構成できます。

作成する特定のコンポーネントの詳細については、セルフマネージド CA と鍵をご覧ください。

他の GKE control plane authority 機能での使用

GKE control plane authority は、セルフマネージド鍵に関連する次の機能を提供します。

目標

  • Cloud KMS で鍵を作成する
  • CA Service で CA を作成する
  • GKE サービス エージェントに Identity and Access Management(IAM)ロールを付与する
  • CA と鍵を使用する GKE クラスタを作成する
  • クラスタで CA と鍵を使用していることを確認する

費用

このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Make sure that billing is enabled for your Google Cloud project.

  5. Enable the Kubernetes Engine, Certificate Authority Service, and Cloud Key Management Service APIs:

    gcloud services enable container.googleapis.com privateca.googleapis.com cloudkms.googleapis.com
  6. Install the Google Cloud CLI.
  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Kubernetes Engine, Certificate Authority Service, and Cloud Key Management Service APIs:

    gcloud services enable container.googleapis.com privateca.googleapis.com cloudkms.googleapis.com
  10. 環境で GKE control plane authority 機能を使用できることを確認します。これらの機能を有効にするには、Google Cloud セールスチームにお問い合わせください。
  11. 認証情報の発行と使用を確実に追跡するには、次のデータアクセス監査ログが有効になっていることを確認します。
    • Cloud KMS: DATA_READ
    • CA Service: ADMIN_READADMIN_WRITE

    これらのログタイプを有効にするには、データアクセス監査ログを有効にするをご覧ください。

必要なロールと権限

独自の CA と鍵を実行するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

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

要件

GKE バージョン 1.31.1-gke.1846000 以降を使用する必要があります。

制限事項

次の制限が適用されます。

  • Cloud KMS の鍵のみを使用できます。別の KMS プロバイダや別の暗号化プロバイダは使用できません。
  • Cloud External Key Manager(Cloud EKM)鍵はサポートされていません。
  • 使用できるのは CA Service の CA のみです。

環境を準備する

このセクションでは、このチュートリアルで使用する Google Cloud プロジェクトを特定し、Cloud KMS で鍵を保持するキーリングを作成します。

プロジェクトを特定する

次のように、別々の Google Cloud プロジェクトを使用することをおすすめします。

  • 鍵プロジェクト: すべての鍵と CA が含まれます。
  • クラスタ プロジェクト: GKE クラスタが含まれます。

必要に応じて、鍵、CA、GKE クラスタに同じプロジェクトを使用することもできますが、組織内の暗号オペレーションを管理するチームとクラスタ オペレーションを管理するチームを分離するために、個別のプロジェクトを使用することをおすすめします。

キーリングを作成する

特定のクラスタのすべての鍵を保持するキーリングを鍵プロジェクト内に作成します。キーリングは、GKE クラスタと同じロケーションに作成する必要があります。

次のコマンドを実行します。

gcloud kms keyrings create KEY_RING_NAME \
    --location=us-central1 \
    --project=KEY_PROJECT_ID

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

  • KEY_RING_NAME: キーリングの名前。
  • KEY_PROJECT_ID: 鍵プロジェクトのプロジェクト ID。

鍵を作成する

サービス アカウントの鍵や CA などの認証局ごとに、Cloud KMS を使用して鍵を作成します。このセクションでは、GKE でクラスタ内の認証情報の署名と検証に使用する鍵を作成する方法について説明します。組織のニーズに応じて、これらの鍵に独自のプロパティを指定できます。詳細については、鍵を作成ページと projects.locations.keyRings.cryptoKeys API リファレンスをご覧ください。

Cloud KMS でこれらのリソースを作成する場合は、次の点を考慮してください。

  • 鍵プロジェクトに既存のキーリングがある場合は、そのキーリングを使用して、クラスタで使用する鍵をすべて保存できます。
  • レイテンシを最小限に抑えるには、クラスタと同じ Google Cloud ロケーションにキーリングを配置する必要があります。
  • 鍵の目的として asymmetric-signing を指定する必要があります。
  • 鍵のタイプに応じて、次のアルゴリズムを使用します。
    • ServiceAccount 署名鍵: rsa-sign-pkcs1-4096-sha256rsa-sign-pkcs1-3072-sha256 などの強力な RSA 署名 PKCS1 アルゴリズム。
    • 認証局の鍵: ec-sign-p256-sha256 などの強力なアルゴリズム。
  • Cloud HSM ハードウェア鍵はサポートされていますが、ほとんどのユースケースでは software の保護レベルで十分です。ハードウェア鍵の詳細については、Cloud HSM をご覧ください。
  • 鍵が破棄されるまでのデフォルトの期間は変更しないでください。
  • GKE では、クラスタで使用されている Cloud KMS 鍵(CA Service 鍵など)を削除できます。鍵または CA を削除する前に、リソースが未使用であることを確認してください。

鍵を作成するには、次のコマンドを実行します。

  1. Kubernetes ServiceAccount 署名鍵を作成します。この鍵は、クラスタの作成時にサービス アカウントの検証鍵としても指定します。

    gcloud kms keys create sa-signing-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=rsa-sign-pkcs1-4096-sha256 \
        --project=KEY_PROJECT_ID
    

    KEY_PROJECT_ID は、専用の鍵プロジェクトのプロジェクト ID に置き換えます。

  2. クラスタルート CA 鍵を作成します。

    gcloud kms keys create cluster-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    
  3. etcd ピアルート CA 鍵を作成します。

    gcloud kms keys create etcd-peer-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    
  4. etcd API ルート CA 鍵を作成します。

    gcloud kms keys create etcd-api-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    
  5. 集約ルート CA 鍵を作成します。

    gcloud kms keys create aggregation-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    

CA を作成する

各コントロール プレーン機能の鍵を作成した後、それぞれの鍵を使って、CA Service を使用して CA プールおよび対応するルート CA を作成します。

  1. クラスタ CA プールを作成します。

    gcloud privateca pools create cluster-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    

    --no-publish-crl フラグと --no-publish-ca-cert フラグは省略可能です。これらのフラグを省略すると、証明書が Cloud Storage バケットに公開されます。詳細については、CA プール内の CA の CA 証明書と CRL の公開を有効にするをご覧ください。

  2. クラスタルート CA を作成します。

    gcloud privateca roots create cluster-root-ca \
        --pool=cluster-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/cluster-ca-key/cryptoKeyVersions/1 \
        --subject="CN=cluster-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    

    ここで、ORGANIZATION は実際の組織名に置き換えます。

  3. etcd ピア CA プールを作成します。

    gcloud privateca pools create etcd-peer-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    
  4. etcd ピアルート CA を作成します。

    gcloud privateca roots create etcd-peer-root-ca \
        --pool=etcd-peer-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/etcd-peer-ca-key/cryptoKeyVersions/1 \
        --subject="CN=etcd-peer-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    
  5. etcd API CA プールを作成します。

    gcloud privateca pools create etcd-api-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    
  6. etcd API ルート CA を作成します。

    gcloud privateca roots create etcd-api-root-ca \
        --pool=etcd-api-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/etcd-api-ca-key/cryptoKeyVersions/1 \
        --subject="CN=etcd-api-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    
  7. 集約 CA プールを作成します。

    gcloud privateca pools create aggregation-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    
  8. 集約ルート CA を作成します。

    gcloud privateca roots create aggregation-root-ca \
        --pool=aggregation-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/aggregation-ca-key/cryptoKeyVersions/1 \
        --subject="CN=aggregation-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    

GKE サービス エージェントに IAM ロールを付与する

GKE サービス エージェントには、Cloud KMS および CA Service で作成したリソースへのアクセス権が必要です。サービス エージェントは、これらのリソースを使用して、クラスタ内の認証情報の署名、検証、発行を行います。次の IAM 事前定義ロールを使用できます。

これらのロールを GKE サービス エージェントに付与する手順は次のとおりです。

  1. クラスタ プロジェクトのプロジェクト番号を確認します。

    gcloud projects describe CLUSTER_PROJECT_ID \
        --format='value(projectNumber)'
    

    CLUSTER_PROJECT_ID は、実際のクラスタ プロジェクトのプロジェクト ID に置き換えます。

  2. 鍵を作成するで作成したサービス アカウント署名鍵に、Kubernetes Engine KMS 暗号鍵ユーザーのロールを付与します。

    gcloud kms keys add-iam-policy-binding sa-signing-key \
      --location=us-central1 \
      --keyring=KEY_RING_NAME \
      --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
      --role=roles/container.cloudKmsKeyUser \
      --project=KEY_PROJECT_ID
    

    CLUSTER_PROJECT_NUMBER は、鍵プロジェクトのプロジェクト番号に置き換えます。

  3. CA を作成するで作成した CA プールに、CA Service 証明書管理者のロールを付与します。

    gcloud privateca pools add-iam-policy-binding cluster-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools add-iam-policy-binding etcd-peer-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools add-iam-policy-binding etcd-api-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools add-iam-policy-binding aggregation-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    

新しいクラスタで CA と鍵を設定する

鍵、CA プール、ルート CA を作成し、GKE サービス エージェントに IAM ロールを付与したら、これらのリソースを使用する新しいクラスタを作成します。

クラスタ作成コマンドで指定するフラグには、次のリソースパスを値として指定する必要があります。

  • 鍵を作成するで作成したサービス アカウント署名鍵の Cloud KMS 内の鍵バージョンへのパス。このパスは、service-account-signing-keys フラグと service-account-verification-keys フラグに指定します。
  • CA を作成するで作成した各 CA プールのパス。

鍵と CA を使用するように新しいクラスタを構成する手順は次のとおりです。

  1. 有効になっている最新のサービス アカウント署名鍵バージョンのパスを確認します。

    gcloud kms keys versions list \
        --key=sa-signing-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1 \
        --project=KEY_PROJECT_ID \
        --filter="STATE=ENABLED" --sort-by=~ --format="value(name)" | sed 1q
    

    KEY_PROJECT_ID は、鍵プロジェクトのプロジェクト ID に置き換えます。

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

    projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
    
  2. 作成した各 CA プールのパスを確認します。

    gcloud privateca pools list --format="get(name)" \
        --project=KEY_PROJECT_ID
    

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

    projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool
    projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool
    projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool
    projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool
    

    出力に、GKE 用に作成したすべての CA プールが含まれていることを確認します。

クラスタを作成

このセクションでは、構成する GKE control plane authority 機能に応じて、さまざまなオプションを指定してクラスタを作成します。これらの機能は、クラスタの作成時にのみクラスタで構成できます。次のコマンドでは、Autopilot モードのクラスタを作成します。代わりに Standard モードのクラスタを作成するには、gcloud container clusters create コマンドに同じフラグを使用します。

  • このチュートリアルで作成した CA と鍵のみを構成するには、次のコマンドを実行します。

    gcloud container clusters create-auto example-cluster \
        --location=us-central1 \
        --project=CLUSTER_PROJECT_ID \
        --cluster-version=VERSION \
        --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
        --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
        --cluster-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
        --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
        --etcd-api-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
        --aggregation-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool
    

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

    • CLUSTER_PROJECT_ID: クラスタ プロジェクトのプロジェクト ID。
    • VERSION: クラスタの GKE バージョン。1.31.1-gke.1846000 以降である必要があります。
  • CA と鍵、コントロール プレーンのブートディスクの暗号化、etcd 暗号化を構成するには、次の操作を行います。

    1. etcd とコントロール プレーンのブートディスクを暗号化するに記載されているすべての鍵構成手順を実施します。
    2. クラスタで暗号鍵を使用するの手順に沿って、各鍵のパスを確認します。
    3. クラスタを作成します。

      gcloud container clusters create-auto example-cluster \
          --location=us-central1 \
          --project=CLUSTER_PROJECT_ID \
          --cluster-version=VERSION \
          --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
          --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
          --cluster-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
          --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
          --etcd-api-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
          --aggregation-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \
          --control-plane-disk-encryption-key=PATH_TO_DISK_KEY \
          --gkeops-etcd-backup-encryption-key=PATH_TO_ETCD_BACKUP_KEY
      

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

      • CLUSTER_PROJECT_ID: クラスタ プロジェクトのプロジェクト ID。
      • VERSION: クラスタの GKE バージョン。1.31.1-gke.1846000 以降である必要があります。
      • PATH_TO_DISK_KEY: ディスク暗号鍵のパス。
      • PATH_TO_ETCD_BACKUP_KEY: etcd 内部バックアップ暗号鍵のパス。

    これらのフラグは、新しい Standard モードのクラスタを作成する場合にも使用できます。

指定した鍵と CA をクラスタが使用していることを確認する

このセクションでは、クラスタの作成時に使用された鍵と CA を確認する方法について説明します。この確認は、Cloud Logging または Google Cloud CLI を使用して実行できます。

Logging を使用して鍵と CA を確認する

Logging を使用して鍵と CA を確認する手順は次のとおりです。

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. 次のクエリを指定します。

    resource.type="gke_cluster"
    resource.labels.cluster_name="CLUSTER_NAME"
    resource.labels.location="CLUSTER_LOCATION"
    protoPayload.serviceName="container.googleapis.com"
    protoPayload.methodName="google.container.v1.ClusterManager.CreateCluster"
    protoPayload.request.cluster.userManagedKeysConfig:*
    

    protoPayload.request.cluster.userManagedKeysConfig:* は、管理する鍵と CA を含むクラスタ作成ログの結果をフィルタします。

  3. [クエリを実行] をクリックします。

  4. 結果で、クラスタ作成ログを開きます。鍵と CA へのパスが、そのクラスタ用に作成したものと同じであることを確認します。

gcloud CLI を使用して鍵と CA を確認する

作成した CA と鍵をクラスタが使用していることを確認するには、次のコマンドを実行します。

gcloud container clusters describe example-cluster \
    --location=us-central1 \
    --project=CLUSTER_PROJECT_ID

出力には、次の例のように userManagedKeysConfig フィールドが含まれます。

# lines omitted for clarity
userManagedKeysConfig:
  sa-signing-key: projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
  sa-verification-key: projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
  cluster-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool
  etcd-peer-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool
  etcd-api-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool
  aggregation-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

プロジェクトを削除する

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

リソースを個別に削除する

  1. クラスタを削除します。

    gcloud container clusters delete example-cluster \
        --location=us-central1 \
        --project=CLUSTER_PROJECT_ID
    
  2. ルート CA を無効にします。

    gcloud privateca roots disable cluster-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots disable etcd-peer-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots disable etcd-api-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots disable aggregation-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \
        --project=KEY_PROJECT_ID
    
  3. ルート CA を削除します。

    gcloud privateca roots delete cluster-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots delete etcd-peer-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots delete etcd-api-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots delete aggregation-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \
        --project=KEY_PROJECT_ID
    
  4. CA プールを削除します。

    gcloud privateca pools delete cluster-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools delete etcd-peer-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools delete etcd-api-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools delete aggregation-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
  5. 鍵を削除します。

    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=sa-signing-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=cluster-ca-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=etcd-peer-ca-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=etcd-api-ca-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=aggregation-ca-key \
        --project=KEY_PROJECT_ID
    

Cloud KMS からキーリングを削除することはできません。なお、キーリングに追加費用は発生しません。

次のステップ