鍵の使用状況を表示する

このページでは、 Google Cloud Cloud KMS 鍵で保護されている組織内のリソースを表示する方法について説明します。鍵使用状況のトラッキングは、組織リソース内でのみ使用できます。

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

  • 各鍵の鍵の使用状況の概要情報には、鍵で保護されているリソース、プロジェクト、鍵を使用する一意の Google Cloud プロダクトの数が表示されます。このレベルの詳細は、鍵に対する Cloud KMS 閲覧者のロールを持つすべてのユーザーが利用できます。
  • 鍵の使用状況の詳細情報には、この鍵で保護され、この鍵に依存するリソースが示されます。このレベルの詳細は特権であり、組織に対する Cloud KMS 保護されたリソースの閲覧者ロールを持つアカウントでのみ使用できます。

始める前に

このページでは、Google Cloud 組織リソース内で Cloud KMS を使用していることを前提としています。

  1. 組織の管理者に、組織リソースに対する Cloud KMS 組織のサービス エージェント(cloudkms.orgServiceAgent)のロールを Cloud KMS サービス アカウントに付与してもらいます。このロールは Google Cloud コンソールでは利用できないため、gcloud CLI を使用してロールを付与する必要があります。

    gcloud CLI

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
        --member=serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com \
        --role=roles/cloudkms.orgServiceAgent
    

    ORGANIZATION_ID は、組織の数値 ID に置き換えます。

  2. 鍵の使用状況の概要を表示する必要があるすべてのユーザーに、Cloud KMS 閲覧者(roles/cloudkms.viewer)ロールを付与します。ロールの付与については、アクセスの管理をご覧ください。

  3. 鍵の使用状況の詳細を表示する必要があるすべてのユーザーに、組織リソースに対する Cloud KMS 保護されたリソースの閲覧者(roles/cloudkms.protectedResourcesViewer)ロールを付与します。このロールは Google Cloud コンソールでは利用できないため、gcloud CLI を使用してロールを付与する必要があります。

    gcloud CLI

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
        --member=user:USER_EMAIL \
        --role=roles/cloudkms.protectedResourcesViewer
    

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

    • ORGANIZATION_ID: 組織の数値 ID。
    • USER_EMAIL: ユーザーのメールアドレス。
  4. Cloud KMS Inventory API を有効にします。

    API の有効化

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

コンソール

  1. Google Cloud コンソールで、[Key Inventory] ページに移動します。

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

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

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

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

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

選択した鍵の鍵使用状況の概要と詳細が表示されます。

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。

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: 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: KMS Inventory API を呼び出すプロジェクトの ID。

鍵の使用状況の詳細

選択した鍵で暗号化された保護対象リソースの使用状況の詳細は次のとおりです。

  • 名前: 選択した鍵で保護されているリソースの名前。 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: 鍵バージョンを一覧表示するリソースの名前。

制限事項

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

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

トラッキング対象のリソースタイプ

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

    サービス リソース
    AI Applications discoveryengine.googleapis.com/DataStore
    AlloyDB for PostgreSQL alloydb.googleapis.com/Backup
    AlloyDB for PostgreSQL alloydb.googleapis.com/Cluster
    Apigee API Hub apihub.googleapis.com/ApiHubInstance
    Artifact Registry artifactregistry.googleapis.com/Repository
    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
    Google Agentspace Enterprise discoveryengine.googleapis.com/DataStore
    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 Workbench インスタンス notebooks.googleapis.com/Instance
    Workflows workflows.googleapis.com/Workflow