鍵の使用状況を表示する

このページでは、Cloud KMS 鍵で保護されている組織内の Google Cloud リソースを表示する方法について説明します。鍵の使用状況の追跡は、一元化された鍵管理モデルを使用する組織の組織リソース内で利用できます。委任された鍵管理モデルを使用している場合は、選択したプロジェクトにスコープ設定された鍵の使用状況の追跡データを確認できます。

鍵で保護されているリソースに関する情報は、次の 2 つのレベルで確認できます。

  • 鍵の使用状況の概要: 各鍵を使用する保護されたリソース、プロジェクト、固有の Google Cloud プロダクトの数。この詳細レベルは、鍵に対する Cloud KMS 閲覧者ロールを持つユーザーが利用できます。表示できる鍵使用状況の概要データの範囲は、鍵管理モデルによって異なります。
    • 一元化された鍵管理: Cloud KMS サービス アカウントに組織に対する Cloud KMS 組織サービス エージェント ロールがある場合、鍵で保護されたリソースの鍵使用状況の概要データを、組織内の他のプロジェクトのリソースについても確認できます。
    • 委任された鍵管理: Cloud KMS サービス アカウントに組織に対する Cloud KMS 組織サービス エージェント ロールがない場合は、同じプロジェクト内のリソースの鍵使用状況の概要データのみが表示されます。同じプロジェクトの鍵の使用状況データのみを表示している場合、[使用状況の追跡] ダッシュボードに、表示されるデータの範囲が選択したプロジェクトに限定されていることを示す通知が表示されます。
  • 鍵の使用状況の詳細: この鍵で保護されているリソースと、この鍵に依存するリソースのリスト。表示できる鍵の使用状況の詳細の範囲は、鍵管理モデルによって異なります。
    • 一元化された鍵管理: 組織に対する Cloud KMS 保護リソース閲覧者ロールがあり、Cloud KMS サービス アカウントに組織に対する Cloud KMS 組織サービス エージェント ロールがある場合、他のプロジェクトにあるリソースであっても、鍵で保護されたリソースの鍵の使用状況の詳細を確認できます。
    • 委任された鍵管理: プロジェクトに Cloud KMS 保護されたリソースの閲覧者ロールが割り当てられているが、組織には割り当てられていない場合は、同じプロジェクト内のリソースの鍵の使用状況の詳細のみを表示できます。権限によって同じプロジェクトのリソースの表示に制限されている場合、[使用状況の追跡] ダッシュボードに、データの範囲が制限されていることを示す通知が表示されます。

始める前に

  • 鍵の使用状況データを表示するプロジェクトで Cloud KMS Inventory API を有効にします。

    API の有効化

必要なロール

Cloud KMS を一元管理された鍵管理モデルで使用する場合は、Cloud KMS サービス アカウントに必要な権限を付与する必要があります。

一元管理された鍵管理と委任された鍵管理の両方で、鍵の使用状況データを表示する必要があるユーザー アカウントに、必要な権限を付与する必要があります。

Cloud KMS サービス アカウントのロール

委任された鍵管理モデルを使用しており、組織全体で集計された鍵の使用状況データを確認する必要がない場合は、このページのユーザー アカウントのロールのセクションに進みます。

Cloud KMS サービス アカウントに組織レベルで鍵の使用状況の追跡を有効にするために必要な権限を付与するには、組織に対する Cloud KMS 組織サービス エージェントroles/cloudkms.orgServiceAgent)IAM ロールを Cloud KMS サービス アカウントに付与するよう管理者に依頼してください。

ユーザー アカウントのロール

[使用状況の追跡] ダッシュボードには、ユーザー アカウントにプロジェクトまたは親組織に必要なロールがあるかどうかに応じて、異なる情報が表示されます。組織で一元管理型の鍵管理モデルを使用している場合は、組織に次のロールを付与します。組織で委任された鍵管理モデルを使用している場合は、プロジェクトに必要なロールを付与して、選択したプロジェクトにスコープ設定された鍵の使用状況の詳細を表示できます。

