オブジェクト階層

Cloud Key Management Service では、アクセス制御を便利かつ的確に管理するために設計された階層構造に、暗号鍵を格納します。この構造のリソースへのアクセスは、Cloud IAM によって管理されます。

この階層の上から下へのレベルは次のとおりです。

  1. プロジェクト
  2. ロケーション
  3. キーリング
  4. 鍵バージョン

プロジェクト

Cloud KMS リソースは、他のすべての Google Cloud Platform リソースと同様にプロジェクトに属します。つまり、Cloud KMS リソースを含むプロジェクトの IAM の基本の役割が付与されたアカウントには、これらのリソースに対応する権限があります。そのため、他の GCP リソースとは別のプロジェクトで Cloud KMS を実行することができます。

ロケーション

プロジェクト内の Cloud KMS リソースは、複数のロケーションに作成できます。ロケーションとは、特定のリソースに関する Cloud KMS へのリクエストが処理されるデータセンターの地理的なロケーションと、対応する暗号鍵が格納されるデータセンターの地理的なロケーションを表します。

Cloud KMS リソースには global と呼ばれる特別なロケーションがあります。global ロケーションに作成された Cloud KMS リソースは、複数のデータセンターから使用できます。

Cloud KMS リソースをホストするロケーションのネットワーク パフォーマンスへの影響については、Cloud KMS のロケーションをご覧ください。

キーリング

リソース

キーリングとは、組織化するために鍵をグループ化したものです。キーリングは GCP プロジェクトに属し、特定の場所に存在します。 は、その鍵を含むキーリングから権限を継承します。関連する権限を持つ鍵をキーリングにグループ化すると、個別に処理しなくても、キーリング レベルでこれらの鍵に対する権限の付与、取り消し、変更を行うことができます。

キーリングのリソース ID

一部の API 呼び出しと gcloud コマンドライン ツールのコマンドでは、キーリングのリソース ID(KeyRing の完全修飾名)が必要な場合があります。この値の形式は次のとおりで、大文字と小文字が区別されます。

projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]

GCP Console を使用して鍵リングのリソース ID を取得できます。

  1. GCP Console で [暗号鍵] ページを開きます。

    [暗号鍵] ページを開く

  2. リソース ID の取得対象のキーリングについて、その他アイコン(3 つの点が縦に並んだアイコン)をクリックします。

  3. [リソース ID をコピー] をクリックします。キーリングのリソース ID がクリップボードにコピーされます。

鍵とは、特定の目的に使用される暗号鍵を表す名前付きオブジェクトです。鍵マテリアル(暗号化に使用される実際のビット)は、新しい鍵バージョンが作成されるたびに随時変更されます。

鍵は、データのコーパスの一部を保護するために使用されます。同じ鍵でファイルのコレクションを暗号化でき、その鍵に対する復号権限を持つユーザーは、これらのファイルを復号できます。

鍵のリソース ID

一部の API 呼び出しと gcloud コマンドライン ツールのコマンドでは、鍵のリソース ID(CryptoKey の完全修飾名)が必要な場合があります。この値の形式は次のとおりで、大文字と小文字が区別されます。

projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]

GCP Console を使用して、鍵のリソース ID を取得できます。

  1. GCP Console で [暗号鍵] ページを開きます。

    [暗号鍵] ページを開く

  2. 鍵を含むキーリングの名前をクリックします。

  3. リソース ID の取得対象の鍵について、その他アイコン(3 つの点が縦に並んだアイコン)をクリックします。

  4. [リソース ID をコピー] をクリックします。鍵のリソース ID がクリップボードにコピーされます。

鍵バージョン

鍵バージョンとは、ある時点で鍵に関連付けられた鍵のマテリアルを表現したものです。それぞれの鍵には複数のバージョンがある場合がありますが、少なくとも 1 つは存在する必要があります。バージョンは、1 を起点として順番に番号が付けられます。

暗号化された一連のファイルの例に戻りますが、同じ鍵で暗号化されたファイルでも、異なる鍵バージョンで暗号化されている可能性があります。たとえば、バージョン 1 で暗号化されたファイルと、バージョン 2 で暗号化されたファイルが存在する場合があります。これらのファイルのいずれかを Cloud KMS で復号する場合は、それを暗号化した(特定のバージョンではなく)鍵の名前を指定します。暗号化に使用されたバージョンは Cloud KMS によって自動的に特定され、そのバージョンが有効な場合は、それを使用してファイルが復号されます。

