Google Cloud

다운로드 0
업데이트 2026. 10. 20.

gcp-assets

Cloud Asset Inventory API로 Google Cloud 프로젝트·폴더·조직 아래의 자원을 검색합니다.

문법

gcp-assets [profile=STRING] [scope=STRING] [types=STRING] [query=STRING] [limit=INT] [verbose=BOOL]

옵션

profile=STRING
선택 옵션. Google Cloud 접속 프로파일 식별자. 쉼표로 여러 개를 지정하면 프로파일마다 차례로 조회하고 profile 필드로 구분합니다. 생략하면 사용 권한이 있는 모든 Google Cloud 접속 프로파일로 조회합니다. 조회 중 한 프로파일에서 오류가 나면 그때까지 출력한 결과는 남고, 나머지 프로파일은 조회하지 않은 채 쿼리가 오류로 끝납니다.
scope=STRING
선택 옵션. 조회 범위. projects/프로젝트ID(또는 projects/프로젝트번호), folders/폴더번호, organizations/조직번호 중 하나. 지정한 범위와 그 아래(하위 폴더·프로젝트 포함)의 자원을 조회합니다. 생략하면 서비스 계정 JSON 키의 프로젝트를 조회합니다.
types=STRING
선택 옵션. 조회할 자산 유형. 쉼표로 여러 개를 지정할 수 있고 정규표현식을 지원합니다. 예: compute.googleapis.com/Instance, iam.googleapis.com/.*. 생략하면 모든 유형을 조회합니다. 자주 쓰는 유형은 설명의 자산 유형 표를 참고합니다.
query=STRING
선택 옵션. Cloud Asset Inventory 검색식. 예: labels.env:prod, location:asia-northeast3, name:sinks. 한글처럼 영문·숫자가 아닌 문자가 든 검색어는 큰따옴표로 감싸야 하며, 옵션 값 안에서는 \"로 씁니다. 예: query="tagKeys:\"앱개발팀\"". 검색식 문법은 Cloud Asset Inventory 검색식 문법을 참고합니다.
limit=INT
선택 옵션. 프로파일별 최대 출력 건수. 1 이상의 정수. 생략하면 전체를 조회합니다.
verbose=BOOL
선택 옵션. t이면 자원 전체 설정(versioned_resources)과 부속 자원(attached_resources)을 함께 출력합니다. t, f, true, false 중 하나 (기본값: f)

출력 필드

필드타입이름설명
profile문자열프로파일접속 프로파일 이름
asset_type문자열자산 유형예: compute.googleapis.com/Instance
display_name문자열표시 이름자원 표시 이름
project_id문자열프로젝트 ID사용자가 지정한 프로젝트 ID. 리소스가 프로젝트에 속하지 않으면(조직·폴더 등) 빈 값
project_name문자열프로젝트 이름프로젝트 표시 이름. 리소스가 프로젝트에 속하지 않으면(조직·폴더 등) 빈 값
location문자열위치예: global, us-central1
state문자열상태자원 상태. 예: RUNNING, ACTIVE, ENABLED
create_time날짜생성 시각자원 생성 시각. 값을 제공하는 자원만 있음
update_time날짜수정 시각자원 최종 수정 시각. 값을 제공하는 자원만 있음
name문자열이름전체 자원 이름. 예: //compute.googleapis.com/projects/p1/zones/z1/instances/i1
description문자열설명자원 설명. 설명이 있는 자원만 값이 있음
labels맵라벨사용자 정의 라벨
tags목록태그자원에 직접 연결된 태그. 항목마다 tagKey, tagKeyId, tagValue, tagValueId
effective_tags목록적용 태그직접 연결되거나 상위에서 상속된 태그. 상속한 자원(attachedResource)별로 묶임
network_tags목록네트워크 태그Compute Engine 자원의 네트워크 태그
kms_keys목록KMS 키자원 암호화에 사용하는 Cloud KMS 키
project문자열프로젝트projects/{번호} 형식의 소속 프로젝트. 조직·폴더 자원은 빈 값
folders목록폴더folders/{번호} 형식의 상위 폴더 목록. 가까운 폴더부터 나열
organization문자열조직organizations/{번호} 형식의 소속 조직
parent_asset_type문자열상위 자원 유형상위 자원의 자산 유형
parent_full_resource_name문자열상위 자원상위 자원의 전체 이름
additional_attributes맵추가 속성자산 유형별 추가 속성. 예: 프로젝트의 projectId
versioned_resources목록자원 설정API 버전별 자원 전체 설정. Cloud Asset Inventory 응답 원본. verbose=t일 때만 출력
attached_resources목록부속 자원Compute Engine OS 인벤토리 등 자원에 붙은 부속 자원. Cloud Asset Inventory 응답 원본. verbose=t일 때만 출력

