클라우드 애셋 인벤토리 빠른 시작

이 가이드에서는 Compute Engine VM(가상 머신) 인스턴스 및 Cloud Asset API를 사용하여 스냅샷을 내보내고 애셋 내역을 가져오는 과정을 안내합니다. Cloud Asset API를 호출하여 전체 폴더 또는 조직을 내보내거나 조직의 애셋 내역을 가져올 수도 있습니다.

자세한 내용은 클라우드 애셋 인벤토리 개요를 참조하세요.

시작하기 전에

  1. 프로젝트에서 Cloud Asset API를 사용 설정합니다.

  2. 다음 역할 중 하나를 프로젝트, 폴더 또는 조직에 적용합니다.

    • roles/owner
    • roles/cloudasset.viewer

    이러한 역할 중 하나를 포함하는 역할도 액세스 권한을 부여합니다. 역할 및 권한에 대한 자세한 내용은 역할 이해를 참조하세요.

인스턴스 설정

  1. 프로젝트에 기존 서비스 계정이 없으면 새 서비스 계정을 생성합니다.
  2. 서비스 계정에 owner 또는 cloudasset.viewer 역할을 부여하여 Cloud Asset API를 사용 설정합니다.
  3. 프로젝트에 내보낸 데이터를 저장할 수 있는 기존 Cloud Storage 버킷이 없으면 새 버킷을 생성합니다.
  4. 인스턴스 만들기 페이지로 이동하고 서비스 계정을 선택하여 새 Compute Engine VM 인스턴스를 설정합니다.

    인스턴스 만들기 페이지로 이동

  5. 액세스 범위에서 모든 Cloud API에 대한 전체 액세스 허용을 선택합니다.
  6. 만들기를 클릭하여 인스턴스를 실행합니다.

애셋 스냅샷 내보내기

Cloud Asset API를 사용하여 프로젝트의 애셋 메타데이터를 내보내려면 아래 과정을 따르세요.

조직의 애셋 메타데이터를 내보내려면 curl 명령어에 https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:exportAssets REST 메소드를 사용합니다.

폴더의 애셋 메타데이터를 내보내려면 https://cloudasset.googleapis.com/v1/folders/FOLDER_NUMBER:exportAssets REST 메소드를 사용합니다.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 인스턴스 목록 옆의 SSH 버튼을 클릭하여 인스턴스에 연결된 웹 SSH 클라이언트를 엽니다.
  3. 웹 SSH 클라이언트에서 다음 호출을 사용하여 서비스 계정의 인증 토큰을 생성합니다.

    TOKEN=$(gcloud auth print-access-token)
    
  4. 다음 curl 명령어를 사용하여 프로젝트의 모든 애셋 메타데이터를 내보냅니다.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
         -d '{"contentType":"RESOURCE", "outputConfig":{"gcsDestination":{"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
            https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets
    

다음 명령어를 사용하여 보다 상세한 수준으로 애셋 메타데이터를 내보낼 수도 있습니다.

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

curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"contentType":"IAM_POLICY", "outputConfig":{"gcsDestination":{"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
        https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

프로젝트에서 메타데이터 없이 모든 애셋 이름 내보내기

curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"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. 인스턴스용 웹 SSH 클라이언트를 열고 다음 curl 명령어를 입력합니다.

    curl -H "Authorization: Bearer $TOKEN" \
         -H "Content-Type: application/json" \
            https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER
    

다음과 비슷한 응답이 표시됩니다. 내보내기 프로세스가 완료되면 done 필드가 true로 설정됩니다.

{
  "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"
      }
    }
  }
}

애셋 내역 가져오기

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

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

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 인스턴스 목록 옆의 SSH 버튼을 클릭하여 인스턴스에 연결된 웹 SSH 클라이언트를 엽니다.
  3. 웹 SSH 클라이언트에서 다음 호출을 사용하여 서비스 계정의 인증 토큰을 생성합니다.

    TOKEN=$(gcloud auth print-access-token)
    
  4. 내역을 확인하려는 애셋의 전체 리소스 이름을 결정합니다. 다음 예에서는 //compute.googleapis.com/projects/PROJECT_ID/global/firewalls/default-firewall을 사용합니다.

  5. RFC 3339 UTC 형식으로 되어 있는 기간의 시작 시간과 종료 시간을 결정합니다. 시작 시간만 필요합니다. 자세한 내용은 TimeWindow를 참조하세요.

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

    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/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": 

다음 명령어를 사용하여 보다 상세한 수준으로 애셋 메타데이터를 내보낼 수 있습니다.

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

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": "2014-10-02T15:01:23.045123456Z"}}' \
             https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

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

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": "2014-10-02T15:01:23.045123456Z"}}' \
             https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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

Resource Manager 문서