鍵の使用状況情報を表示するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

鍵の使用状況の情報を表示する

コンソール

  1. Google Cloud コンソールで、[鍵インベントリ] ページに移動します。

    [鍵のインベントリ] に移動

  2. 省略可: キーのリストをフィルタリングするには、[filter_list] の [フィルタ] ボックスに検索キーワードを入力し、Enter キーを押します。たとえば、鍵の場所、キーリング、ステータス、その他のプロパティでフィルタできます。

  3. 使用状況情報を表示する鍵の名前をクリックします。

  4. [使用状況のトラッキング] タブをクリックします。

  5. 省略可: 保護されたリソースのリストをフィルタリングするには、[filter_list] の [フィルタ] ボックスに検索キーワードを入力し、Enter キーを押します。

選択した鍵の鍵使用状況の概要と詳細が表示されます。ユーザーと Cloud KMS サービス アカウントに組織レベルで必要なロールがある場合は、選択したプロジェクトの鍵で保護されている組織内のすべてのリソースの鍵の使用状況の詳細を確認できます。必要なロールがプロジェクト レベルでのみ付与されている場合、または Cloud KMS サービス アカウントに組織に対する必要なロールが付与されていない場合は、選択したプロジェクト内のすべてのリソースについて、同じプロジェクト内の鍵で保護されている鍵の使用状況の詳細を確認できます。同じプロジェクトの詳細を表示している場合は、[使用状況のトラッキング] タブに、表示されているデータの範囲を示す通知が表示されます。

gcloud

コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします

鍵の使用状況の概要を表示するには、get-protected-resources-summary メソッドを使用します。

gcloud kms inventory get-protected-resources-summary \
    --keyname projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \

次のように置き換えます。

  • PROJECT_ID: キーリングを含むプロジェクトの ID。
  • LOCATION: キーリングの Cloud KMS のロケーション
  • KEY_RING: 鍵を含むキーリングの名前。
  • KEY_NAME: 使用状況の概要を表示するキーの名前。

鍵の使用状況の詳細を表示するには、search-protected-resources メソッドを使用します。

gcloud kms inventory search-protected-resources \
    --keyname projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
    --scope=organizations/ORGANIZATION_ID

次のように置き換えます。

  • PROJECT_ID: キーリングを含むプロジェクトの ID。
  • LOCATION: キーリングの Cloud KMS のロケーション
  • KEY_RING: 鍵を含むキーリングの名前。
  • KEY_NAME: 使用状況の詳細を表示する鍵の名前。
  • ORGANIZATION_ID: 組織の数値 ID。

デフォルトでは、このメソッドは、指定された鍵で保護されている組織内のすべてのリソースの鍵の使用状況の詳細を返します。プロジェクト レベルでは Cloud KMS Protected Resources Viewer ロールがあるが、組織レベルではロールがない場合、または Cloud KMS サービス アカウントに組織に対する必要なロールがない場合、出力には、返されるデータのスコープが選択したプロジェクトに設定されていることが示されます。

REST

これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。

鍵の使用状況の概要を表示するには、cryptoKeys.getProtectedResourcesSummary メソッドを使用します。

curl "https://kmsinventory.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/protectedResourcesSummary"
    --request "GET" \
    --header "x-goog-user-project: CALLING_PROJECT_ID"
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN"

次のように置き換えます。

  • PROJECT_ID: キーリングを含むプロジェクトの ID。
  • LOCATION: キーリングの Cloud KMS のロケーション
  • KEY_RING: 鍵を含むキーリングの名前。
  • KEY_NAME: 使用状況の概要を表示するキーの名前。
  • CALLING_PROJECT_ID: Cloud KMS Inventory API を呼び出すプロジェクトの ID。

鍵の使用状況の詳細を表示するには、protectedResources.search メソッドを使用します。

curl "https://kmsinventory.googleapis.com/v1/organizations/ORGANIZATION_ID/protectedResources:search?crypto_key=projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
    --request "GET" \
    --header "x-goog-user-project: CALLING_PROJECT_ID"
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer TOKEN"