오류 코드

파싱 오류

오류 메시지원인해결
사용 가능한 Google Cloud 프로파일이 없습니다.프로파일 식별자가 틀렸거나 사용 권한이 없음profile 옵션에 접속 프로파일 식별자 입력, 프로파일 사용 권한 확인
scope 형식이 올바르지 않습니다: {scope}scope 형식 오류, 또는 폴더·조직을 이름으로 지정함projects/, folders/, organizations/ 다음에 ID·번호 입력
limit은 양의 정수여야 합니다: {limit}limit이 0 이하이거나 숫자가 아님1 이상의 정수 입력
verbose는 t, f, true, false 중 하나여야 합니다: {verbose}verbose 값 오류t, f, true, false 중 하나 입력

런타임 오류

오류 메시지원인해결
HTTP 403: PERMISSION_DENIED - The caller does not have permission조회 범위에 Cloud 애셋 뷰어 역할이 없음gcp-check-permissions로 확인하고 해당 범위에 역할 부여
HTTP 403: PERMISSION_DENIED - Cloud Asset API has not been used in project ...서비스 계정 프로젝트에서 Cloud Asset API 미사용 설정서비스 계정이 속한 프로젝트에서 Cloud Asset API 사용 설정
HTTP 400: INVALID_ARGUMENT - Invalid query syntax, Unsupported field: ...검색식 문법 오류, 지원하지 않는 필드오류 메시지의 지원 필드 목록과 검색식 문법 문서를 참고해 수정
HTTP 400: INVALID_ARGUMENT - Please quote term ... with double quotes검색식에 한글 등 특수 문자가 든 검색어를 따옴표 없이 사용검색어를 "로 감싸기
HTTP 400: INVALID_ARGUMENT - No supported asset type matches: ...types에 검색할 수 없거나 없는 자산 유형 지정지원 자산 유형 목록에서 유형 확인
token exchange failed, HTTP 400: Invalid grantJSON 키 오류, 서비스 계정·키 삭제새 키를 발급해 접속 프로파일 수정

설명

지정한 범위에서 Cloud Asset Inventory의 searchAllResources API로 자원 메타데이터를 검색합니다. 조직이나 폴더를 지정하면 그 아래 모든 폴더와 프로젝트의 자원까지 조회합니다. 결과는 한 번에 최대 500건씩 받아 끝까지 이어서 조회합니다.

API는 소속 프로젝트를 번호(projects/번호)로만 돌려줍니다. 알아보기 쉽도록 같은 범위에서 프로젝트 정보를 한 번 더 조회해 project_id와 project_name을 채웁니다. 폴더·조직은 번호(folders, organization)로만 나옵니다. 폴더·조직 이름은 types="cloudresourcemanager.googleapis.com/(Folder|Organization)"으로 조회해 확인합니다.

scope에는 표시 이름이 아니라 ID·번호를 지정합니다. 폴더·프로젝트 표시 이름은 겹칠 수 있고 바뀔 수 있어, 이름으로 지정하면 의도하지 않은 범위를 조회할 수 있기 때문입니다. 조직·폴더 번호는 다음 쿼리로 확인할 수 있습니다.

gcp-assets profile=gcp types="cloudresourcemanager.googleapis.com/(Organization|Folder|Project)"
| fields asset_type, display_name, name, organization
Note
조회 결과는 실시간 상태가 아니라 Google Cloud가 수집한 최근 시점의 인벤토리입니다. 자원 유형에 따라 변경 사항이 몇 분에서 몇 시간 뒤에 반영됩니다. 자원 안의 데이터(버킷 파일, DB 내용)와 권한 정책은 조회하지 않습니다. 권한 정책은 gcp-iam-policies 명령어로 조회합니다.

query는 앱에서 검사하지 않고 Google Cloud에 그대로 전달합니다. 잘못된 검색식은 Google Cloud가 INVALID_ARGUMENT 오류와 원인을 돌려주며, 그 메시지가 쿼리 오류로 표시됩니다.

verbose=t를 지정하면 자원 유형마다 구조가 다른 전체 설정을 함께 받으므로 응답이 커집니다. 범위가 크면 접속 프로파일의 읽기 타임아웃을 늘리거나 types로 범위를 좁혀 사용합니다.

자주 쓰는 자산 유형

types 옵션에 지정할 수 있는 자산 유형 중 자주 쓰는 것입니다. 전체 목록은 지원 자산 유형을 참고합니다. 목록에 없거나 이름이 틀리면 No supported asset type matches 오류가 납니다.

