このドキュメントでは、Cloud Key Management Service リソースを完全に削除する方法について説明します。次の Cloud KMS リソースタイプは削除できます。
- キーリング
- キー
- 鍵バージョン
この操作は元に戻せません。リソース固有の制限事項については、このドキュメントの対応するセクションをご覧ください。
Cloud KMS では、破棄と削除は異なるオペレーションです。
破棄: 鍵バージョンを完全に無効にします。これには、指定された破棄期間後に、基盤となる鍵マテリアルを不可逆的に破棄することも含まれます。
DESTROYED状態の鍵バージョンは、暗号オペレーションに使用できず、課金されなくなります。データの暗号化に使用された鍵バージョンを破棄して、完全に復元できないようにするデータを暗号的に細分化できます。破棄された鍵バージョンは、Cloud KMS リソースのリストに引き続き含まれます。削除: Cloud de Confiance コンソール、Google Cloud CLI、Cloud Key Management Service API、クライアント ライブラリの Cloud KMS リソースのリストから、キーリング、鍵、鍵バージョンを削除します。アクティブでないキーリング、鍵、鍵バージョンが多数あるプロジェクトでは、削除することで検索と一覧表示の操作を効率化できます。キーリングを削除すると、その名前を再利用できるようになります。ただし、削除された CryptoKey の名前は再利用できません。再利用できない削除済みの CryptoKey 名のリストを表示するには、
retiredResources.listメソッドを使用します。
始める前に
Cloud KMS リソースの削除と表示に必要な権限を取得するには、鍵に対する Cloud KMS 管理者 (roles/cloudkms.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、Cloud KMS リソースの削除と表示に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Cloud KMS リソースを削除して表示するには、次の権限が必要です。
-
鍵バージョンを削除するには:
cloudkms.cryptoKeyVersions.delete -
鍵を削除するには:
cloudkms.cryptoKeys.delete -
キーリングを削除するには:
cloudkms.keyRings.delete -
削除されたリソースを表示するには:
-
cloudkms.retiredResources.get -
cloudkms.retiredResources.list
-
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
鍵バージョンを削除する
鍵バージョンは、DESTROYED、IMPORT_FAILED、GENERATION_FAILED のいずれかの状態であれば削除できます。鍵バージョンがインポートされた場合、インポートが失敗した場合にのみ削除できます。
鍵バージョンを完全に削除する手順は次のとおりです。
コンソール
Cloud de Confiance コンソールで、[鍵管理] ページに移動します。
削除する鍵と鍵バージョンを含むキーリングの名前をクリックします。
削除する鍵バージョンを含む鍵をクリックします。
[バージョン] テーブルで、削除する鍵バージョンを見つけて、 [その他の操作] をクリックします。
[その他の操作] メニューで [削除] をクリックします。
確認プロンプトで、鍵名を入力して [削除] をクリックします。
gcloud
鍵バージョンを削除するには、次のコマンドを実行します。
gcloud kms keys versions delete KEY_VERSION \
--location=LOCATION \
--keyring=KEY_RING \
--key=KEY_NAME
次のように置き換えます。
KEY_VERSION: 完全に削除する鍵バージョンの番号。指定された鍵バージョンは、DESTROYED、IMPORT_FAILED、GENERATION_FAILEDのいずれかの状態である必要があります。LOCATION: キーリングの Cloud KMS のロケーションKEY_RING: 鍵を含むキーリングの名前。KEY_NAME: 完全に削除する鍵バージョンを含む鍵の名前。
Go
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Java
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Python
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
API
鍵バージョンを削除するには、
cryptoKeyVersions.deleteメソッドを呼び出します。このメソッドは、鍵バージョンが削除されたことを確認するためにポーリングできる長時間実行オペレーションを返します。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION" \ --request "DELETE" \ --header "authorization: Bearer TOKEN"
次のように置き換えます。
PROJECT_ID: キーリングを含むプロジェクトの ID。LOCATION: キーリングの Cloud KMS のロケーションKEY_RING: 鍵を含むキーリングの名前。KEY_NAME: 完全に削除する鍵バージョンを含む鍵の名前。KEY_VERSION: 完全に削除する鍵バージョンの番号。指定された鍵バージョンは、DESTROYED、IMPORT_FAILED、GENERATION_FAILEDのいずれかの状態である必要があります。
コマンドの出力は
Operationを返します。次のステップでは、オペレーションのnameが必要です。鍵バージョンが削除されたことを確認するには、
operations.getメソッドを呼び出します。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN"次のように置き換えます。
PROJECT_ID: キーリングを含むプロジェクトの ID。LOCATION: キーリングの Cloud KMS のロケーションOPERATION_NAME: 前のメソッドから返されたオペレーションの名前。
このメソッドの出力で
doneがtrueと表示されている場合、オペレーションは完了しています。errorが表示されない場合、鍵バージョンは完全に削除されています。
鍵を削除する
鍵を削除できるのは、次の条件を満たしている場合です。
- 鍵に、まだ削除されていない鍵バージョンが含まれていない。
- 鍵に自動鍵のローテーションがスケジュールされていない。
- 鍵が Cloud KMS Autokey によって作成されていない。
鍵を完全に削除する手順は次のとおりです。
コンソール
Cloud de Confiance コンソールで、[鍵管理] ページに移動します。
削除する鍵を含むキーリングの名前をクリックします。
削除するキーの行で、 [キーの操作] をクリックし、[削除] をクリックします。
確認プロンプトで、鍵名を入力して [削除] をクリックします。
gcloud
鍵を削除するには、次のコマンドを実行します。
gcloud kms keys delete KEY_NAME \
--location=LOCATION \
--keyring=KEY_RING
次のように置き換えます。
KEY_NAME: 完全に削除する鍵の名前。鍵には、まだ削除されていない鍵バージョンが含まれていてはなりません。また、Autokey によって作成された鍵であってはなりません。LOCATION: キーリングの Cloud KMS のロケーションKEY_RING: 鍵を含むキーリングの名前。
Go
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Java
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Python
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
API
鍵を削除するには、
cryptoKey.deleteメソッドを呼び出します。このメソッドは、ポーリングして鍵が削除されたことを確認できる長時間実行オペレーションを返します。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \ --request "DELETE" \ --header "authorization: Bearer TOKEN"
次のように置き換えます。
PROJECT_ID: キーリングを含むプロジェクトの ID。LOCATION: キーリングの Cloud KMS のロケーションKEY_RING: 鍵を含むキーリングの名前。KEY_NAME: 完全に削除する鍵の名前。鍵には、まだ削除されていない鍵バージョンが含まれていてはなりません。また、Autokey によって作成された鍵であってはなりません。
コマンドの出力は
Operationを返します。次のステップでは、オペレーションのnameが必要です。鍵が削除されたことを確認するには、
operations.getメソッドを呼び出します。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN"次のように置き換えます。
PROJECT_ID: キーリングを含むプロジェクトの ID。LOCATION: キーリングの Cloud KMS のロケーションOPERATION_NAME: 前のメソッドで返されたオペレーションの名前。
このメソッドの出力で
doneがtrueと表示されている場合、オペレーションは完了しています。errorが指定されていない場合、鍵は完全に削除されています。
キーリングを削除する
キーリングは、次の条件を満たしている場合に削除できます。
- キーリング内のすべての鍵を削除する必要があります。
- キーリング内のすべてのインポート ジョブが期限切れになっている必要があります。
キーリングを削除すると、約 5 ~ 10 分以内にキーリング名を再利用できるようになります。
キーリングを完全に削除する手順は次のとおりです。
コンソール
Cloud de Confiance コンソールで、[鍵管理] ページに移動します。
削除するキーリングの行で、 [キーリングのアクション] をクリックし、[削除] をクリックします。
確認プロンプトで、キーリング名を入力して [削除] をクリックします。
gcloud
キーリングを削除するには、次のコマンドを実行します。
gcloud kms keyrings delete KEY_RING \
--location=LOCATION \
次のように置き換えます。
KEY_RING: 完全に削除するキーリングの名前。キーリングには、ACTIVE状態の鍵やインポート ジョブが含まれていない必要があります。LOCATION: キーリングの Cloud KMS のロケーション
API
キーリングを削除するには、
keyRings.deleteメソッドを呼び出します。このメソッドは、キーリングが削除されたことを確認するためにポーリングできる長時間実行オペレーションを返します。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING" \ --request "DELETE" \ --header "authorization: Bearer TOKEN"
次のように置き換えます。
PROJECT_ID: キーリングを含むプロジェクトの ID。LOCATION: キーリングの Cloud KMS のロケーションKEY_RING: 完全に削除するキーリングの名前。キーリングには、ACTIVE状態の鍵やインポート ジョブが含まれていない必要があります。
コマンドの出力は
Operationを返します。次のステップでは、オペレーションのnameが必要です。キーリングが削除されたことを確認するには、
operations.getメソッドを呼び出します。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN"次のように置き換えます。
PROJECT_ID: キーリングを含むプロジェクトの ID。LOCATION: キーリングの Cloud KMS のロケーションOPERATION_NAME: 前のメソッドで返されたオペレーションの名前。
このメソッドの出力で
doneがtrueと表示されている場合、オペレーションは完了しています。errorが表示されない場合、キーリングは完全に削除されています。
廃止されたリソースの名前を表示する
削除された鍵の名前は、同じCloud de Confiance プロジェクトで再利用できません。これにより、2 つの異なる鍵が同じリソース識別子を持つことを防ぎます。削除された鍵の名前は retiredResources オブジェクトに保存されます。retiredResources をクエリして、新しい Cloud KMS リソースに再利用できない名前を表示できます。
廃止されたすべてのリソースのリストを表示する手順は次のとおりです。
gcloud
次のコマンドを実行します。
gcloud kms retired-resources list \
--location=LOCATION
次のように置き換えます。
LOCATION: 廃止されたリソースを表示するロケーション。
Go
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Java
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Python
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
API
retiredResources.list メソッドを使用します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/" \
--request "GET" \
--header "authorization: Bearer TOKEN"
次のように置き換えます。
PROJECT_ID: 廃止されたリソースを表示するプロジェクトの ID。LOCATION: 廃止されたリソースを表示するロケーション。
個々の廃止されたリソースのメタデータを表示する手順は次のとおりです。
gcloud
次のコマンドを実行します。
gcloud kms retired-resources describe RETIRED_RESOURCE \
--location=LOCATION
次のように置き換えます。
RETIRED_RESOURCE: 表示するリソースの名前。LOCATION: 廃止されたリソースを表示するロケーション。
Go
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Java
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Python
Cloud KMS 用のクライアント ライブラリをインストールして使用する方法については、Cloud KMS クライアント ライブラリをご覧ください。
Cloud KMS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
API
retiredResources.get メソッドを使用します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/RETIRED_RESOURCE" \
--request "GET" \
--header "authorization: Bearer TOKEN"
次のように置き換えます。
PROJECT_ID: 廃止されたリソースを表示するプロジェクトの ID。LOCATION: 廃止されたリソースを表示するロケーション。RETIRED_RESOURCE: 表示するリソースの名前。
メソッドの出力には、resourceType、deleteTime、削除されたリソースの完全なリソース ID が含まれます。
次のステップ
- 鍵バージョンの破棄と復元の詳細を確認する。