鍵バージョンに関連付けられた鍵のマテリアルには「型」があり、鍵の長さとそれに使用されるアルゴリズムを示します。現在は、すべての鍵が 256 ビットの Advanced Encryption Standard(AES-256)鍵であり、Galois Counter Mode(GCM)で使用されています。Cloud KMS では確率論的暗号化を使用しているため、同じ鍵バージョンで再度暗号化された同じプレーン テキストが同じ暗号テキストに暗号化されることはありません。現在、鍵のモードは Google の API では公開されていません。

鍵バージョンには、有効、無効、破棄がスケジュール済み、破棄などの状態があります。鍵バージョンは、そのバージョンが明示的に無効、破棄、破棄がスケジュール済みの状態に移行するまで、復号に使用できます。

セキュリティ上の理由から、鍵バージョンによって表される生の暗号鍵マテリアルは表示およびエクスポートできません。これを使用できるのは、承認されたユーザーまたはアプリケーションが Cloud KMS サービスを呼び出すときにデータを暗号化または復号する場合のみです。

対称鍵には、どの時点においてもメインのバージョンがあります。これは、Cloud KMS がデータの暗号化に使用するバージョンです。新しい鍵バージョンを作成し、そのバージョンをメインのバージョンにすることで、以前のバージョンで暗号化されたデータへのアクセスを失うことなく鍵をローテーションできます。非対称鍵にはメイン バージョンはありません。また、非対称鍵にはローテーションに関して対称鍵とは異なる考慮事項があります。

鍵バージョンのリソース ID

一部の API 呼び出しと gcloud コマンドライン ツールのコマンドでは、鍵バージョンのリソース ID(CryptoKeyVersion の完全修飾名)が必要になる場合があります。この値の形式は次のとおりで、大文字と小文字が区別されます。


projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]

GCP Console を使用して、鍵バージョンのリソース ID を取得できます。

  1. GCP Console で [暗号鍵] ページを開きます。

    [暗号鍵] ページを開く

  2. 鍵を含むキーリングの名前をクリックします。

  3. 鍵バージョンを含む鍵の名前をクリックします。

  4. リソース ID の取得対象の鍵バージョンについて、その他アイコン(3 つの点が縦に並んだアイコン)をクリックします。

  5. [リソース ID をコピー] をクリックします。鍵バージョンのリソース ID がクリップボードにコピーされます。

階層の例

選択する階層の種類は、ユースケース、アプリケーション、セキュリティ管理方法などによって異なります。

例 1

企業に複数のアプリケーションがあり、各アプリケーションには Cloud KMS で保護された機密データが含まれています。階層には、prodtestdev などの開発環境ごとにキーリングを含めることができます。各キーリングには、アプリケーションごとにキーを 1 つ含めることができます。

階層の構成は次のようになります。

  • キーリング(環境ごとに 1 つ): prodtestdev

  • prod 環境用キーリングのキー(アプリケーションごとに 1 つ): PayrollExpense_reportsInsurance_claims
    他のキーリングにも、保護対象のアプリケーションごとに同様のキーセットがあります。

  • 各キーは、業務上の必要に応じて個別にローテーションできます。

例 2

企業に複数のデータセットがあり、それぞれ Cloud KMS で保護されています。階層には、confidentialsensitiverestricted などデータの分類ごとにキーリングを含めることができます。各キーリングには、アプリケーションごとにキーを 1 つ含めることができます。各キーリングには、データセットごとにキーを 1 つ含めることができます。

階層の構成は次のようになります。

  • キーリング(分類レベルごとに 1 つ): confidentialsensitiverestricted

  • confidential キーリングのキー(データセットごとに 1 つ): dataset_1dataset_2dataset_3 など。
    他のキーリングにも、保護対象のデータセットごとに同様のキーセットがあります。

  • 各キーは、業務上の必要に応じて個別にローテーションできます。

オブジェクトの存続期間

リソース名の競合を防ぐため、キーリングと鍵のリソースは削除できません。鍵バージョンも削除できませんが、鍵バージョンのマテリアルを破棄することによって、リソースを使用できないようにすることができます。キーリングと鍵には請求可能な費用や割り当ての制限がないため、これらが存在し続けても費用や本番環境の制限に影響することはありません。

鍵バージョンの破棄の詳細については、鍵バージョンの破棄と復元をご覧ください。

Google Cloud Platform プロジェクトのシャットダウンをスケジュールすると、プロジェクトを復元する手順に従ってプロジェクトを復元しないと Cloud KMS リソースなどのプロジェクトのリソースにアクセスできなくなります。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud KMS ドキュメント