프로젝트, 폴더 또는 조직에서 리소스를 검색하고 쿼리를 사용하여 반환된 결과를 필터링할 수 있습니다.
시작하기 전에
Cloud 애셋 인벤토리 명령어를 실행할 프로젝트에서 Cloud 애셋 인벤토리 API를 사용 설정하세요.
계정에 Cloud 애셋 인벤토리 API를 호출할 수 있는 올바른 역할이 있는지 확인합니다. 각 호출 유형에 대한 개별 권한은 권한을 참고하세요.
쿼리 구성
쿼리를 구성하기 전에 쿼리를 지정하지 않은 검색 요청으로 시작하는 것이 좋습니다. 전체 응답의 필드와 값을 사용하여 검색어 구문을 사용하여 쿼리를 만들고 원하는 결과가 반환될 때까지 이를 미세 조정합니다.
쿼리에서 사용할 수 있는 필드는 searchAllResources 참고 문서에 자세히 설명되어 있습니다.
모든 리소스를 검색할 수 있는 것은 아닙니다. 리소스 이름은 리소스 유형을 참고하고 검색 API에서 사용할 수 있는지 확인합니다.
리소스 검색
콘솔
리소스 메타데이터를 검색하려면 다음 단계를 완료하세요.
-
Google Cloud 콘솔에서 애셋 인벤토리 페이지로 이동합니다.
- 검색하려는 프로젝트, 폴더 또는 조직으로 변경합니다.
- 리소스 탭을 클릭합니다.
-
리소스를 검색하려면 필터 필드에 쿼리를 입력합니다. 검색어를 작성하는 방법은 검색어 구문을 참고하세요.
쿼리 구성을 더 쉽게 하려면 필터 필드를 클릭하여 검색 가능한 필드를 표시하고 쿼리에 추가할 수 있습니다.
검색을 실행하면 쿼리와 일치하는 리소스가 결과 테이블에 나열됩니다. 쿼리를 더블클릭하여 수정하거나 결과 필터링 창을 사용하여 특정 기준에 따라 검색 결과를 제한합니다.
Google Cloud CLI 명령어로 쿼리를 보려면 쿼리 보기를 클릭합니다.
결과를 내보내려면 CSV 다운로드를 클릭합니다.
gcloud
gcloud asset search-all-resources \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY" \ --read-mask="READ_MASK"
다음 값을 제공합니다.
-
SCOPE_PATH
: 다음 중 한 가지 값을 사용합니다.허용되는 값은 다음과 같습니다.
-
projects/PROJECT_ID
: 여기서PROJECT_ID
는 검색하려는 애셋이 있는 프로젝트의 ID입니다. -
projects/PROJECT_NUMBER
: 여기서PROJECT_NUMBER
는 검색하려는 애셋이 있는 프로젝트의 번호입니다.Google Cloud 프로젝트 번호를 찾는 방법
Google Cloud 콘솔
Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.
gcloud CLI
다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
: 여기서FOLDER_ID
는 검색하려는 애셋이 있는 폴더의 ID입니다.Google Cloud 폴더의 ID를 찾는 방법
Google Cloud 콘솔
Google Cloud 폴더의 ID를 찾으려면 다음 단계를 완료하세요.
-
Google Cloud 콘솔로 이동합니다.
- 메뉴 바에서 전환 목록 상자를 클릭합니다.
- 목록 상자에서 조직을 선택합니다.
- 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 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를 반환하지 않습니다. 이렇게 하려면 최상위 폴더의 ID를 사용하여 다음 명령어를 실행합니다.
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
: 여기서ORGANIZATION_ID
는 검색하려는 애셋이 있는 조직의 ID입니다.Google Cloud 조직의 ID를 찾는 방법
Google Cloud 콘솔
Google Cloud 조직의 ID를 찾으려면 다음 단계를 완료하세요.
-
Google Cloud 콘솔로 이동합니다.
- 메뉴 바에서 전환 목록 상자를 클릭합니다.
- 목록 상자에서 조직을 선택합니다.
- 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.
gcloud CLI
다음 명령어를 사용하여 Google Cloud 조직의 ID를 검색할 수 있습니다.
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: (선택사항) 쿼리 표현식입니다. 지정하지 않거나 비어 있으면 지정된 범위에서 모든 리소스를 검색합니다. 검색어를 작성하는 방법은 검색어 문법을 참고하세요. ASSET_TYPE_#
: (선택사항) 검색 가능한 애셋 유형의 쉼표로 구분된 목록. RE2 호환 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면INVALID_ARGUMENT
오류가 반환됩니다.--asset-types
를 지정하지 않으면 모든 애셋 유형이 반환됩니다.-
ORDER_BY
: (선택사항) 결과의 정렬 순서를 지정하는 쉼표로 구분된 필드 목록입니다. 기본 순서는 오름차순입니다. 필드 이름 다음에DESC
를 추가하여 내림차순으로 표시합니다. 정렬할 수 있는 필드는 참고 문서를 참고하세요. READ_MASK
: 선택사항. 결과에 반환할 필드를 지정하는 쉼표로 구분된 필드 목록입니다. 기본적으로 반환되는 필드와 읽기 마스크를 지정할 때 염두에 두어야 할 기타 조건을 확인하세요.
--format
및 --flatten
플래그를 사용하여 gcloud CLI 출력 형식을 지정할 수 있습니다.
모든 옵션은 gcloud CLI 참조를 확인하세요.
예
다음 명령어를 실행하여 전체 리소스 이름에 단어 instance
뒤에 1
이 오는 my-project
프로젝트의 모든 Compute Engine 인스턴스 목록을 가져옵니다. 결과는 이름별로 내림차순으로 정렬되며 읽기 마스크로 인해 name
및 location
필드만 반환됩니다.
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="name:instance 1" \ --asset-types=compute.googleapis.com/Instance \ --order-by="name DESC" \ --read-mask="name,location"
응답 예시
--- location: us-central1-a name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2-1 --- location: us-central1-a name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllResources
JSON 요청 본문:
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN", "readMask": "READ_MASK" }
다음 값을 제공합니다.
-
SCOPE_PATH
: 다음 중 한 가지 값을 사용합니다.허용되는 값은 다음과 같습니다.
-
projects/PROJECT_ID
: 여기서PROJECT_ID
는 검색하려는 애셋이 있는 프로젝트의 ID입니다. -
projects/PROJECT_NUMBER
: 여기서PROJECT_NUMBER
는 검색하려는 애셋이 있는 프로젝트의 번호입니다.Google Cloud 프로젝트 번호를 찾는 방법
Google Cloud 콘솔
Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.
gcloud CLI
다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
: 여기서FOLDER_ID
는 검색하려는 애셋이 있는 폴더의 ID입니다.Google Cloud 폴더의 ID를 찾는 방법
Google Cloud 콘솔
Google Cloud 폴더의 ID를 찾으려면 다음 단계를 완료하세요.
-
Google Cloud 콘솔로 이동합니다.
- 메뉴 바에서 전환 목록 상자를 클릭합니다.
- 목록 상자에서 조직을 선택합니다.
- 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 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를 반환하지 않습니다. 이렇게 하려면 최상위 폴더의 ID를 사용하여 다음 명령어를 실행합니다.
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
: 여기서ORGANIZATION_ID
는 검색하려는 애셋이 있는 조직의 ID입니다.Google Cloud 조직의 ID를 찾는 방법
Google Cloud 콘솔
Google Cloud 조직의 ID를 찾으려면 다음 단계를 완료하세요.
-
Google Cloud 콘솔로 이동합니다.
- 메뉴 바에서 전환 목록 상자를 클릭합니다.
- 목록 상자에서 조직을 선택합니다.
- 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.
gcloud CLI
다음 명령어를 사용하여 Google Cloud 조직의 ID를 검색할 수 있습니다.
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: (선택사항) 쿼리 표현식입니다. 지정하지 않거나 비어 있으면 지정된 범위에서 모든 리소스를 검색합니다. 검색어를 작성하는 방법은 검색어 문법을 참고하세요. ASSET_TYPE_#
: (선택사항) 검색 가능한 애셋 유형의 배열. RE2 호환 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면INVALID_ARGUMENT
오류가 반환됩니다.assetTypes
를 지정하지 않으면 모든 애셋 유형이 반환됩니다.-
ORDER_BY
: (선택사항) 결과의 정렬 순서를 지정하는 쉼표로 구분된 필드 목록입니다. 기본 순서는 오름차순입니다. 필드 이름 다음에DESC
를 추가하여 내림차순으로 표시합니다. 정렬할 수 있는 필드는 참고 문서를 참고하세요. -
PAGE_SIZE
: (선택사항) 페이지당 반환할 결과 수입니다. 최댓값은 500입니다. 값을0
또는 음수 값으로 설정하면 적합한 기본값이 선택됩니다.nextPageToken
이 반환되어 후속 결과를 검색합니다. -
PAGE_TOKEN
: (선택사항) 긴 요청 응답은 여러 페이지로 구분됩니다.pageToken
이 지정되지 않으면 첫 번째 페이지가 반환됩니다. 후속 페이지는 이전 응답의nextPageToken
을pageToken
값으로 사용하여 호출할 수 있습니다. READ_MASK
: 선택사항. 결과에 반환할 필드를 지정하는 쉼표로 구분된 필드 목록입니다. 기본적으로 반환되는 필드와 읽기 마스크를 지정할 때 염두에 두어야 할 기타 조건을 확인하세요.
모든 옵션은 REST 참조를 참고하세요.
명령어 예시
다음 명령어 중 하나를 실행하여 my-project
프로젝트에서 전체 리소스 이름에 단어 instance
다음에 1
이 오는 모든 Compute Engine 인스턴스 목록을 가져옵니다. 결과는 이름별로 내림차순으로 정렬되며 name
및 location
필드만 반환됩니다.
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "query": "name:instance 1", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "name DESC", "readMask": "name,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "name:instance 1", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "name DESC", "readMask": "name,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
응답 예시
{ "results": [ { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2-1", "location": "us-central1-a" }, { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1", "location": "us-central1-a" } ] }
C#
Cloud 애셋 인벤토리용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud 애셋 인벤토리 클라이언트 라이브러리를 참조하세요.
Cloud 애셋 인벤토리에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Cloud 애셋 인벤토리용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud 애셋 인벤토리 클라이언트 라이브러리를 참조하세요.
Cloud 애셋 인벤토리에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
자바
Cloud 애셋 인벤토리용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud 애셋 인벤토리 클라이언트 라이브러리를 참조하세요.
Cloud 애셋 인벤토리에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Cloud 애셋 인벤토리용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud 애셋 인벤토리 클라이언트 라이브러리를 참조하세요.
Cloud 애셋 인벤토리에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Cloud 애셋 인벤토리용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud 애셋 인벤토리 클라이언트 라이브러리를 참조하세요.
Cloud 애셋 인벤토리에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Cloud 애셋 인벤토리용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud 애셋 인벤토리 클라이언트 라이브러리를 참조하세요.
Cloud 애셋 인벤토리에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
Cloud 애셋 인벤토리용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud 애셋 인벤토리 클라이언트 라이브러리를 참조하세요.
Cloud 애셋 인벤토리에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 검색 예시
다음 코드 샘플은 자체 검색을 구성하는 데 도움이 되는 gcloud 및 REST의 특정 검색어를 보여줍니다.
프로젝트의 모든 리소스
다음 샘플은 my-project
프로젝트의 모든 리소스를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --format="table(assetType.basename(), name.basename(), name.scope(projects).segment(0):label=PROJECT_ID, labels)"
REST
HTTP 메서드 및 URL:
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
Compute Engine 인스턴스(설명 기준)
다음 샘플은 my-project
프로젝트에서 instance-prod
라는 정확한 이름으로 Compute Engine 인스턴스를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="description=instance-prod" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
일치검색 대신 이름에 instance-prod
(예: instance-prod-1
및 instance-prod-2
)가 있는 인스턴스를 검색하려면 =instance-prod
를 :instance-prod
로 바꿉니다.
라벨별 Compute Engine 인스턴스
다음 샘플은 my-project
프로젝트에서 env
라는 라벨이 있는 Compute Engine 인스턴스를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="labels.env:*" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, labels)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
TagKey별 Compute Engine 인스턴스
다음 샘플에서는 my-project
프로젝트에서 TagKey
태그를 직접 연결한 Compute Engine 인스턴스를 검색하는 방법을 보여줍니다.env
를 포함하는 namespacedName
이 있는 태그가 직접 연결됩니다.
대신 유효한 TagKeys로 검색하려면 tagKeys
를 effectiveTagKeys
로 바꿉니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="tagKeys:env" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, tags)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
TagValue별 Compute Engine 인스턴스
다음 샘플에서는 my-project
프로젝트에서 TagValue
태그가 직접 연결된 Compute Engine 인스턴스를 검색하는 방법을 보여줍니다.namespacedName
에 prod
또는 sea
가 포함되어 있고 인스턴스 이름에는 instance1
이 포함되지 않은 태그가 직접 연결된 Compute Engine 인스턴스를 나열하는 방법을 보여줍니다.
대신 유효한 TagValues로 검색하려면 tagValues
를 effectiveTagValues
로 바꿉니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="tagValues:(prod OR sea) (NOT name:instance1)" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, tags)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
특정 시간 이후에 생성된 Compute Engine 인스턴스
다음 샘플은 2023년 12월 31일 이후에 생성된 my-project
프로젝트의 Compute Engine 인스턴스를 검색하는 방법을 보여줍니다.
날짜/시간 비교에 관한 자세한 내용은 숫자 및 타임스탬프 비교를 참고하세요.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="createTime>2023-31-12" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
미국에 있는 Compute Engine 인스턴스
다음 샘플은 미국에 있는 my-project
프로젝트에서 Compute Engine 인스턴스를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="location:us-*" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
실행 중인 Compute Engine 인스턴스
다음 샘플은 my-project
프로젝트에서 실행 중인 Compute Engine 인스턴스를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="state=RUNNING" \ --asset-types=compute.googleapis.com/Instance \ --read-mask="name,assetType,location,versionedResources" \ --format="table(name, assetType, location, versionedResources)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
IAM 거부 정책
다음 샘플은 my-project
프로젝트에서 IAM 거부 정책을 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --asset-types=iam.googleapis.com/PolicyV2 \ --query="name:denypolicies"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "assetTypes": "iam.googleapis.com/PolicyV2", "pageSize": 1, "query": "name:denypolicies" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "iam.googleapis.com/PolicyV2", "pageSize": 1, "query": "name:denypolicies" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "iam.googleapis.com/PolicyV2", "pageSize": 1, "query": "name:denypolicies" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
실행 중인 Compute Engine 인스턴스를 검색하려면 state=RUNNING
을 NOT state:running
으로 바꿉니다.
관련 Google Cloud 리소스
관계 쿼리는 Security Command Center 프리미엄 및 엔터프라이즈 등급 구독자만 사용할 수 있습니다.
다음 샘플은 my-project
프로젝트에서 지원되는 관계 유형별로 관련 리소스를 검색하는 방법을 보여줍니다. 예를 들어 전체 리소스 이름에 instance-group
이 있는 인스턴스 그룹에 속한 모든 Compute Engine 인스턴스를 검색합니다.
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="relationships:instance-group" \ --format="table(name, assetType, relationships)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 요청 본문:
{ "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" }
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
검색할 관계 유형을 지정할 수도 있습니다. 예를 들어 INSTANCE_TO_INSTANCEGROUP
관계 유형을 검색하려면 쿼리 relationships.INSTANCE_TO_INSTANCEGROUP
을 사용합니다. instance-group
이 포함된 전체 리소스 이름으로 해당 관계 유형을 검색하려면 쿼리 relationships.INSTANCE_TO_INSTANCEGROUP:instance-group
을 사용하세요.