このページでは、Cloud Key Management Service の鍵バージョンを永続的に破棄するようにスケジュールする方法について説明します。Cloud KMS では、データの暗号化、復号、署名、検証に使用する暗号鍵マテリアルが、鍵バージョンに保存されています。鍵には、0 個以上の鍵バージョンがあります。鍵をローテーションすると、新しい鍵バージョンが作成されます。
鍵バージョンを破棄すると、鍵マテリアルが永続的に削除されます。鍵バージョンを破棄しても、鍵名や鍵バージョン番号などの他の詳細は削除されません。鍵が破棄された後は、その鍵バージョンで暗号化されたデータは復号できません。
鍵の破棄は元に戻せないため、Cloud KMS では鍵バージョンをすぐに破棄できません。代わりに、鍵バージョンの破棄をスケジュールします。鍵バージョンは、破棄がスケジュール済みの状態で、構成可能な一定期間にわたり維持されます。「破棄の予定」期間中は、鍵バージョンを復元して破棄をキャンセルできます。
デフォルトの破棄の予定期間は 30 日です。鍵の作成時に、カスタムの鍵の破棄の予定期間を設定できます。組織は、組織のポリシーで [鍵ごとの破棄の最小予定期間] 制約を設定することで、最小の破棄の予定期間を適用できます。
鍵へのアクセスは、Identity and Access Management(IAM)を使用して管理することもできます。IAM オペレーションの整合性は、数秒以内に確保されます。詳細については、IAM の使用をご覧ください。
鍵バージョンを無効にすることもできます。鍵を安全に破棄できるようにする手順の一環として、鍵バージョンの破棄をスケジュールする前に鍵バージョンを無効にすることをおすすめします。組織のポリシーによっては、鍵バージョンの破棄をスケジュールする前に、鍵バージョンを無効にすることが求められる場合があります。組織のポリシーを使用して鍵バージョンの破棄を制御する方法については、鍵バージョンの破棄を制御するをご覧ください。
このドキュメントの残りの部分では、破棄が直ちに行われるわけではありませんが、鍵の破棄をスケジュールすることを鍵の破棄と呼びます。
始める前に
リスクを把握する
鍵バージョンの破棄は永続的なオペレーションです。まだ必要な鍵バージョンを破棄すると、次のようなリスクがあります。
サービス停止: コンテナまたはインスタンスの起動に必要な鍵を破棄すると、サービスまたはアプリケーションを使用できなくなる場合があります。
永続的なデータ損失: データの暗号化に使用された鍵を破棄すると、そのデータにアクセスできなくなります。破棄された鍵で暗号化されたデータは、暗号細断とみなされます。鍵を破棄すると、暗号化されたリソースが永続的に削除されることがあります。
規制やコンプライアンスに関する問題: 保持期間が終了する前に保持期間の対象となるデータにアクセスする必要がある場合は、鍵を破棄すると、規制要件やコンプライアンス要件に違反する可能性があります。
必要なロール
鍵バージョンの破棄と復元に必要な権限を取得するには、管理者に Cloud KMS 管理者(roles/cloudkms.admin
)鍵に対する IAM ロールを付与するよう依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
鍵バージョンが使用されているかどうかを確認する
鍵バージョンを破棄する前に、次の手順で鍵バージョンが使用されているかどうかを確認します。
鍵の鍵使用状況の追跡の詳細を表示する。破棄する鍵バージョンで保護されているリソースがある場合は、別の鍵バージョンでリソースを再暗号化します。
キーバージョンを使用している可能性のあるサービスまたはアプリケーションのログを有効にします。
鍵を含む Cloud KMS プロジェクトでログを有効にします。
鍵バージョンを無効にする。鍵バージョンを無効にすると、その鍵バージョンは使用できなくなります。鍵バージョンが無効になっている場合、鍵バージョンを使用しようとすると失敗します。
無効にした鍵バージョンに依存するアプリケーションやサービスがないことを確認するまで、ログをモニタリングします。鍵バージョンへのアクセスに失敗したことを示すエラーがある場合は、別の鍵バージョンを使用するようにアプリケーションまたはリソースを構成します。
鍵バージョンを破棄する前にログをモニタリングする時間は、鍵のタイプ、使用パターン、感度レベルによって異なります。たとえば、四半期ごとに実行されるプロセスで使用される鍵バージョンを破棄する前に、そのプロセスが正常に完了するまで鍵バージョンを無効にしておきます。
該当するコンプライアンス要件と照らし合わせて、鍵の使用状況を確認します。たとえば、鍵バージョンとそれによって暗号化されたデータは、データの保持期間の対象となる場合があります。
次の手順により、鍵が引き続き必要であるかどうかを判断できます。ただし、鍵バージョンが不要になることは保証されません。鍵のバージョンの破棄によって悪影響が生じないように、組織は手順とガイドラインを実装する必要があります。
鍵バージョンを破棄する
鍵バージョンは、有効または無効のものを破棄できます。
Console
Google Cloud コンソールで [鍵管理] ページに移動します。
破棄をスケジュールする鍵バージョンの横にあるチェックボックスをオンにします。
ヘッダーの [破棄] をクリックします。
確認プロンプトで、鍵名を入力して [破棄をスケジュール] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys versions destroy KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION
以下を置き換えます。
KEY_VERSION
: 破棄する鍵バージョンのバージョン番号。KEY_NAME
: 鍵バージョンを破棄するキーの名前。KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーション
すべてのフラグと有効な値については、--help
フラグを指定してコマンドを実行してください。
C#
このコードを実行するには、まず C# 開発環境を設定し、Cloud KMS C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について学び、Cloud KMS PHP SDK をインストールしてください。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Cloud KMS Ruby SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
鍵バージョンを破棄するには、CryptoKeyVersions.destroy メソッドを呼び出します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION:destroy" \ --request "POST" \ --header "authorization: Bearer TOKEN"
鍵バージョンを破棄できない場合は、破棄する前に鍵バージョンを無効にする必要があることがあります。鍵バージョンを破棄する前に、無効にしてみてください。
破棄リクエストを送信すると、鍵バージョンの状態が「破棄の予定」になります。キーの後構成された破棄がスケジュール済みの期間が過ぎると、鍵バージョンの状態が破棄されます。これはアクティブ システムから鍵マテリアルの論理的な削除が開始されたことを意味し、鍵のマテリアルをお客様が復元することはできません。鍵マテリアルは、スケジュールされた破棄時刻から最大 45 日間 Google システムに残ることが可能です。
鍵バージョンの破棄がスケジュールされたときにアラートを受け取るには、Cloud KMS での Cloud Monitoring の使用をご覧ください。
破棄された鍵バージョンは、課金対象のリソースではありません。
外部鍵の破棄
Cloud EKM 鍵と外部鍵の関連付けを完全に削除するには、鍵バージョンを破棄します。破棄がスケジュール済みの期間が経過すると、鍵は破棄されます。鍵バージョンが破棄された後は、Cloud EKM 鍵バージョンで暗号化されたデータの暗号化やデータの復号はできなくなります。
Cloud KMS で手動で管理されている鍵のバージョンを破棄しても、外部鍵マネージャーの鍵は変更されません。まず Google Cloud で鍵または鍵バージョンを破棄することをおすすめします。Cloud EKM 鍵バージョンが破棄されたら、外部鍵マネージャーで鍵マテリアルを破棄できます。
Cloud KMS で調整された外部鍵バージョンを破棄すると、まず Google Cloud で鍵バージョンが破棄された後、EKM に破棄リクエストが送信されて外部鍵マテリアルが破棄されます。
鍵バージョンを復元する
鍵バージョンの状態の破棄が「破棄の予定」期間中は、復元リクエストを送信して鍵バージョンを復元できます。
Console
Google Cloud コンソールで、[鍵の管理] ページに移動します。
復元にする鍵バージョンの鍵が含まれるキーリング名をクリックします。
復元する鍵バージョンの鍵をクリックします。
復元する鍵バージョンの横にあるチェックボックスをオンにします。
ヘッダーの [復元] をクリックします。
確認プロンプトで [復元] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys versions restore key-version \ --key key \ --keyring key-ring \ --location location
key-version は、復元する鍵のバージョンに置き換えます。key を鍵の名前に置き換えます。key-ring は、鍵が配置されているキーリングの名前に置き換えます。location をキーリングの Cloud KMS の場所に置き換えます。
すべてのフラグと有効な値については、--help
フラグを指定してコマンドを実行してください。
C#
このコードを実行するには、まず C# 開発環境を設定し、Cloud KMS C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について学び、Cloud KMS PHP SDK をインストールしてください。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Cloud KMS Ruby SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
鍵バージョンを復元するには、CryptoKeyVersions.restore メソッドを呼び出します。
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-id/cryptoKeys/crypto-key-id/cryptoKeyVersions/version-id:restore" \ --request "POST" \ --header "authorization: Bearer token"
復元リクエストが完了すると、鍵バージョンの状態は無効になります。使用する前に、鍵を有効にする必要があります。
必要な IAM 権限
鍵バージョンを破棄するには、呼び出し元に、鍵、キーリング、プロジェクト、フォルダ、または組織に対する cloudkms.cryptoKeyVersions.destroy
IAM 権限が必要です。
鍵バージョンを復元するには、呼び出し元に cloudkms.cryptoKeyVersions.restore
権限が必要です。
これらの権限は、Cloud KMS 管理者のロール(roles/cloudkms.admin
)に付与されます。
削除のタイムライン
Cloud KMS は、予定された破棄時間から 45 日以内にすべての Google インフラストラクチャから顧客鍵マテリアルの削除を確約します。これには、アクティブ システムとデータセンターのバックアップの両方からのデータの削除が含まれます。その他のお客様のデータには、180 日間の標準 Google Cloud 削除タイムラインが適用されます。