애셋 나열

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

시작하기 전에

  1. Google Cloud CLI를 사용하여 Cloud 애셋 인벤토리에 액세스하려면 먼저 Cloud Asset API를 사용 설정합니다. Cloud Asset API 명령어를 실행하는 데 사용할 프로젝트에만 이 API를 사용 설정하면 됩니다.

    Cloud Asset Inventory API 사용 설정

  2. 로컬 클라이언트에 Google Cloud CLI를 설치합니다.

  3. 애셋을 나열할 프로젝트 또는 조직에 대해 다음 역할 중 하나가 계정에 부여되었는지 확인합니다.

    • roles/cloudasset.viewer

    • roles/cloudasset.owner

계정 구성

Cloud Asset API를 호출하려면 나열할 애셋이 포함된 프로젝트 또는 조직인 루트(상위) 리소스에 대한 해당 권한이 계정에 부여되어야 합니다. 다음은 요청의 각 ContentType에 필요한 권한입니다.

콘텐츠 유형 권한
gcloud 이름 REST 이름
access-policy ACCESS_POLICY cloudasset.assets.listAccessPolicy
content-type-unspecified CONTENT_TYPE_UNSPECIFIED cloudasset.assets.listResource
iam-policy IAM_POLICY cloudasset.assets.listIamPolicy
org-policy ORG_POLICY cloudasset.assets.listOrgPolicy
os-inventory OS_INVENTORY cloudasset.assets.listOSInventories
relationship RELATIONSHIP cloudasset.assets.listResource
resource RESOURCE cloudasset.assets.listResource

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

애셋 나열

Cloud Asset API를 사용해서 지정된 시간에 프로젝트, 폴더, 조직의 애셋 및 해당 관계를 나열하려면 다음 요청 중 하나를 수행합니다.

모든 리소스 메타데이터를 포함하여 프로젝트, 폴더, 조직의 애셋 나열

gcloud

프로젝트

gcloud asset list \
    --project=PROJECT_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_TIME"

다음 값을 제공합니다.

  • PROJECT_ID: 나열하려는 애셋이 포함된 프로젝트의 ID입니다.

  • ASSET_TYPE: 선택사항. 검색 가능한 애셋 유형의 쉼표로 구분된 목록입니다. RE2 호환 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다. 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.

--content-type 플래그를 삭제하여 리소스 메타데이터를 제외합니다.

폴더

모든 리소스 메타데이터를 포함하여 폴더의 애셋 나열

gcloud asset list \
    --folder=FOLDER_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_TIME"

다음 값을 제공합니다.

  • FOLDER_ID: 나열하려는 애셋이 포함된 폴더의 ID입니다.

    Google Cloud 폴더 ID를 찾는 방법

    콘솔

    Google Cloud 폴더 ID를 찾으려면 다음 단계를 완료합니다.

    1. Google Cloud 콘솔로 이동합니다.

      Google Cloud 콘솔로 이동

    2. 메뉴 바에서 전환 상자를 클릭합니다.
    3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
    4. 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 ID가 표시됩니다.

    gcloud CLI

    다음 명령어를 사용하여 조직 수준에 있는 Google Cloud 폴더 ID를 검색할 수 있습니다.

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    여기서 TOP_LEVEL_FOLDER_NAME은 전체 또는 일부 문자열 일치일 수 있습니다. 발견된 폴더에 대한 추가 정보를 보려면 --format 옵션을 삭제합니다.

    다른 폴더 내에서 폴더 ID를 가져오려면 하위 폴더를 나열합니다.

    gcloud resource-manager folders list --folder=FOLDER_ID

  • ASSET_TYPE: 선택사항. 검색 가능한 애셋 유형의 쉼표로 구분된 목록입니다. 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다. 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.

--content-type 플래그를 삭제하여 리소스 메타데이터를 제외합니다.

조직

모든 리소스 메타데이터를 포함하여 조직의 애셋 나열

gcloud asset list \
    --organization=ORGANIZATION_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_TIME"

