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


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

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

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

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

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

GKE クラスタは、特定の CA と鍵を使用して、クラスタ内の認証情報(X.509 証明書や ServiceAccount トークンなど)を発行します。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 サービス: 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 署名 PKCS1 アルゴリズム(rsa-sign-pkcs1-4096-sha256rsa-sign-pkcs1-3072-sha256 など)。
    • 認証局の鍵: 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 コントロール プレーン権限機能に応じて、さまざまなオプションを指定してクラスタを作成します。これらの機能は、クラスタの作成時にのみクラスタで構成できます。次のコマンドは、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.v(1|1alpha1|1beta1).ClusterManager.CreateCluster"
    protoPayload.request.cluster.userManagedKeysConfig:*
    

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

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

結果で、クラスタ作成ログを開きます。鍵と CA へのパスが、そのクラスタ用に作成したものと同じであることを確認します。次の例をご覧ください。

# lines omitted for clarity
userManagedKeysConfig: {
  aggregationCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool"
  clusterCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool"
  etcdApiCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool"
  etcdPeerCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool"
  serviceAccountSigningKeys: [
    0: "projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
  ]
  serviceAccountVerificationKeys: [
    0: "projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
  ]
}

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 からキーリングを削除することはできません。ただし、キーリングには追加料金はかかりません。

次のステップ