Cloud 애셋 인벤토리 개요

Cloud 애셋 인벤토리는 최대 35일까지의 생성, 업데이트, 삭제 기록이 포함된 Google Cloud 애셋 메타데이터를 보고, 검색, 내보내기, 모니터링, 분석할 수 있는 전역 메타데이터 인벤토리 서비스입니다. 지난 35일 동안 변경되지 않은 애셋은 최신 상태를 보고합니다.

애셋 메타데이터는 다음 위치에서 가져올 수 있습니다.

  • Compute Engine VM 인스턴스, Cloud Storage 버킷, App Engine 인스턴스와 같은 Google Cloud 리소스

  • IAM 정책, 조직 정책, Access Context Manager 정책과 같이 Google Cloud 리소스에 설정된 정책

  • OS 인벤토리 관리런타임 정보

애셋을 사용하는 방법은 다음과 같습니다.

애셋 유형, 애셋 이름, 콘텐츠 유형

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 콘텐츠 유형을 사용할 때는 모든 관계를 요청하는 대신 특정 관계 유형을 요청할 수 있습니다.

다음 단계