다음 값을 제공합니다.

  • ORGANIZATION_ID: 나열하려는 애셋이 포함된 조직의 ID입니다.

    Google Cloud 조직 ID를 찾는 방법

    콘솔

    Google Cloud 조직 ID를 찾으려면 다음 단계를 완료합니다.

    1. Google Cloud 콘솔로 이동합니다.

      Google Cloud 콘솔로 이동

    2. 메뉴 바에서 전환 상자를 클릭합니다.
    3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
    4. 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.

    gcloud CLI

    다음 명령어를 사용하여 Google Cloud 조직 ID를 검색할 수 있습니다.

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • ASSET_TYPE: 선택사항. 검색 가능한 애셋 유형의 쉼표로 구분된 목록입니다. 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다. 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.

--content-type 플래그를 삭제하여 리소스 메타데이터를 제외합니다.

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "RESOURCE",
          "assetTypes": [
            "ASSET_TYPE_1",
            "ASSET_TYPE_2",
            "..."
          ],
          "readTime": "SNAPSHOT_TIME",
          "pageToken": "PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/assets

다음 값을 제공합니다.

  • ASSET_TYPE: 선택사항. 검색 가능한 애셋 유형의 배열입니다. 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다(RFC 3339 형식). 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다.

  • PAGE_TOKEN: 선택사항. 긴 요청 응답은 여러 페이지로 구분됩니다. 이 키-값 쌍은 첫 번째 페이지에 필요하지 않지만 여기에서 이전 응답의 nextPageToken을 사용하여 후속 페이지를 호출할 수 있습니다.

  • SCOPE: 범위는 프로젝트, 폴더 또는 조직이 될 수 있습니다.

    허용되는 값은 다음과 같습니다.

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud 프로젝트 번호를 찾는 방법

      콘솔

      Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔의 대시보드 페이지로 이동합니다.

        대시보드로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자에서 조직을 선택한 후 프로젝트 이름을 검색합니다.
      4. 프로젝트 이름을 클릭하여 해당 프로젝트로 전환합니다. 프로젝트 번호가 프로젝트 정보 카드에 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud 폴더 ID를 찾는 방법

      콘솔

      Google Cloud 폴더 ID를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔로 이동합니다.

        Google Cloud 콘솔로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
      4. 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 ID가 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 조직 수준에 있는 Google Cloud 폴더 ID를 검색할 수 있습니다.

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      여기서 TOP_LEVEL_FOLDER_NAME은 전체 또는 일부 문자열 일치일 수 있습니다. 발견된 폴더에 대한 추가 정보를 보려면 --format 옵션을 삭제합니다.

      다른 폴더 내에서 폴더 ID를 가져오려면 하위 폴더를 나열합니다.

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Google Cloud 조직 ID를 찾는 방법

      콘솔

      Google Cloud 조직 ID를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔로 이동합니다.

        Google Cloud 콘솔로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
      4. 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 Google Cloud 조직 ID를 검색할 수 있습니다.

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

contentType 키-값 쌍을 삭제하여 리소스 메타데이터를 제외합니다.

프로젝트, 폴더, 조직의 특정 관계 나열

gcloud

프로젝트

gcloud asset list \
    --project=PROJECT_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_TIME"

다음 값을 제공합니다.

  • PROJECT_ID: 나열하려는 애셋이 포함된 프로젝트의 ID입니다.

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다. 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.

--relationship-types 플래그를 삭제하여 프로젝트의 모든 관계를 나열합니다.

폴더

gcloud asset list \
    --folder=FOLDER_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_TIME"

