Cloud 애셋 인벤토리는 최대 35일까지의 생성, 업데이트, 삭제 기록이 포함된 Google Cloud 애셋 메타데이터를 보고, 검색, 내보내기, 모니터링, 분석할 수 있는 전역 메타데이터 인벤토리 서비스입니다. 지난 35일 동안 변경되지 않은 애셋은 최신 상태를 보고합니다.
애셋 메타데이터는 다음 위치에서 가져올 수 있습니다.
Compute Engine VM 인스턴스, Cloud Storage 버킷, App Engine 인스턴스와 같은 Google Cloud 리소스
IAM 정책, 조직 정책, Access Context Manager 정책과 같이 Google Cloud 리소스에 설정된 정책
OS 인벤토리 관리의 런타임 정보
애셋을 사용하는 방법은 다음과 같습니다.
특정 프로젝트, 폴더 또는 조직의 애셋 및 관계를 나열하고 최대 35일 전의 애셋 기록을 확인할 수 있습니다.
커스텀 쿼리 언어를 사용하여 리소스 및 IAM 허용 정책을 검색하거나 BigQuery SQL로 애셋을 쿼리합니다.
애셋 메타데이터를 BigQuery 또는 Cloud Storage로 내보냅니다.
리소스를 다른 프로젝트로 이동할 경우 어떤 일이 발생하는지 분석합니다.
리소스에 대한 IAM 및 조직 정책을 분석하고 리소스에 대한 유효한 IAM 정책을 확인하여 누가 어떤 리소스에 액세스할 수 있는지 확인합니다.
피드를 설정하고 구독하여 애셋의 변경사항을 모니터링합니다.
애셋에서 유용한 정보를 생성하여 보안 상태를 개선합니다.
애셋 유형, 애셋 이름, 콘텐츠 유형
Cloud 애셋 인벤토리는 애셋과 상호작용하는 여러 가지 방법을 제공합니다. 사용하는 메서드와 원하는 응답 세부정보에 따라 요청에 애셋 유형, 애셋 이름, 콘텐츠 유형을 지정해야 할 수 있습니다.
애셋 유형
일부 Cloud 애셋 인벤토리 메서드는 애셋 유형을 기반으로 결과를 반환합니다. 애셋 유형에는 Google Cloud 리소스, 정책, OS 인벤토리 런타임 정보, 관계가 포함됩니다. 사용 가능한 애셋 유형과 이를 지원하는 Cloud 애셋 인벤토리 메서드는 애셋 유형에 자세히 설명되어 있습니다.
애셋 이름
일부 Cloud 애셋 인벤토리 메서드는 애셋 이름을 기반으로 결과를 반환합니다. 애셋 이름을 지정할 때는 전체 리소스 이름을 사용해야 합니다. 전체 리소스 이름 목록은 애셋 이름을 참고하세요.
콘텐츠 유형
메타데이터 콘텐츠 유형을 지정하여 리소스에 대한 추가 메타데이터를 요청할 수 있습니다. 콘텐츠 유형을 지정하지 않으면 애셋 이름, 마지막 업데이트 시간, 속해 있는 프로젝트, 폴더, 조직과 같은 정보가 포함된 기본 응답만 반환됩니다.
콘텐츠 유형 이름은 Cloud 애셋 인벤토리와 상호작용하는 방식에 따라 다릅니다. RPC 및 REST API 이름은 동일합니다. 그러나 gcloud CLI 콘텐츠 유형 이름은 다른 패턴을 따릅니다. 일관성과 설명의 용이성을 위해 이 문서의 나머지 부분에서는 콘텐츠 유형을 RPC 및 REST 이름으로 참조합니다.
다음 표에는 콘텐츠 유형과 설명이 자세히 나와 있습니다.
콘텐츠 유형 | 설명 | |
---|---|---|
RPC 및 REST 이름 | gcloud CLI 이름 | |
ACCESS_POLICY |
access-policy |
애셋에 설정된 Access Context Manager 정책입니다. |
IAM_POLICY |
iam-policy |
리소스에 바인딩되는 IAM 정책 메타데이터입니다. |
ORG_POLICY |
org-policy |
애셋에 설정된 조직 정책 메타데이터입니다. 이 콘텐츠 유형은 기존 조직 정책 v1을 출력합니다. 조직 정책 v2의 경우 resource 콘텐츠 유형과 orgpolicy.googleapis.com/Policy 리소스 유형을 사용해 보세요.
|
OS_INVENTORY |
os-inventory |
런타임 OS 인벤토리 정보입니다. OS 인벤토리를 사용 설정하려면 VM Manager 설정의 관련 단계를 완료합니다. |
RELATIONSHIP |
relationship |
Security Command Center 프리미엄 및 엔터프라이즈 등급 구독자만 사용할 수 있습니다. 많은 Google Cloud 애셋은 관계를 통해 서로 연결됩니다. 예를 들어 Compute 인스턴스 그룹은 컴퓨팅 인스턴스를 포함하거나 GKE 클러스터는 노드를 포함할 수 있습니다. 관계 데이터는 2022년 5월 30일부터 제공됩니다. 관계는 소스 애셋 업데이트와 다른 시간에 유추될 수 있으므로 자체 업데이트 타임스탬프를 가질 수 있습니다. 지원되는 관계 목록은 관계 유형을 참고하세요. |
RESOURCE |
resource |
리소스의 메타데이터입니다. |
콘텐츠 유형에 따라 응답이 변경되는 방식
다음 예는 Cloud 애셋 인벤토리를 통해 프로젝트에 다양한 콘텐츠 유형으로 VM 인스턴스를 나열할 때 응답이 어떻게 달라지는지 보여줍니다.
콘텐츠 유형 없음
VM 인스턴스를 나열할 때 콘텐츠 유형을 지정하지 않으면 인스턴스 이름, 마지막 업데이트 시간, 인스턴스가 속한 프로젝트, 폴더, 조직만 수신됩니다.
응답 예시 펼치기
--- ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME updateTime: '2023-11-15T12:28:30.087825Z'
IAM_POLICY 콘텐츠 유형
IAM_POLICY
콘텐츠 유형을 지정하면 VM에 있는 IAM 바인딩도 수신됩니다(있는 경우).
응답 예시 펼치기
--- ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID assetType: compute.googleapis.com/Instance iamPolicy: bindings: - members: - user:USER_EMAIL_ADDRESS role: roles/compute.securityAdmin etag: ETAG name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME updateTime: '2023-12-19T23:35:42.673842Z'
RESOURCE 콘텐츠 유형
RESOURCE
콘텐츠 유형을 지정하면 VM과 연결된 모든 메타데이터도 수신됩니다.
응답 예시 펼치기
--- ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME resource: data: allocationAffinity: consumeAllocationType: ANY_ALLOCATION canIpForward: false confidentialInstanceConfig: enableConfidentialCompute: true cpuPlatform: AMD Rome creationTimestamp: '2023-11-14T14:35:37.059-08:00' deletionProtection: false description: '' disks: - architecture: X86_64 autoDelete: true boot: true deviceName: INSTANCE_NAME diskSizeGb: '10' guestOsFeatures: - type: VIRTIO_SCSI_MULTIQUEUE - type: SEV_CAPABLE - type: SEV_SNP_CAPABLE - type: SEV_LIVE_MIGRATABLE - type: UEFI_COMPATIBLE - type: GVNIC index: 0 interface: NVME licenses: - https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/licenses/ubuntu-2004-lts mode: READ_WRITE shieldedInstanceInitialState: dbx: - content: DATA fileType: BIN dbxs: - content: DATA fileType: BIN source: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/INSTANCE_NAME type: PERSISTENT displayDevice: enableDisplay: false fingerprint: FINGERPRINT id: 'ID' keyRevocationActionType: NONE_ON_KEY_REVOCATION labelFingerprint: LABEL_FINGERPRINT lastStartTimestamp: '2023-11-15T04:28:30.005-08:00' machineType: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n2d-standard-2 name: INSTANCE_NAME networkInterfaces: - accessConfigs: - name: External NAT natIP: 34.27.105.222 networkTier: PREMIUM type: ONE_TO_ONE_NAT fingerprint: jKU51FdTluk= name: nic0 network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default networkIP: 10.128.15.212 nicType: GVNIC stackType: IPV4_ONLY subnetwork: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/default reservationAffinity: consumeReservationType: ANY_ALLOCATION resourceStatus: {} scheduling: automaticRestart: true onHostMaintenance: TERMINATE preemptible: false provisioningModel: STANDARD selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME serviceAccounts: - email: PROJECT_NUMBER-compute@developer.gserviceaccount.com scopes: - https://www.googleapis.com/auth/devstorage.read_only - https://www.googleapis.com/auth/logging.write - https://www.googleapis.com/auth/monitoring.write - https://www.googleapis.com/auth/servicecontrol - https://www.googleapis.com/auth/service.management.readonly - https://www.googleapis.com/auth/trace.append shieldedInstanceConfig: enableIntegrityMonitoring: true enableSecureBoot: false enableVtpm: true shieldedInstanceIntegrityPolicy: updateAutoLearnPolicy: true startRestricted: false status: RUNNING tags: fingerprint: FINGERPRINT zone: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE discoveryDocumentUri: https://www.googleapis.com/discovery/v1/apis/compute/v1/rest discoveryName: Instance location: ZONE parent: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER version: v1 updateTime: '2023-11-15T12:28:30.087825Z'
RELATIONSHIP 콘텐츠 유형
Security Command Center 프리미엄 및 Enterprise 등급 구독자만 사용할 수 있습니다.
RELATIONSHIP
콘텐츠 유형을 지정하면 VM 인스턴스의 관련 애셋과 연결된 메타데이터도 수신됩니다.
응답 예시 펼치기
--- ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME relatedAsset: ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID asset: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/disks/INSTANCE_NAME assetType: compute.googleapis.com/Disk relationshipType: COMPUTE_INSTANCE_USE_DISK updateTime: '2023-12-19T23:35:42.673842Z'
RELATIONSHIP
콘텐츠 유형을 사용할 때는 모든 관계를 요청하는 대신 특정 관계 유형을 요청할 수 있습니다.