Cloud KMS リソース

このトピックでは、Cloud KMS のリソースの各タイプについて説明します。詳細については、リソースの階層をご覧ください。

Cloud KMS 鍵は、1 つ以上の鍵バージョンと鍵のメタデータを含む名前付きオブジェクトです。鍵は、特定のロケーションに関連付けられた 1 つの鍵リングに存在します。

Identity and Access Management(IAM)の権限とロールを使用して、鍵へのアクセスを許可または拒否できます。鍵バージョンへのアクセスを、個別に管理することはできません。

鍵を無効化または破棄すると、鍵バージョンも無効化または破棄されます。

続くセクションでは、キーのプロパティについて説明します。

コンテキストに応じて、キーのプロパティは異なる形式で表記されます。

  • Cloud SDK または Cloud Key Management Service API を使用する場合、このプロパティは大文字の文字列(SOFTWARE など)で表記されます。
  • Google Cloud Console を使用する場合、このプロパティは、Software のように大文字で始まる文字列で表記されます。

以降のセクションで、適切な形式で各形式を示します。

鍵の種類により、鍵が対称暗号オペレーションで使用されるか、または非対称暗号オペレーションで使用されるかが決まります。

対称暗号化では、データを暗号化または復号するには鍵全体が必要です。対称鍵は署名には使用できません。

非対称暗号化や署名では、鍵は公開鍵と秘密鍵で構成されます。

  • 秘密鍵は機密データと見なされ、鍵の構成目的に応じて、データの復号または署名に必要です。
  • 公開鍵は機密性が高いとは見なされないため、鍵の構成目的に応じて、データを暗号化または署名を検証する必要があります。

    鍵の作成後に、鍵の種類は変更できません。

鍵の種類は、その目的を構成する要素の 1 つです。

目的

鍵の目的により、鍵を暗号化に使用できるか、署名に使用できるかが決まります。目的は、鍵を作成するときに選択します。また、すべてのバージョンで、目的は共通です。

対称鍵の目的は、常に対称暗号化 / 復号です。

非対称鍵の目的は、非対称暗号化 / 復号または非対称署名です。

鍵の作成後に、鍵の目的は変更できません。

メインのバージョン

1 つの鍵には複数のバージョンがありますが、対称鍵はプライマリの鍵バージョンを 1 つしか持てません。鍵バージョンを指定しない場合は、プライマリの鍵バージョンを使用してデータが暗号化されます。

非対称鍵にはプライマリ バージョンはありません。鍵を使用するときは、バージョンを指定する必要があります。

対称鍵と非対称鍵のどちらにおいても、プライマリ バージョンかどうかにかかわらず、有効な鍵バージョンを使用してデータを暗号化または復号できます。

鍵バージョン

鍵のバージョンごとに、暗号化または署名に使用される鍵マテリアルが含まれています。鍵バージョンは、1 から始まる整数で表されます。データを復号または署名を検証するには、データの暗号化または署名に使用したものと同じ鍵バージョンを使用する必要があります。鍵バージョンのリソース ID を検索して参照する方法については、鍵のリソース ID の取得をご覧ください。

他のバージョンに影響を与えることなく、鍵バージョンを無効化または破棄できます。鍵をローテーションすると、新しいバージョンが作成されます。詳細については、鍵のローテーションをご覧ください。

鍵を無効化または破棄すると、その鍵のすべてのバージョンが無効化または破棄されます。鍵バージョンは、他の鍵バージョンに影響を与えることなく、選択して無効化できます。

鍵バージョンへのアクセスを、個別に管理することはできません。1 つの鍵へのアクセス権を付与すると、その鍵の有効なバージョンすべてに対するアクセス権も付与されます。

セキュリティ上の理由から、Google Cloud メンバーは、鍵バージョンで表される未加工の暗号鍵マテリアルを表示またはエクスポートすることはできません。代わりに、Cloud KMS が鍵マテリアルにアクセスします。

続くセクションでは、鍵バージョンのプロパティについて説明します。

State

鍵バージョンの 状態 は、次のいずれかになります。

  • 有効
  • 無効
  • 破棄の予定
  • 破棄

鍵バージョンは、有効化されている場合にのみ使用できます。有効な鍵と鍵バージョンに限り、費用が発生します。

保護レベル

鍵バージョンの保護レベルによって、保管されている鍵のストレージ環境が決まります。保護レベルは次のいずれかになります。

  • ソフトウェア(Cloud SDK と Cloud Key Management Service API の SOFTWARE
  • HSM
  • 外部(Cloud SDK と Cloud Key Management Service API の EXTERNAL

保護レベルは鍵バージョンのプロパティですが、鍵の作成後は変更できません。

アルゴリズム

鍵バージョンのアルゴリズムによって、鍵マテリアルの作成方法と暗号オペレーションに必要なパラメータが決まります。対称鍵と非対称鍵は、それぞれ異なるアルゴリズムをサポートしています。

新しい鍵バージョンを作成するときにアルゴリズムを指定しない場合は、以前のバージョンのアルゴリズムが使用されます。

アルゴリズムに関係なく、Cloud KMS は確率的暗号化を使用するため、同じ鍵バージョンで同じ平文を 2 回暗号化しても同じ暗号テキストには暗号化されることはありません。

キーリング

キーリングを使用すると、特定の Google Cloud ロケーション内の鍵を整理して、鍵のグループのアクセス制御を管理できます。キーリングの名前は Google Cloud プロジェクト全体にわたって一意である必要はありませんが、指定されたロケーション内では一意となる必要があります。キーリングを作成すると、削除はできません。キーリングには、ストレージの費用は発生しません。

リソースの ID の取得

一部の API 呼び出しと gcloud ツールで、キーリング、鍵、鍵バージョンを参照するには、そのリソース ID(CryptoKeyVersion の完全修飾名を表す文字列)が必要な場合があります。リソース ID は階層構造になっており、ファイルシステム パスと同様です。鍵のリソース ID には、キーリングとロケーションに関する情報も含まれます。

Object から継承されたメソッド リソース ID の形式
鍵リング projects/project-id/locations/location/keyRings/keyring
projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key
鍵バージョン projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key/cryptoKeyVersions/version

詳細については、Cloud KMS リソース ID の取得をご覧ください。

リソースの整理

Google Cloud プロジェクトのリソースを整理する方法を計画する際は、ビジネスルールとアクセス管理をどのように行うかを検討してください。アクセス権は、1 つの鍵、キーリング上のすべての鍵、またはプロジェクト内のすべての鍵に対して付与できます。一般的な編成パターンは、次のとおりです。

  • 環境(prodtestdevelop など)。
  • 作業エリア(payrollinsurance_claims など)。
  • データの機密性または特性(unrestrictedrestrictedconfidentialtop-secret など)。

リソースのライフサイクル

キーリング、鍵、鍵バージョンは削除できません。これにより、鍵バージョンのリソース ID が一意となり、常にその鍵バージョンの元の鍵マテリアルを指すようになります。 キーリング、有効または無効な鍵、有効または無効な鍵バージョンを保存できる数に制限はありません。詳細については、料金割り当てをご覧ください。

鍵バージョンの破棄または復元する方法については、鍵バージョンの破棄と復元をご覧ください。

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

次のステップ