鍵の使用状況を表示する

このページでは、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 保護されたリソースの閲覧者ロールが割り当てられていても、組織に割り当てられていない場合は、同じプロジェクト内のリソースの鍵の使用状況の詳細のみを表示できます。権限によって同じプロジェクトのリソースの表示に制限されている場合、使用状況の追跡ダッシュボードに、データの範囲が制限されていることを示す通知が表示されます。

始める前に

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

    API の有効化

必要なロール

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

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

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

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

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

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

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

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

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

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

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

コンソール

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

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

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

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

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

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

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

gcloud CLI

コマンドラインで 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 閲覧者のロールが割り当てられているが、組織レベルでは割り当てられていない場合、または Cloud KMS サービス アカウントに組織に対する必要なロールが割り当てられていない場合、出力には、返されるデータが選択したプロジェクトに限定されていることが示されます(プレビュー)。

API

これらの例では、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 閲覧者のロールが割り当てられているが、組織レベルでは割り当てられていない場合、または Cloud KMS サービス アカウントに組織に対する必要なロールが割り当てられていない場合、出力には、返されるデータが選択したプロジェクトに限定されていることが示されます(プレビュー)。

鍵の用途の詳細

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

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

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

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

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

gcloud beta 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: 鍵バージョンを一覧表示するリソースの名前。

制限事項

鍵の使用状況のトラッキングを使用する場合は、次の点に注意してください。

  • 鍵の使用状況の追跡は、CMEK 鍵の使用状況でのみ使用できます。 Google Cloudの内外のアプリケーションでキー バージョンを使用している場合、その使用状況は [使用状況のトラッキング] タブに表示されません。
  • デフォルトでは、鍵の使用状況トラッキング情報は、選択した鍵で保護されている組織内のすべての追跡可能なリソースについて、組織レベルで提供されます。ただし、プロジェクトには Cloud KMS 保護されたリソースの閲覧者があるが、組織にはない場合、選択した鍵で保護されている選択したプロジェクト内のリソースに対して、プロジェクト レベルで鍵の使用状況のトラッキングが提供されます(プレビュー)。鍵の使用状況の追跡データがプロジェクト レベルで指定されている場合、出力には、データが選択したプロジェクトに限定されていることが示されます。
  • 鍵の使用状況の追跡情報を組織レベルで表示できるのは、Cloud KMS サービス アカウントに組織に対する必要な Cloud KMS 組織サービス エージェント ロールがある場合のみです。サービス アカウントに必要なロールがない場合、鍵の使用状況データは選択したプロジェクトに限定されます(プレビュー)。
  • 一部の CMEK リソースが追跡されない。トラッキング対象リソースタイプに記載されていないリソースタイプの場合、鍵の使用状況の詳細に鍵の使用状況情報が含まれないことがあります。たとえば、Datastream が ConnectionProfiledatastream.googleapis.com/ConnectionProfile)リソースの暗号化に使用する鍵の使用状況は、[使用状況のトラッキング] タブに表示されません。
  • データが遅延する可能性があります。たとえば、新しい保護リソースを作成しても、保護リソースと関連付けられた鍵バージョンは [使用状況の追跡] タブにすぐには追加されません。
  • Cloud Storage の鍵の使用状況データには、次の追加の制限が適用されます。
    • キーの使用状況データは、オブジェクトからバケットに集計されます。オブジェクト名は表示されません。バケットにその鍵を使用するオブジェクトが 1 つ以上ある場合、バケットは鍵を使用していると表示されます。
    • 4,000 を超える一意の鍵バージョンで保護されたオブジェクトを含むバケットでは、鍵の使用状況のトラッキングが完了しないことがあります。
  • 鍵の使用状況の追跡の詳細は、情報提供のみを目的としています。停止やデータ損失につながる可能性のある変更を行う前に、他のソースを使用して独自のデュー デリジェンスを実施してください。鍵の使用状況のトラッキング情報のみに基づいて、鍵バージョンを無効にしたり破棄したりしないでください。

追跡対象のリソースタイプ

