키 사용량 보기

이 페이지에서는 Cloud KMS 키로 보호되는 조직 내의 Google Cloud 리소스를 보는 방법을 보여줍니다. 중앙 집중식 키 관리 모델을 사용하는 조직의 경우 조직 리소스 내에서 키 사용량 추적을 사용할 수 있습니다. 위임된 키 관리 모델을 사용하는 경우 선택한 프로젝트로 범위가 지정된 키 사용 추적 데이터를 볼 수 있습니다(미리보기).

키가 보호하는 리소스에 대한 정보는 다음 두 수준에서 확인할 수 있습니다.

  • 키 사용량 요약: 각 키를 사용하는 보호 리소스, 프로젝트, 고유한 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 조직 서비스 에이전트(roles/cloudkms.orgServiceAgent) IAM 역할을 Cloud KMS 서비스 계정에 부여해 달라고 요청합니다.

사용자 계정 역할

사용량 추적 대시보드에는 사용자 계정에 프로젝트 또는 상위 조직에 대한 필수 역할이 있는지에 따라 다른 정보가 표시됩니다. 조직에서 중앙 집중식 키 관리 모델을 사용하는 경우 조직에 다음 역할을 부여하세요. 조직에서 위임된 키 관리 모델을 사용하는 경우 선택한 프로젝트 (미리보기)로 범위가 지정된 키 사용 세부정보를 볼 수 있도록 프로젝트에 필요한 역할을 부여할 수 있습니다.

키 사용 정보를 보는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 키 사용 요약을 보려면 키에 대한 Cloud KMS 뷰어 (roles/cloudkms.viewer) 권한이 있어야 합니다.
  • 키 사용량 세부정보를 보려면 다음이 필요합니다. 프로젝트 또는 조직에 대한 Cloud KMS 보호되는 리소스 뷰어 (roles/cloudkms.protectedResourcesViewer)

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

키 사용량 정보 보기

콘솔

  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 보호 리소스 뷰어 역할이 있지만 조직 수준에는 없는 경우 또는 Cloud KMS 서비스 계정에 조직에 대한 필수 역할이 없는 경우 출력에 반환된 데이터의 범위가 선택한 프로젝트 (미리보기)로 지정되어 있다고 표시됩니다.

API

이 예시에서는 curl을 HTTP 클라이언트로 사용하여 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 보호 리소스 뷰어 역할이 있지만 조직 수준에는 없는 경우 또는 Cloud KMS 서비스 계정에 조직에 대한 필수 역할이 없는 경우 출력에 반환된 데이터의 범위가 선택한 프로젝트 (미리보기)로 지정되어 있다고 표시됩니다.

키 사용 세부정보

선택한 키로 암호화된 보호 리소스에 관한 사용량 세부정보에는 다음이 포함됩니다.

  • 이름: 선택한 키로 보호되는 Google Cloud 리소스의 이름입니다.
  • 프로젝트: 보호된 리소스가 포함된 프로젝트의 이름입니다.
  • 암호화 키 버전: 이 리소스를 암호화하는 데 사용되는 키 버전입니다. 일부 보호된 리소스는 암호화 키 버전을 보고하지 않습니다.
  • Cloud 제품: 이 리소스와 연결된 Google Cloud 제품입니다.
  • 리소스 유형: 보호되는 리소스 유형입니다(예: 버킷(Cloud Storage) 또는 디스크(Compute Engine)).
  • 위치: 리소스와 연결된 Google Cloud 리전입니다.
  • 생성일: 리소스가 생성된 시간입니다.
  • 라벨: 리소스와 연결된 키-값 쌍입니다.

리소스를 보호하는 키 버전 나열

리소스가 여러 키 버전으로 보호되는 경우 사용량 추적 탭에 키 버전의 전체 목록이 표시되지 않을 수 있습니다.

리소스를 보호하는 키 버전을 나열하려면 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이 ConnectionProfile(datastream.googleapis.com/ConnectionProfile) 리소스를 암호화하는 데 사용하는 키 사용량은 사용량 추적 탭에 표시되지 않습니다.
  • 데이터가 지연될 수 있습니다. 예를 들어 새 보호 리소스를 만드는 경우 보호 리소스와 연결된 키 버전이 사용량 추적 탭에 즉시 추가되지 않습니다.
  • Cloud Storage 키 사용 데이터에는 다음과 같은 추가 제한사항이 적용됩니다.
    • 키 사용 데이터는 객체에서 버킷으로 집계됩니다. 객체 이름이 표시되지 않습니다. 버킷에 해당 키를 사용하는 객체가 하나 이상 있으면 버킷이 해당 키를 사용하는 것으로 표시됩니다.
    • 4,000개가 넘는 고유한 키 버전으로 보호된 객체가 포함된 버킷의 경우 키 사용 추적이 완전하지 않을 수 있습니다.
  • 키 사용 추적 세부정보는 정보 제공 목적으로만 사용됩니다. 정전이나 데이터 손실을 초래할 수 있는 변경사항을 적용하기 전에 다른 소스를 사용하여 자체적으로 실사를 수행하세요. 키 사용량 추적 정보만을 기반으로 키 버전을 사용 중지하거나 삭제하지 마세요.

추적된 리소스 유형

지원되는 리소스 유형은 다음과 같습니다.

    서비스 리소스
    PostgreSQL용 AlloyDB alloydb.googleapis.com/Backup
    PostgreSQL용 AlloyDB alloydb.googleapis.com/Cluster
    Apigee apigee.googleapis.com/Organization
    Apigee apigee.googleapis.com/Instance
    Apigee API 허브 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
    Redis용 Memorystore 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.googleapis.com/Workflow