로컬 머신으로 Cloud Asset API 호출

이 페이지에서는 로컬 머신에서 Cloud Asset API를 호출하는 방법을 설명합니다.

시작하기 전에

  1. Google OAuth 시스템과 상호작용하기 위해 로컬 머신에 oauth2l을 설치합니다.
  2. Unix curl 명령어에 액세스할 수 있는지 확인합니다. 다음 역할 중 하나를 프로젝트, 폴더 또는 조직에 적용합니다.
    • roles/owner
    • roles/cloudasset.viewer
  3. 내보낸 스냅샷을 저장하도록 Cloud Storage 버킷을 설정합니다.

사용자 인증 정보 파일 다운로드

Cloud Asset API를 호출하려면 JSON 사용자 인증 정보 파일이 필요합니다. 아래 프로세스에 따라 파일을 다운로드하세요.

  1. 사용자 인증 정보 페이지로 이동합니다.

  2. 사용자 인증 정보 만들기 드롭다운을 열고 OAuth 클라이언트 ID를 선택합니다.

  3. 새 프로젝트의 클라이언트 ID를 만드는 경우 OAuth 동의 화면을 설정해야 합니다. 동의 화면은 클라이언트 ID를 사용하는 애플리케이션이 비공개 데이터에 대한 액세스를 요청할 때마다 표시됩니다. 메시지가 표시되면 다음 단계를 따릅니다.

    1. 동의 화면 구성을 클릭하고 동의 화면의 필수 정보를 입력합니다.

    2. 변경사항을 저장하여 클라이언트 ID 만들기로 돌아갑니다.

  4. 클라이언트 ID 만들기 페이지에서 애플리케이션 유형 아래 기타를 선택합니다.

  5. 사용자 인증 정보의 이름을 입력한 후 만들기를 클릭합니다. 클라이언트 ID와 클라이언트 보안 비밀이 나와 있는 확인 대화상자가 나타납니다.

  6. 확인 대화상자를 닫고 오른쪽에서 다운로드 아이콘을 클릭하여 새 클라이언트 ID JSON 파일을 저장합니다.

  7. 경로가 ~/credentials.json이 되도록 다운로드한 JSON 파일의 이름을 지정하고 이동합니다.

환경 준비

아래 프로세스에 따라 Cloud Asset API를 호출할 수 있는 환경을 준비하세요.

  1. 다음 명령어를 사용하여 초기 설정을 확인합니다.

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

    다음과 비슷한 출력이 표시됩니다.

    Authorization: Bearer y29.xxxxxxx
    
  2. 다음 명령어를 사용하여 Google REST API를 호출할 셸 별칭을 정의합니다.

    alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json \
    cloud-platform)" -H "Content-Type: application/json" '
    

애셋 스냅샷 내보내기

내보낸 스냅샷에서 원하는 세부정보 수준을 지원하는 명령어를 선택합니다. 다음 명령어는 내보낸 스냅샷을 Cloud Storage 버킷의 gs://YOUR_BUCKET/NEW_FILE에 저장합니다.

조직의 애셋 스냅샷을 내보내려면 다음 https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:exportAssets 명령어에 gcurl REST 메소드를 사용하세요.

폴더의 애셋 스냅샷을 내보내려면 https://cloudasset.googleapis.com/v1/folders/FOLDER_NUMBER:exportAssets REST 메소드를 사용하세요.

프로젝트에서 메타데이터 없이 모든 리소스 이름 내보내기

gcurl -d '{"outputConfig":{"gcsDestination": \
          {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

프로젝트에서 모든 리소스 메타데이터 내보내기

gcurl -d '{"contentType":"RESOURCE", "outputConfig":{"gcsDestination": \
          {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

프로젝트에서 Cloud IAM 정책 내보내기

gcurl -d '{"contentType":"IAM_POLICY", "outputConfig":{\
           "gcsDestination": {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
           https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

애셋 스냅샷 보기

내보낸 애셋을 보려면 Cloud Storage 브라우저 페이지로 이동하고 새 파일을 엽니다. 내보내기에 애셋과 애셋의 리소스 이름이 나열됩니다.

내보내기 상태 확인

애셋 내보내기는 대부분의 프로젝트, 폴더, 조직에서 몇 초가 걸리는 장기 실행 프로세스입니다. 프로젝트와 리소스가 많은 대규모 폴더와 조직의 경우 이 프로세스를 완료하는 데 더 오래 걸릴 수 있습니다. 내보내기 작업 번호는 내보내기 요청의 상태를 확인하는 데 사용됩니다.

내보내기의 상태를 확인하는 방법은 다음과 같습니다.

  1. 응답의 name 필드에서 작업 번호를 가져옵니다.

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER"
    

  2. 작업 번호를 다음 명령어에 입력합니다.

    gcurl https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER

다음과 비슷한 응답이 반환됩니다.

{
  "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest",
    "parent": "projects/PROJECT_NUMBER",
    "outputConfig": {
      "gcsDestination": {
        "uri": "gs://YOUR_BUCKET/NEW_FILE"
      }
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsResponse",
    "readTime": [timestamp],
    "outputConfig": {
      "gcsDestination": {
        "uri": "gs://YOUR_BUCKET/NEW_FILE"
      }
    }
  }
}

또한 전체 폴더 또는 조직을 대상으로 ExportAssets를 호출할 수도 있습니다. 자세한 내용은 Cloud Asset API 참고 자료를 확인하세요.

애셋 내역 가져오기

batchGetAssetsHistory 메소드를 사용하여 특정 기간 내에 프로젝트에서 지정된 애셋의 만들기, 삭제, 업데이트 내역을 가져오려면 아래 프로세스를 따릅니다.

조직의 내역을 가져오려면 gcurl 명령어에 https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:batchGetAssetsHistory REST 메소드를 사용합니다.

  1. 환경 준비를 통해 Cloud Asset API를 호출할 수 있는지 확인합니다.
  2. 내역을 확인하려는 애셋의 전체 리소스 이름을 결정합니다. 다음 예에서는 //compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall을 사용합니다.
  3. RFC 3339 UTC 형식으로 되어 있는 기간의 시작 시간과 종료 시간을 결정합니다. 시작 시간만 필요합니다. 자세한 내용은 TimeWindow를 참조하세요.
  4. 원하는 응답의 세부정보 수준을 지원하는 명령어를 선택합니다.

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

gcurl -d '{"contentType":"RESOURCE", \
           "assetNames": \
             "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
           "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
      https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

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

gcurl -d '{"assetNames": \
             "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
           "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
      https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

프로젝트에서 지정된 애셋의 모든 Cloud IAM 정책의 내역 가져오기

gcurl -d '{"contentType":"IAM_POLICY", \
           "assetNames": \
             "//compute.googleapis.com/projects/my_project_id/global/firewalls/default-firewall", \
           "readTimeWindow": {"startTime": "2014-10-02T15:01:23.045123456Z"}}' \
      https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

내역은 다음 형식으로 표시됩니다.

{
  "assets": [
    {
      "window": {
        "startTime": 
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Resource Manager 문서