다음 값을 제공합니다.

  • FOLDER_ID: 나열하려는 애셋이 포함된 폴더의 ID입니다.

    Google Cloud 폴더 ID를 찾는 방법

    콘솔

    Google Cloud 폴더 ID를 찾으려면 다음 단계를 완료합니다.

    1. Google Cloud 콘솔로 이동합니다.

      Google Cloud 콘솔로 이동

    2. 메뉴 바에서 전환 상자를 클릭합니다.
    3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
    4. 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 ID가 표시됩니다.

    gcloud CLI

    다음 명령어를 사용하여 조직 수준에 있는 Google Cloud 폴더 ID를 검색할 수 있습니다.

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    여기서 TOP_LEVEL_FOLDER_NAME은 전체 또는 일부 문자열 일치일 수 있습니다. 발견된 폴더에 대한 추가 정보를 보려면 --format 옵션을 삭제합니다.

    다른 폴더 내에서 폴더 ID를 가져오려면 하위 폴더를 나열합니다.

    gcloud resource-manager folders list --folder=FOLDER_ID

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다. 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.

--relationship-types 플래그를 삭제하여 폴더의 모든 관계를 나열합니다.

조직

gcloud asset list \
    --organization=ORGANIZATION_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_TIME"

다음 값을 제공합니다.

  • ORGANIZATION_ID: 나열하려는 애셋이 포함된 조직의 ID입니다.

    Google Cloud 조직 ID를 찾는 방법

    콘솔

    Google Cloud 조직 ID를 찾으려면 다음 단계를 완료합니다.

    1. Google Cloud 콘솔로 이동합니다.

      Google Cloud 콘솔로 이동

    2. 메뉴 바에서 전환 상자를 클릭합니다.
    3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
    4. 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.

    gcloud CLI

    다음 명령어를 사용하여 Google Cloud 조직 ID를 검색할 수 있습니다.

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다. 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.

--relationship-types 플래그를 삭제하여 조직의 모든 관계를 나열합니다.

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "RELATIONSHIP",
          "relationshipTypes": "INSTANCE_TO_INSTANCEGROUP",
          "readTime": "SNAPSHOT_TIME",
          "pageToken": "PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/assets

다음 값을 제공합니다.

  • SNAPSHOT_TIME: 선택사항. 애셋의 스냅샷을 만들려는 시간입니다(RFC 3339 형식). 값은 현재 시간 또는 35일 이내의 과거 시간이어야 합니다. 제공하지 않으면 스냅샷이 현재 시간으로 작성됩니다.

  • PAGE_TOKEN: 선택사항. 긴 요청 응답은 여러 페이지로 구분됩니다. 이 키-값 쌍은 첫 번째 페이지에 필요하지 않지만 여기에서 이전 응답의 nextPageToken을 사용하여 후속 페이지를 호출할 수 있습니다.

  • SCOPE: 범위는 프로젝트, 폴더 또는 조직이 될 수 있습니다.

    허용되는 값은 다음과 같습니다.

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud 프로젝트 번호를 찾는 방법

      콘솔

      Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔의 대시보드 페이지로 이동합니다.

        대시보드로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자에서 조직을 선택한 후 프로젝트 이름을 검색합니다.
      4. 프로젝트 이름을 클릭하여 해당 프로젝트로 전환합니다. 프로젝트 번호가 프로젝트 정보 카드에 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud 폴더 ID를 찾는 방법

      콘솔

      Google Cloud 폴더 ID를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔로 이동합니다.

        Google Cloud 콘솔로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
      4. 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 ID가 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 조직 수준에 있는 Google Cloud 폴더 ID를 검색할 수 있습니다.

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      여기서 TOP_LEVEL_FOLDER_NAME은 전체 또는 일부 문자열 일치일 수 있습니다. 발견된 폴더에 대한 추가 정보를 보려면 --format 옵션을 삭제합니다.

      다른 폴더 내에서 폴더 ID를 가져오려면 하위 폴더를 나열합니다.

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Google Cloud 조직 ID를 찾는 방법

      콘솔

      Google Cloud 조직 ID를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔로 이동합니다.

        Google Cloud 콘솔로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
      4. 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 Google Cloud 조직 ID를 검색할 수 있습니다.

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

relationshipTypes 키-값 쌍을 삭제하여 프로젝트의 모든 관계를 나열합니다.