애셋 나열

이 페이지에서는 Cloud 애셋 인벤토리 애셋 목록 서비스를 사용하는 방법을 보여줍니다. Cloud 애셋 인벤토리 API를 사용하여 지정된 타임스탬프에서 애셋 페이지 목록을 볼 수 있습니다.

시작하기 전에

gcloud

  1. gcloud 명령줄 도구를 사용하여 Cloud 애셋 인벤토리에 액세스하기 전에 먼저 Cloud Asset API를 사용 설정합니다. Cloud Asset API 명령어를 실행하는 데 사용할 프로젝트에만 이 API를 사용 설정하면 됩니다.
    Cloud 애셋 인벤토리 API 사용 설정
  2. 로컬 클라이언트에 Cloud SDK를 설치합니다.

API

  1. Google OAuth 시스템과 상호작용하기 위해 로컬 머신에 oauth2l을 설치합니다.
  2. Unix curl 명령어에 대한 액세스 권한이 있는지 확인하세요.
  3. 애셋을 나열할 프로젝트 또는 조직에 대해 다음 역할 중 하나가 계정에 부여되었는지 확인합니다.
    • roles/cloudasset.viewer
    • roles/cloudasset.owner

계정 구성

Cloud Asset API를 호출하려면 나열할 애셋이 포함된 프로젝트 또는 조직이 있는 루트(상위) 리소스에 리소스를 나열할 수 있는 cloudasset.assets.listResource 권한 또는 IAM 정책을 나열할 수 있는 cloudasset.assets.listIamPolicy 권한이 계정에 부여되어야 합니다.

계정이 리소스 루트에 Cloud 애셋 뷰어(roles/cloudasset.viewer) 역할, Cloud 애셋 소유자(roles/cloudasset.owner) 역할 또는 소유자(roles/owner) 기본 역할을 부여받았다면 이미 Cloud Asset API를 호출할 충분한 권한이 있습니다. 그렇지 않다면 권한 구성 페이지의 단계를 따릅니다.

애셋 나열

Cloud Asset API를 사용하여 지정된 기간 내에 프로젝트의 애셋을 나열하려면 다음 단계를 따르세요.

gcloud

이 섹션에 표시된 명령어는 프로젝트의 애셋을 나열합니다. 조직의 애셋을 나열하려면 명령어에서 --organization=ORGANIZATION_ID 플래그를 사용합니다.

다음 예시에서는 프로젝트 내의 애셋을 나열합니다.

시간대의 가장 최신 가능 start-time은 현재 시간에서 35일(포함)을 뺀 값입니다.

  1. 계정 구성 단계를 수행하여 Cloud Asset API를 호출할 수 있는지 확인합니다.
  2. 나열할 애셋의 리소스 유형을 결정합니다. 아래 예시에서 asset-types 변수입니다.
  3. 애셋을 나열할 시간을 결정합니다. RFC 3339 UTC 형식에서 gcloud 명령어의 snapshot-time입니다.

요청을 보내는 데 사용하는 프로젝트인 --billing-project 플래그로 결제 프로젝트를 지정할 수 있습니다. 프로젝트의 애셋을 나열할 때 --project 플래그로 나열할 대상 프로젝트를 지정할 수 있습니다.

플래그 및 옵션의 전체 목록을 보려면 gcloud alpha asset list --help를 실행합니다.

모든 리소스 메타데이터를 포함하여 프로젝트의 애셋을 나열합니다.

NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")
gcloud beta asset list --project='PROJECT_ID' \
  --billing-project='BILLING_PROJECT_ID' \
  --asset-types='compute.googleapis.com/Instance' \
  --snapshot-time=$NOW \
  --content-type='resource'

리소스 메타데이터 없이 프로젝트의 애셋을 나열합니다.

NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")
gcloud beta asset list --project='PROJECT_ID' \
  --billing-project='BILLING_PROJECT_ID' \
  --asset-types='compute.googleapis.com/Instance' \
  --snapshot-time=$NOW

API

이 섹션에 표시된 명령어는 프로젝트의 애셋을 나열합니다. 조직의 애셋을 나열하려면 gcurl 명령어에서 https://cloudasset.googleapis.com/v1p5beta1/organizations/ORGANIZATION_NUMBER/assets REST 메서드를 사용합니다.

  1. 계정 구성 단계를 수행하여 Cloud Asset API를 호출할 수 있는지 확인합니다.
  2. 애셋을 나열할 시간을 결정합니다. 이는 RFC 3339 UTC 형식에서 다음 명령어의 readTime 매개변수입니다.
  3. 나열할 애셋의 리소스 유형을 결정합니다. 다음 예시는 compute.googleapis.com/Instance을 사용합니다.

Token Var 설정

액세스 토큰을 가져오려면 ~/credentials.json 파일로 다음 명령어를 실행합니다.

oauth2l header --json ~/credentials.json cloud-platform

다음과 비슷한 출력이 표시되어야 하며 액세스 토큰으로 y29.xxxxxx를 가지고 있어야 합니다.

Authorization: Bearer y29.xxxxxxx

Token 변수를 액세스 토큰에 설정합니다.

Token=y29.xxxxxxx

모든 리소스 메타데이터를 포함하여 프로젝트의 애셋을 나열합니다.

pageToken 매개변수를 첫 번째 페이지에 대해서 설정할 수 없으며 이전 페이지 요청의 응답으로 페이지 토큰 값으로 설정해야 합니다. pageToken은 위에서 언급된 Token와 다릅니다.

NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")
curl -X POST  -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $Token" -H "Content-Type: application/json" \
     -d '{"contentType":"RESOURCE", \
          "assetTypes": "compute.googleapis.com/Instance", \
          "readTime": "'$NOW'", \
          "pageToken": "PAGE_TOKEN_FROM_PREVIOUS_PAGE_RESPONSE"}' \
     https://cloudasset.googleapis.com/v1p5beta1/projects/PROJECT_NUMBER/assets

리소스 메타데이터 없이 프로젝트의 애셋을 나열합니다.

페이지 토큰 매개변수를 첫 번째 페이지에 대해서 설정할 수 없으며 이전 페이지 요청의 응답으로 페이지 토큰 값으로 설정해야 합니다.

NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")
curl -X POST  -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $Token" -H "Content-Type: application/json" \
     -d '{"assetTypes": "compute.googleapis.com/Instance", \
          "readTime": "'$NOW'", \
          "pageToken": "PAGE_TOKEN_FROM_PREVIOUS_PAGE_RESPONSE"}' \
     https://cloudasset.googleapis.com/v1p5beta1/projects/PROJECT_NUMBER/assets

API 참조