분류자산 유형자원
컴퓨팅compute.googleapis.com/InstanceVM 인스턴스
컴퓨팅compute.googleapis.com/Disk영구 디스크
컴퓨팅container.googleapis.com/ClusterGKE 클러스터
컴퓨팅run.googleapis.com/ServiceCloud Run 서비스
컴퓨팅cloudfunctions.googleapis.com/FunctionCloud Functions (2세대)
네트워크compute.googleapis.com/Firewall방화벽 규칙
네트워크compute.googleapis.com/NetworkVPC 네트워크
네트워크compute.googleapis.com/Subnetwork서브넷
네트워크compute.googleapis.com/AddressIP 주소 예약
네트워크dns.googleapis.com/ManagedZoneCloud DNS 영역
스토리지·DBstorage.googleapis.com/BucketCloud Storage 버킷
스토리지·DBsqladmin.googleapis.com/InstanceCloud SQL 인스턴스
스토리지·DBbigquery.googleapis.com/DatasetBigQuery 데이터 세트
보안·IDiam.googleapis.com/ServiceAccount서비스 계정
보안·IDiam.googleapis.com/ServiceAccountKey서비스 계정 키
보안·IDiam.googleapis.com/Role커스텀 역할
보안·IDcloudkms.googleapis.com/CryptoKeyCloud KMS 키
보안·IDsecretmanager.googleapis.com/SecretSecret Manager 보안 비밀
보안·IDorgpolicy.googleapis.com/Policy조직 정책
리소스 계층cloudresourcemanager.googleapis.com/Organization조직
리소스 계층cloudresourcemanager.googleapis.com/Folder폴더
리소스 계층cloudresourcemanager.googleapis.com/Project프로젝트
운영serviceusage.googleapis.com/Service사용 설정된 API
운영logging.googleapis.com/LogSink로그 싱크

정규표현식으로 여러 유형을 한 번에 지정할 수 있습니다. 예: types="compute.googleapis.com/.*"(Compute Engine 전체), types="iam.googleapis.com/.*"(IAM 전체)

사용 예

예시: 조직 전체 자원 유형별 현황

상황: 조직에 어떤 종류의 자원이 몇 개 있는지 파악합니다.

gcp-assets profile=gcp scope=organizations/123456789012
| stats count by asset_type
| sort -count

예상 결과:

asset_typecount
serviceusage.googleapis.com/Service52
logging.googleapis.com/LogBucket8
logging.googleapis.com/LogSink8
iam.googleapis.com/ServiceAccountKey3
cloudresourcemanager.googleapis.com/Project2

결과 해석: 자원 유형별 건수입니다. serviceusage.googleapis.com/Service는 프로젝트마다 사용 설정된 API입니다. 특정 유형만 보려면 types 옵션을 지정합니다.

예시: 서비스 계정과 키 목록

상황: 조직 안의 서비스 계정과 서비스 계정 키를 프로젝트별로 확인합니다.

gcp-assets profile=gcp scope=organizations/123456789012 types="iam.googleapis.com/.*"
| fields project_id, asset_type, display_name, name, create_time

예상 결과:

project_idasset_typedisplay_namenamecreate_time
my-project-123456iam.googleapis.com/ServiceAccountlogpresso//iam.googleapis.com/projects/my-project-123456/serviceAccounts/...
my-project-123456iam.googleapis.com/ServiceAccountKeyprojects/my-project-123456/serviceAccounts/.../keys/...//iam.googleapis.com/projects/my-project-123456/serviceAccounts/.../keys/...2026-10-19 14:02:13+0900

결과 해석: 사용하지 않는 서비스 계정이나 오래된 키가 있는지 점검합니다.

예시: 태그가 적용된 자원

상황: 특정 태그가 직접 연결되거나 상속된 자원을 찾습니다.

gcp-assets profile=gcp scope=organizations/123456789012 query="effectiveTagKeys:\"앱개발팀\""
| stats count by project_id, asset_type

결과 해석: 태그를 연결한 프로젝트와 그 아래 자원이 모두 나옵니다. 직접 연결된 자원만 찾으려면 tagKeys:를 사용합니다.

예시: 하위 폴더를 포함한 조직 전체 프로젝트

상황: gcp-projects의 scope는 바로 아래 프로젝트만 조회하므로, 하위 폴더 안까지 포함한 조직 전체 프로젝트는 이 명령어로 조회합니다.

gcp-assets profile=gcp scope=organizations/123456789012 types="cloudresourcemanager.googleapis.com/Project"
| fields project_id, display_name, folders, state, create_time

결과 해석: 프로젝트마다 소속 폴더 번호(folders)와 상태가 나옵니다.