애셋 기록 보기

이 페이지에서는 애셋 기록을 보는 방법을 설명합니다. Cloud Asset API를 사용하면 지난 5주 동안 지정된 기간의 여러 애셋의 이벤트 변경 내역을 확인할 수 있습니다. 이벤트 변경 내역에는 시간 경과에 따라 지정된 애셋의 모든 만들기, 삭제, 업데이트 이벤트 내역이 표시됩니다.

시작하기 전에

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. 프로젝트, 폴더 또는 조직에서 다음 역할 중 하나가 계정에 부여되었는지 확인합니다.

    • Cloud 애셋 뷰어(roles/cloudasset.viewer)
    • 소유자 기본 역할(roles/owner)

계정 구성

API 요청의 contentType 매개변수에 따라 Cloud Asset API를 호출하려면, 계정은 기록을 가져올 애셋이 포함된 루트/상위 리소스(프로젝트 또는 조직)에 대해 다음과 같은 권한이 포함된 역할을 부여받아야 합니다.

  • cloudasset.assets.exportResource
  • cloudasset.assets.exportIamPolicy
  • cloudasset.assets.exportOrgPolicy
  • cloudasset.assets.exportAccessPolicy

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

애셋 내역 가져오기

Cloud Asset API를 사용하여 특정 기간 내에 프로젝트에서 지정된 애셋의 만들기, 삭제, 업데이트 내역을 가져오려면 아래 프로세스를 따르세요.

gcloud

gcloud 도구를 시작하려면 Cloud SDK 문서를 참조하세요. --help 플래그를 사용하면 도구, 리소스, 명령어에 관한 도움말을 볼 수 있습니다.

gcloud asset --help

gcloud asset를 위한 Cloud SDK 참조에서도 --help 플래그와 함께 표시되는 도움말 텍스트를 볼 수 있습니다.

이 섹션에 표시된 gcloud asset get-history는 프로젝트의 내역을 가져옵니다. 조직의 기록을 가져오려면 명령어에 --organization=ORGANIZATION_ID 플래그를 사용합니다.

다음 예시는 프로젝트 내 애셋의 기록을 가져옵니다.

start-time은 현재 시간에서 35일을 뺀 후여야 합니다.

  1. 계정 구성을 완료하여 Cloud Asset API를 호출할 수 있는지 확인합니다.
  2. 내역을 확인하려는 애셋의 전체 리소스 이름을 결정합니다. Cloud Asset API 형식의 이름 목록은 여기를 참조하세요. 이것은 다음 예시의 asset-names 변수입니다.
  3. RFC 3339 UTC 형식으로 되어 있는 기간의 시작 시간과 종료 시간을 결정합니다. 시작 시간만 필요합니다. 자세한 내용은 TimeWindow를 참조하세요.
  4. 애셋 내역을 가져올 수준을 결정합니다. 다음 예시 명령어는 다양한 종류의 애셋 내역을 가져오는 방법을 보여줍니다.

모든 리소스 메타데이터를 포함하여 프로젝트에서 지정된 애셋의 내역을 가져옵니다.

YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday")
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")
gcloud asset get-history --project='PROJECT_ID' \
  --asset-names='//compute.googleapis.com/projects/test-project/zo\
nes/us-central1-f/instances/instance1' \
  --start-time=$YESTERDAY \
  --end-time=$NOW --content-type='resource'

프로젝트에서 지정된 애셋의 모든 IAM 정책 내역을 가져옵니다.

YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday")
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")
gcloud asset get-history --project='PROJECT_ID' \
  --asset-names='//cloudresourcemanager.googleapis.com/projects/10\
179387634' --start-time=$YESTERDAY \
  --end-time=$NOW \
  --content-type='iam-policy'
 

API

이 섹션에 표시된 명령어는 프로젝트 기록을 가져옵니다. 조직 기록을 가져오려면 gcurl 명령어에 https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:batchGetAssetsHistory REST 메서드를 사용합니다.

  1. 계정 구성을 완료하여 Cloud Asset API를 호출할 수 있는지 확인합니다.
  2. 내역을 확인하려는 애셋의 전체 리소스 이름을 결정합니다. Cloud Asset API 형식의 이름 목록은 여기를 참조하세요. 다음 예시는 //compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall을 사용합니다.
  3. RFC 3339 UTC 형식으로 되어 있는 기간의 시작 시간과 종료 시간을 결정합니다. 시작 시간만 필요합니다. 자세한 내용은 TimeWindow를 참조하세요.
  4. 애셋 내역을 가져올 수준을 결정합니다. 다음 예시 명령어는 다양한 종류의 애셋 내역을 가져오는 방법을 보여줍니다.

TOKEN Var 설정

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

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

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

Authorization: Bearer y29.xxxxxxx

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

TOKEN=y29.xxxxxxx

모든 리소스 메타데이터를 포함하여 프로젝트에서 지정된 애셋의 내역 가져오기

YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday")
curl -X POST  -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"contentType":"RESOURCE", \
          "assetNames": \
            "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
          "readTimeWindow": {"startTime": "'$YESTERDAY'"}}' \
     https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

리소스 메타데이터 없이 프로젝트에서 지정된 애셋의 내역 가져오기

YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday")
curl -X POST  -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"assetNames": \
            "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
          "readTimeWindow": {"startTime": "'$YESTERDAY'"}}' \
     https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

프로젝트에서 지정된 애셋의 모든 IAM 정책 내역을 가져옵니다.

YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday")
curl -X POST  -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"contentType":"IAM_POLICY", \
          "assetNames": \
            "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
          "readTimeWindow": {"startTime": "'$YESTERDAY'"}}' \
     https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory