このページでは、 Google Cloud Cloud KMS 鍵で保護されている組織内のリソースを表示する方法について説明します。鍵使用状況のトラッキングは、組織リソース内でのみ使用できます。
鍵で保護されているリソースに関する情報は、次の 2 つのレベルで表示できます。
- 各鍵の鍵の使用状況の概要情報には、鍵で保護されているリソース、プロジェクト、鍵を使用する一意の Google Cloud プロダクトの数が表示されます。このレベルの詳細は、鍵に対する Cloud KMS 閲覧者のロールを持つすべてのユーザーが利用できます。
- 鍵の使用状況の詳細情報には、この鍵で保護され、この鍵に依存するリソースが示されます。このレベルの詳細は特権であり、組織に対する Cloud KMS 保護されたリソースの閲覧者ロールを持つアカウントでのみ使用できます。
始める前に
このページでは、Google Cloud 組織リソース内で Cloud KMS を使用していることを前提としています。
組織の管理者に、組織リソースに対する 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 に置き換えます。鍵の使用状況の概要を表示する必要があるすべてのユーザーに、Cloud KMS 閲覧者(
roles/cloudkms.viewer
)ロールを付与します。ロールの付与については、アクセスの管理をご覧ください。鍵の使用状況の詳細を表示する必要があるすべてのユーザーに、組織リソースに対する 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
: ユーザーのメールアドレス。
Cloud KMS Inventory API を有効にします。
鍵の使用状況情報を表示する
コンソール
Google Cloud コンソールで、[Key Inventory] ページに移動します。
省略可: キーのリストをフィルタリングするには、[filter_list] の [フィルタ] ボックスに検索キーワードを入力し、Enter キーを押します。たとえば、キーのロケーション、キーリング、ステータス、その他のプロパティでフィルタできます。
使用状況情報を表示する鍵の名前をクリックします。
[使用状況のトラッキング] タブをクリックします。
省略可: 保護されたリソースのリストをフィルタリングするには、[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 リソースは追跡されません。トラッキング対象のリソースタイプにないリソースタイプの場合、鍵の使用状況の詳細に鍵の使用状況情報が含まれないことがあります。たとえば、
ConnectionProfile
(datastream.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 |