サポートされるリソースタイプは次のとおりです。

    サービス リソース
    AlloyDB for PostgreSQL alloydb.googleapis.com/Backup
    AlloyDB for PostgreSQL alloydb.googleapis.com/Cluster
    Apigee apigee.googleapis.com/Organization
    Apigee apigee.googleapis.com/Instance
    Apigee API Hub apihub.googleapis.com/ApiHubInstance
    Artifact Registry artifactregistry.googleapis.com/Repository
    バックアップと DR サービス backupdr.googleapis.com/BackupVault
    バックアップと DR サービス backupdr.googleapis.com/Backup
    BigQuery bigquery.googleapis.com/Dataset
    BigQuery bigquery.googleapis.com/Model
    BigQuery bigquery.googleapis.com/Table
    BigQuery bigquerydatatransfer.googleapis.com/TransferConfig
    Bigtable bigtableadmin.googleapis.com/Backup
    Bigtable bigtableadmin.googleapis.com/Cluster
    Bigtable bigtableadmin.googleapis.com/Table
    Cloud Composer composer.googleapis.com/Environment
    Cloud Data Fusion datafusion.googleapis.com/Instance
    Cloud Healthcare API healthcare.googleapis.com/Dataset
    Cloud Logging logging.googleapis.com/LogBucket
    Cloud Run run.googleapis.com/Revision
    Cloud Run functions cloudfunctions.googleapis.com/CloudFunction
    Cloud Run functions cloudfunctions.googleapis.com/Function
    Cloud SQL sqladmin.googleapis.com/BackupRun
    Cloud SQL sqladmin.googleapis.com/Instance
    Cloud Storage storage.googleapis.com/Bucket
    Cloud Workstations workstations.googleapis.com/Workstation
    Cloud Workstations workstations.googleapis.com/WorkstationConfig
    Compute Engine compute.googleapis.com/Disk
    Compute Engine compute.googleapis.com/Image
    Compute Engine compute.googleapis.com/MachineImage
    Compute Engine compute.googleapis.com/Snapshot
    Database Migration Service datamigration.googleapis.com/MigrationJob
    Database Migration Service datamigration.googleapis.com/ConnectionProfile
    Dataflow dataflow.googleapis.com/Job
    Dataproc dataproc.googleapis.com/Cluster
    Dataproc dataproc.googleapis.com/Batch
    Dataproc Metastore metastore.googleapis.com/Service
    Datastream datastream.googleapis.com/Stream
    Document AI documentai.googleapis.com/HumanReviewConfig
    Document AI documentai.googleapis.com/Processor
    Document AI documentai.googleapis.com/ProcessorVersion
    Filestore file.googleapis.com/Instance
    Filestore file.googleapis.com/Backup
    Firestore firestore.googleapis.com/Database
    Firestore datastore.googleapis.com/Database
    Gemini Enterprise Enterprise discoveryengine.googleapis.com/DataStore
    Google Cloud Managed Lustre lustre.googleapis.com/Instance
    Google Kubernetes Engine container.googleapis.com/Cluster
    Looker(Google Cloud コア) looker.googleapis.com/Instance
    Memorystore for Redis redis.googleapis.com/Instance
    Migrate to Virtual Machines vmmigration.googleapis.com/Source
    Pub/Sub pubsub.googleapis.com/Topic
    Secret Manager secretmanager.googleapis.com/Secret
    Secret Manager secretmanager.googleapis.com/SecretVersion
    Secure Source Manager securesourcemanager.googleapis.com/Instance
    Spanner spanner.googleapis.com/Database
    Vertex AI aiplatform.googleapis.com/Dataset
    Vertex AI aiplatform.googleapis.com/Featurestore
    Vertex AI aiplatform.googleapis.com/Tensorboard
    Vertex AI aiplatform.googleapis.com/BatchPredictionJob
    Vertex AI aiplatform.googleapis.com/CustomJob
    Vertex AI aiplatform.googleapis.com/Endpoint
    Vertex AI aiplatform.googleapis.com/Model
    Vertex AI aiplatform.googleapis.com/TrainingPipeline
    Vertex AI aiplatform.googleapis.com/PipelineJob
    Vertex AI aiplatform.googleapis.com/MetadataStore
    Vertex AI Search discoveryengine.googleapis.com/DataStore
    Vertex AI Workbench インスタンス notebooks.googleapis.com/Instance
    Workflows workflows.googleapis.com/Workflow