次のように置き換えます。

  • ORGANIZATION_ID: 組織の数値 ID。
  • PROJECT_ID: キーリングを含むプロジェクトの ID。
  • LOCATION: キーリングの Cloud KMS のロケーション
  • KEY_RING: 鍵を含むキーリングの名前。
  • KEY_NAME: 使用状況の詳細を表示する鍵の名前。
  • CALLING_PROJECT_ID: Cloud KMS Inventory API を呼び出すプロジェクトの ID。

デフォルトでは、このメソッドは、指定された鍵で保護されている組織内のすべてのリソースの鍵の使用状況の詳細を返します。プロジェクト レベルでは Cloud KMS Protected Resources Viewer ロールがあるが、組織レベルではロールがない場合、または Cloud KMS サービス アカウントに組織に対する必要なロールがない場合、出力には、返されるデータのスコープが選択したプロジェクトに設定されていることが示されます。

鍵の用途の詳細

選択した鍵で暗号化された保護対象リソースの使用状況の詳細には、次の情報が含まれます。

  • 名前: 選択した鍵で保護されている Google Cloud リソースの名前。
  • プロジェクト: 保護されたリソースを含むプロジェクトの名前。
  • 暗号鍵バージョン: このリソースの暗号化に使用される鍵バージョン。一部の保護されたリソースタイプでは、暗号鍵のバージョンが報告されません。
  • Cloud プロダクト: このリソースに関連付けられた Google Cloud プロダクト。
  • リソースタイプ: 保護されているリソースのタイプ(バケット(Cloud Storage)、ディスク(Compute Engine)など)。
  • Location: リソースに関連付けられた Google Cloud リージョン。
  • 作成日: リソースが作成された時刻。
  • ラベル: リソースに関連付けられた Key-Value ペアのセット。

リソースを保護する鍵バージョンを一覧表示する

リソースが複数の鍵バージョンで保護されている場合、[使用状況のトラッキング] タブに鍵バージョンの完全なリストが表示されないことがあります。

リソースを保護する鍵バージョンを一覧表示するには、gcloud CLI を使用して次のコマンドを実行します。

gcloud kms inventory search-protected-resources \
  --keyname=KEY_NAME \
  --scope=organizations/ORGANIZATION_ID \
  --filter="name:RESOURCE_NAME" \
  --flatten="cryptoKeyVersions" \
  --format="value(cryptoKeyVersions)"

次のように置き換えます。

  • KEY_NAME: 鍵バージョンを一覧表示するキーの名前。
  • ORGANIZATION_ID: 組織の数値 ID。
  • RESOURCE_NAME: 鍵バージョンを一覧表示するリソースの名前。

リソースタイプでフィルタする

検索結果は、リソースタイプでフィルタできます。たとえば、Cloud Storage バケットのみ、または Compute Engine ディスクのみを一覧表示するように選択できます。リソースタイプは名前で指定するか、正規表現を使用して複数のリソースタイプを照合できます。

サポートされているリソースタイプの一覧については、追跡対象のリソースタイプをご覧ください。

gcloud

リソースタイプでフィルタするには、--resource-types フラグを指定して gcloud kms inventory search-protected-resources コマンドを使用します。

gcloud kms inventory search-protected-resources \
    --keyname=projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
    --scope=organizations/ORGANIZATION_ID \
    --resource-types=RESOURCE_TYPES

次のように置き換えます。

  • KEY_NAME: 使用状況の詳細を表示する鍵の名前。
  • ORGANIZATION_ID: 組織の数値 ID。
  • RESOURCE_TYPES: フィルタリングするリソースタイプのカンマ区切りリスト(例: storage.googleapis.com/Bucketstorage.googleapis.com/Bucket,compute.googleapis.com/Disk)。正規表現を使用して、パターンでリソースタイプを照合できます。たとえば、compute.googleapis.com/.*compute.googleapis.com/ で始まる任意のリソースタイプと一致します。

REST

リソースタイプでフィルタするには、resourceTypes クエリ パラメータを使用します。