리소스 검색

Cloud Asset API에서는 커스텀 쿼리 언어를 사용하여 프로젝트, 폴더 또는 조직의 리소스 메타데이터를 쿼리할 수 있습니다.

시작하기 전에

리소스 검색

Console

모든 리소스를 검색하려면 다음 단계를 완료합니다.

  1. Google Cloud 콘솔에서 애셋 인벤토리 페이지로 이동합니다.

    애셋 인벤토리로 이동

  2. 검색 범위를 설정하려면 메뉴 바에서 프로젝트 목록 상자를 연 후 쿼리할 조직, 폴더, 프로젝트를 선택합니다.

  3. 리소스 탭을 선택합니다.

  4. 리소스를 검색하려면 필터 막대에 쿼리 텍스트를 입력합니다. 텍스트 상자를 선택한 후 검색 가능한 필드 목록이 표시됩니다. 리소스 검색은 여러 필드를 지원합니다. 쿼리 구문에 대해 자세히 알아보세요.

  5. 필터 결과 창에서 사전 정의된 애셋 유형, 프로젝트, 위치 필터로 검색 결과를 필터링할 수도 있습니다.

쿼리와 일치하는 리소스가 결과 테이블에 나열됩니다.

Google Cloud CLI 명령어로 쿼리를 보려면 쿼리 보기를 선택합니다.

결과를 내보내려면 CSV 다운로드를 선택합니다.

gcloud

gcloud asset search-all-resources 명령어를 사용하여 SearchAllResources를 호출할 수 있습니다. Google Cloud CLI 버전 302.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

gcloud asset search-all-resources \
    --scope=SCOPE \
    --query=QUERY \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --order-by=ORDER_BY \
    --read-mask=READ_MASK

다음 값을 제공합니다.

  • SCOPE: (필수) 범위는 프로젝트, 폴더 또는 조직이 될 수 있습니다. 이 범위 내의 Google Cloud 리소스로 검색이 제한됩니다. 호출자는 선택된 범위에 대한 cloudasset.assets.searchAllResources 권한을 부여받아야 합니다. 지정하지 않으면 구성된 프로젝트 속성이 사용됩니다.

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

    • 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))"

  • QUERY: (선택사항) 쿼리 문입니다. 자세한 내용은 쿼리 구문을 참조하세요. 값을 지정하지 않거나 비어 있으면 지정된 scope의 모든 리소스를 검색합니다.

    예를 들면 다음과 같습니다.

    • name:Important: 이름에 Important라는 단어가 포함된 Google Cloud 리소스를 찾습니다.

    • name=Important: 이름이 정확히 Important인 Google Cloud 리소스를 찾습니다.

    • displayName:Impor*: 표시 이름에 모든 단어의 프리픽스로 Impor가 포함된 Google Cloud 리소스를 찾습니다.

    • location:us-west*: 위치에 uswest가 프리픽스로 있는 두 단어가 있는 Google Cloud 리소스를 찾습니다.

    • labels:prod: 키 또는 값에 prod라는 단어가 포함된 라벨이 있는 Google Cloud 리소스를 찾습니다.

    • labels.env:prod: 키가 env이고 값에 prod라는 단어가 포함된 라벨이 있는 Google Cloud 리소스를 찾습니다.

    • labels.env:*: 키가 env인 라벨이 있는 Google Cloud 리소스를 찾습니다.

    • tagKeys:env: TagKey.namespacedNameenv가 포함된 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

    • tagKeyIds=tagKeys/123: TagKey.name이 정확히 tagKeys/123인 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

    • tagValues:prod*: TagValue.namespacedNameprod 프리픽스가 붙은 단어가 포함된 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

    • tagValueIds=tagValues/123: TagValue.name이 정확하게 tagValues/123인 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

    • effectiveTagKeys:env: TagKey.namespacedNameenv가 포함된 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

    • effectiveTagKeyIds=tagKeys/123: TagKey.name이 정확히 tagKeys/123인 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

    • effectiveTagValues:prod*: TagValue.namespacedNameprod 프리픽스가 붙은 단어가 포함된 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

    • effectiveTagValueIds=tagValues/123: TagValue.name이 정확히 tagValues/123인 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

    • kmsKeys:key: 이름에 key라는 단어가 포함된 고객 관리 암호화 키로 암호화된 Google Cloud 리소스를 찾습니다.

    • relationships:instance-group-1: 관련 리소스 이름에서 instance-group-1와 관련된 Google Cloud 리소스를 찾습니다.

    • relationships:INSTANCE_TO_INSTANCEGROUP: INSTANCE_TO_INSTANCEGROUP 유형의 관계를 가진 Compute Engine 인스턴스를 찾습니다.

    • instance-group-1: INSTANCE_TO_INSTANCEGROUP 관계 유형에 대해 Compute Engine 인스턴스 그룹 리소스 이름에 relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1과의 관계가 포함된 Compute Engine 인스턴스를 찾습니다.

    • state:ACTIVE: 상태에 ACTIVE라는 단어가 포함된 Google Cloud 리소스를 찾습니다.

    • NOT state:ACTIVE: 상태에 ACTIVE라는 단어가 포함되지 않은 Google Cloud 리소스를 찾습니다.

    • createTime<1609459200 또는 createTime<2021-01-01 또는 createTime<"2021-01-01T00:00:00": 2021-01-01 00:00:00 UTC 이전에 생성된 Google Cloud 리소스를 찾습니다. 1609459200: 2021-01-01 00:00:00 UTC의 초 단위 에포크 타임스탬프입니다.

    • updateTime>1609459200 또는 updateTime>2021-01-01 또는 updateTime>"2021-01-01T00:00:00": 2021-01-01 00:00:00 UTC 이후에 업데이트된 Google Cloud 리소스를 찾습니다. 1609459200: 2021-01-01 00:00:00 UTC의 초 단위 에포크 타임스탬프입니다.

    • project:12345: 숫자 12345를 포함하는 Google Cloud 프로젝트에 속하는 Google Cloud 리소스를 찾습니다.

    • folders:(123 or 456): 숫자 123 또는 456을 포함하는 Google Cloud 폴더에 속하는 Google Cloud 리소스를 찾습니다.

    • organization:123: 숫자 123을 포함하는 Google Cloud 조직에 속하는 Google Cloud 리소스를 찾습니다.

    • parentFullResourceName:ImportantName: 상위 요소 이름에 ImportantName이 포함된 Google Cloud 리소스를 찾습니다.

    • parentAssetType:Project: 상위 요소의 애셋 유형에 Project가 포함된 Google Cloud 리소스를 찾습니다.

    • Important: 검색 가능한 필드에서 Important라는 단어가 포함된 Google Cloud 리소스를 찾습니다.

    • Impor*: 검색 가능한 모든 필드에서 단어의 프리픽스로 Impor가 포함된 Google Cloud 리소스를 찾습니다.

    • Important location:(us-west1 OR global): 검색 가능한 필드에서 Important 단어가 포함되고 us-west1 리전 또는 global 위치에도 있는 Google Cloud 리소스를 찾습니다.

  • ASSET_TYPE: (선택사항) 이 요청이 검색하는 애셋 유형 목록입니다. 비어 있으면 검색 가능한 애셋 유형을 모두 검색합니다. RE2 호환 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

  • ORDER_BY: (선택사항) 결과의 정렬 순서를 지정하는 쉼표로 구분된 필드 목록입니다. 기본 순서는 오름차순입니다. 필드 이름 다음에 DESC를 추가하여 내림차순으로 표시합니다. 중복된 공백 문자는 무시됩니다. 예를 들면 "location DESC, name"입니다. 응답의 단일 기본 필드만 정렬할 수 있습니다.

    • name

    • assetType

    • project

    • displayName

    • description

    • location

    • createTime

    • updateTime

    • state

    • parentFullResourceName

    • parentAssetType

    반복되는 필드(예:networkTags ,kmsKeys), 맵 필드(예:labels ), 구조체 필드(예:additionalAttributes ) 등 다른 모든 필드는 지원되지 않습니다.

  • READ_MASK: (선택사항) 결과에 반환할 필드를 지정하는 쉼표로 구분된 필드 목록입니다. 지정하지 않으면 versionedResources를 제외한 모든 필드가 반환됩니다. "*"만 지정되면 모든 필드가 반환됩니다. 예시: "name,location", "name,versionedResources", "*".

    --read-mask를 지정하지 않으면 기본적으로 다음 필드가 반환됩니다.

    • name

    • assetType

    • project

    • folders

    • organization

    • displayName

    • description

    • location

    • labels

    • tags

    • networkTags

    • kmsKeys

    • createTime

    • updateTime

    • state

    • additionalAttributes

    • parentFullResourceName

    • parentAssetType

    versionedResources, attachedResources, effectiveTags와 같이 크기가 큰 일부 필드는 기본적으로 반환되지 않지만 포함하려는 경우 --read-mask 매개변수에 지정할 수 있습니다. "*"가 지정되면 모든 사용 가능한 필드가 반환됩니다. 예시: "name,location,effectiveTags", "name,versionedResources", "*"

다음은 gcloud 명령어의 예시입니다.

  • organizations/123456에서 namemycompany라는 단어가 포함된 모든 리소스를 찾습니다.

    gcloud asset search-all-resources \
        --scope=organizations/123456 \
        --query="name:mycompany"
    
  • organizations/123456에서 전체 메타데이터를 포함하여 namemycompany라는 단어가 포함된 모든 리소스를 찾습니다.

    gcloud asset search-all-resources \
        --scope=organizations/123456 \
        --query="name:mycompany" \
        --read-mask="name,versionedResources"
    

REST

프로젝트에 유효한 OAuth 토큰을 사용하여 SearchAllResources를 호출할 수 있습니다. Cloud Shell 또는 gcloud 명령어를 사용할 수 있는 모든 콘솔에서 SearchAllResources 메서드를 호출하려면 다음 안내를 따르세요.

  1. 프로젝트의 OAuth 동의 화면을 구성하지 않은 경우 구성해야 합니다. OAuth 동의 화면에는 이메일 주소와 제품 이름이 필요합니다.

    1. 프로젝트의 OAuth 동의 화면 페이지로 이동합니다.

      OAuth 동의 화면으로 이동

    2. 표시하려는 애플리케이션 이름을 입력합니다.

    3. 지원 이메일에서 공개 연락처로 표시할 이메일 주소를 선택합니다. 이 주소는 개발자의 이메일 주소 또는 개발자가 소유하는 Google 그룹이어야 합니다.

    4. 원하는 선택적인 세부정보를 추가합니다.

    5. 저장을 클릭합니다.

  2. 프로젝트의 OAuth 토큰을 만듭니다. 자세한 내용은 OAuth 2.0 설정을 참조하세요.

    1. OAuth 클라이언트 ID 만들기 페이지로 이동합니다.

      OAuth 클라이언트 ID 만들기로 이동

    2. 애플리케이션 유형으로 데스크톱 앱을 선택합니다.

    3. 만들기를 클릭합니다.

    4. client_secret.json 파일을 다운로드합니다.

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

      사용자 인증 정보로 이동

    6. 클라이언트 ID 오른쪽에 있는 JSON 다운로드를 클릭합니다.

    7. 이 앱만 액세스할 수 있는 위치에 안전하게 파일을 저장합니다.

  3. 다음 명령어로 JSON 파일을 사용하여 로그인합니다.

    gcloud auth application-default login --client-id-file=YOUR_JSON_FILE
    

    이 명령어를 실행하면 링크를 열라는 메시지가 표시됩니다. OAuth 동의 화면에서 설정한 애플리케이션 이름이 페이지에 표시되는지 확인합니다.

  4. 이제 curl 명령어를 사용하여 리소스를 쿼리할 수 있습니다.

    curl -X POST \
         -H "X-HTTP-Method-Override: GET" \
         -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         -H "Content-Type: application/json" \
         -d '{
              "assetTypes": [
                "ASSET_TYPE_1",
                "ASSET_TYPE_2",
                "..."
              ],
              "orderBy": "ORDER_BY",
              "pageSize": PAGE_SIZE,
              "query": "QUERY",
              "readMask": "READ_MASK"
             }' \
         https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies
    

    다음 값을 제공합니다.

    • ASSET_TYPE: (선택사항) 이 요청이 검색하는 애셋 유형 목록입니다. 비어 있으면 검색 가능한 애셋 유형을 모두 검색합니다. 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

    • ORDER_BY: (선택사항) 결과의 정렬 순서를 지정하는 쉼표로 구분된 필드 목록입니다. 기본 순서는 오름차순입니다. 필드 이름 다음에 " DESC"를 추가하여 내림차순으로 표시합니다. 중복된 공백 문자는 무시됩니다. 예를 들면 "location DESC, name"입니다. 응답의 단일 기본 필드만 정렬할 수 있습니다.

      • name

      • assetType

      • project

      • displayName

      • description

      • location

      • createTime

      • updateTime

      • state

      • parentFullResourceName

      • parentAssetType

      반복되는 필드(예:networkTags ,kmsKeys), 맵 필드(예:labels ), 구조체 필드(예:additionalAttributes ) 등 다른 모든 필드는 지원되지 않습니다.

    • PAGE_SIZE: (선택사항) 페이지당 반환할 결과 수입니다. 최댓값은 500입니다. 값을 0 또는 음수 값으로 설정하면 적합한 기본값이 선택됩니다. nextPageToken이 반환되어 후속 결과를 검색합니다.

    • QUERY: (선택사항) 쿼리 문입니다. 자세한 내용은 쿼리 구문을 참조하세요. 값을 지정하지 않거나 비어 있으면 지정된 scope의 모든 리소스를 검색합니다.

      예를 들면 다음과 같습니다.

      • name:Important: 이름에 'Important'라는 단어가 포함된 Google Cloud 리소스를 찾습니다.

      • name=Important: 이름이 정확히 'Important'인 Google Cloud 리소스를 찾는 데 사용됩니다.

      • displayName:Impor*: 표시 이름이 모든 단어의 프리픽스로 'Impor'를 포함하는 Google Cloud 리소스를 찾습니다.

      • location:us-west*: 위치에 'us' 및 'west'가 모두 포함된 Google Cloud 리소스를 찾습니다.

      • labels:prod: 라벨에 'prod'라는 키 또는 값이 포함된 Google Cloud 리소스를 찾습니다.

      • labels.env:prod: 키가 'env'인 라벨이 있고 그 값에 'prod'라는 단어가 포함된 Google Cloud 리소스를 찾습니다.

      • labels.env:*: 키가 'env'인 라벨이 있는 Google Cloud 리소스를 찾습니다.

      • tagKeys:env: TagKey.namespacedName에 'env'가 포함된 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

      • tagKeyIds=tagKeys/123: TagKey.name가 정확히 'tagKeys/123'인 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

      • tagValues:prod*: TagValue.namespacedName에 'prod'라는 프리픽스가 붙는 단어가 포함된 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

      • tagValueIds=tagValues/123: TagValue.name이 정확히 'tagValues/123'인 태그에 직접 연결된 Google Cloud 리소스를 찾습니다.

      • effectiveTagKeys:env: TagKey.namespacedNameenv가 포함된 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

      • effectiveTagKeyIds=tagKeys/123: TagKey.name이 정확히 tagKeys/123인 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

      • effectiveTagValues:prod*: TagValue.namespacedNameprod 프리픽스가 붙은 단어가 포함된 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

      • effectiveTagValueIds=tagValues/123: TagValue.name이 정확히 tagValues/123인 태그에 직접 연결되거나 상속되는 Google Cloud 리소스를 찾습니다.

      • kmsKey:key: 이름에 key라는 단어가 포함된 고객 관리 암호화 키로 암호화된 Google Cloud 리소스를 찾습니다. 이 필드는 지원 중단됩니다. kmsKeys 필드를 사용하여 Cloud KMS 키 정보를 검색하세요.

      • kmsKeys:key: 이름에 'key' 단어가 포함된 고객 관리 암호화 키로 암호화된 Google Cloud 리소스를 찾습니다.

      • relationships:instance-group-1: 관련 리소스 이름에서 instance-group-1와 관련된 Google Cloud 리소스를 찾습니다.

      • relationships:INSTANCE_TO_INSTANCEGROUP: INSTANCE_TO_INSTANCEGROUP 유형의 관계가 있는 Compute Engine 인스턴스를 찾습니다.

      • instance-group-1: INSTANCE_TO_INSTANCEGROUP 관계 유형에 대해 Compute Engine 인스턴스 그룹 리소스 이름에 relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1과의 관계가 포함된 Compute Engine 인스턴스를 찾습니다.

      • state:ACTIVE: 상태에 'ACTIVE'가 포함된 Google Cloud 리소스를 찾습니다.

      • NOT state:ACTIVE: 상태에 'ACTIVE'가 없는 Google Cloud 리소스를 찾습니다.

      • createTime<1609459200 또는 createTime<2021-01-01 또는 createTime<"2021-01-01T00:00:00": 2021-01-01 00:00:00 UTC 이전에 생성된 Google Cloud 리소스를 찾습니다. 1609459200: 2021-01-01 00:00:00 UTC의 초 단위 에포크 타임스탬프입니다.

      • updateTime>1609459200 또는 updateTime>2021-01-01 또는 updateTime>"2021-01-01T00:00:00": 2021-01-01 00:00:00 UTC 이후에 업데이트된 Google Cloud 리소스를 찾습니다. 1609459200: 2021-01-01 00:00:00 UTC의 초 단위 에포크 타임스탬프입니다.

      • project:12345: 숫자 12345를 포함하는 Google Cloud 프로젝트에 속하는 Google Cloud 리소스를 찾습니다.

      • folders:(123 or 456): 숫자 123 또는 456을 포함하는 Google Cloud 폴더에 속하는 Google Cloud 리소스를 찾습니다.

      • organization:123: 숫자 123을 포함하는 Google Cloud 조직에 속하는 Google Cloud 리소스를 찾습니다.

      • parentFullResourceName:ImportantName: 상위 요소 이름에 ImportantName이 포함된 Google Cloud 리소스를 찾습니다.

      • parentAssetType:Project: 상위 요소의 애셋 유형에 Project가 포함된 Google Cloud 리소스를 찾습니다.

      • Important: 검색 가능한 필드에서 'Important'라는 단어가 포함된 Google Cloud 리소스를 찾습니다.

      • Impor*: 검색 가능한 모든 필드에서 단어의 프리픽스로 'Impor'를 포함하는 Google Cloud 리소스를 찾습니다.

      • Important location:(us-west1 OR global): 검색 가능한 모든 필드에서 Important라는 단어가 포함되고 us-west1 리전 또는 global 위치에 있는 Google Cloud 리소스를 찾습니다.

    • READ_MASK: (선택사항) 결과에 반환할 필드를 지정하는 쉼표로 구분된 필드 목록입니다. 지정하지 않으면 versionedResources를 제외한 모든 필드가 반환됩니다. "*"만 지정되면 모든 필드가 반환됩니다. 예시: "name,location", "name,versionedResources", "*".

      read_mask를 지정하지 않으면 기본적으로 다음 필드가 반환됩니다.

      • name

      • assetType

      • project

      • folders

      • organization

      • displayName

      • description

      • location

      • labels

      • tags

      • networkTags

      • kmsKeys

      • createTime

      • updateTime

      • state

      • additionalAttributes

      • parentFullResourceName

      • parentAssetType

      versionedResources, attachedResources, effectiveTags와 같이 크기가 큰 일부 필드는 기본적으로 반환되지 않지만 포함하려는 경우 read_mask 매개변수에 지정할 수 있습니다. "*"가 지정되면 모든 사용 가능한 필드가 반환됩니다. 예시: "name,location,effectiveTags", "name,versionedResources", "*"

    • SCOPE: 범위는 프로젝트, 폴더 또는 조직이 될 수 있습니다. 이 범위 내의 Google Cloud 리소스로 검색이 제한됩니다. 호출자는 선택된 범위에 대한 cloudasset.assets.searchAllResources 권한을 부여받아야 합니다. 지정하지 않으면 구성된 프로젝트 속성이 사용됩니다.

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

      • 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))"

클라이언트 라이브러리 및 API 참조

쿼리 구성 방법

쿼리 언어에 대한 자세한 내용은 쿼리 구문을 참조하세요.

다양한 실제 사용 사례의 샘플 쿼리에 대한 자세한 내용은 리소스 샘플 검색을 참조하세요.

리소스 메타데이터 필드로 Google Cloud 리소스 쿼리

리소스 메타데이터를 검색할 때 쿼리 표현식의 형식은 다음과 같습니다.

  • 텍스트 완전 일치:

    FIELD=QUERY

  • 텍스트 부분 일치:

    FIELD:QUERY

  • 숫자 일치: 비교 연산자(=, >, >=, <, <=)

    FIELDcomparison operatorQUERY

검색 가능한 리소스 메타데이터 FIELD는 다음과 같습니다.

  • name: 리소스의 전체 리소스 이름입니다. 참고: 모든 애셋 유형을 검색할 수 있는 것은 아닙니다. 검색 가능한 유형 목록을 참조하세요.

  • displayName: UI의 표시 이름입니다.

  • description: 하나 이상의 단락으로 표시되는 리소스의 텍스트 설명입니다.

  • location: 리소스의 위치입니다. 위치는 global, 리전(예: us-east1), 영역 (예: us-west1-b)일 수 있습니다.

  • labels: 이 리소스와 연결된 라벨입니다. 라벨은 라벨 키, 라벨 값 또는 둘 다와 일치할 수 있습니다. Google Cloud Platform 리소스 라벨 지정 및 그룹화를 참조하세요.

  • labels.[key]: 이 리소스와 연결된 라벨 키로 식별되는 라벨 값입니다. 예를 들면 labels.env:prod입니다. 라벨 키에서는 하이픈(-), 밑줄(_), 소문자, 숫자만 사용할 수 있습니다. 키는 소문자로 시작해야 합니다. 국제 문자는 허용됩니다. 라벨 요구사항을 참조하세요.

  • tagKeys: 이 리소스에 직접 연결된 태그의 TagKey.namespacedName입니다.

  • tagKeyIds: 이 리소스에 직접 연결된 태그의 TagKey.name입니다.

  • tagValues: 이 리소스에 직접 연결된 태그의 TagValue.namespacedName입니다.

  • tagValueIds: 이 리소스에 직접 연결된 태그의 TagValue.name입니다.

  • effectiveTagKeys: 이 리소스에 직접 연결되거나 상속된 태그의 TagKey.namespacedName입니다.

  • effectiveTagKeyIds: 이 리소스에 직접 연결되거나 상속된 태그의 TagKey.name입니다.

  • effectiveTagValues: 이 리소스에 직접 연결되거나 상속된 태그의 TagValue.namespacedName입니다.

  • effectiveTagValueIds: 이 리소스에 직접 연결되거나 상속된 태그의 TagValue.name입니다.

  • networkTags: 이 리소스와 연결된 네트워크 태그입니다. Google Cloud Platform 리소스 라벨 지정 및 그룹화를 참조하세요.

  • kmsKey: 이 리소스를 암호화하는 데 사용되는 고객 관리 암호화 키입니다. 이 필드는 지원 중단됩니다. kmsKeys 필드를 사용하여 Cloud KMS 키 정보를 검색하세요. CryptoKeyCryptoKeyVersion을 참조하세요.

  • kmsKeys: 이 리소스를 암호화하는 데 사용되는 고객 관리 암호화 키입니다. CryptoKeyCryptoKeyVersion을 참조하세요.

  • 관계: 이 리소스와 관련된 관계입니다. 관계는 관계 유형, 관련 리소스 이름 또는 둘 다와 일치할 수 있습니다. 지원되는 관계 유형을 참조하세요.

  • relateds.[relational_type]: 이 리소스와 연결된 특정 리소스 유형의 관련 리소스 이름입니다. 예를 들면 relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1입니다. 지원되는 관계 유형을 참조하세요.

  • sccSecurityMarks: 애셋과 연결된 Security Command Center 보안 표시의 실제 콘텐츠입니다. 예를 들면 sccSecurityMarks.foo:bar입니다. Security Command Center에서 지원되는 애셋 유형을 참조하세요.

  • state: 이 리소스 상태의 텍스트 값입니다. 리소스 유형마다 여러 리소스의 여러 필드에서 매핑되는 상태 정의가 서로 다릅니다. 를 들어 리소스가 Compute Engine에서 제공하는 인스턴스인 경우 상태에는 PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, TERMINATED가 포함됩니다. API 참조status 정의를 참조하세요. 리소스가 Cloud Resource Manager에서 제공하는 프로젝트인 경우 상태에는 LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED, DELETE_IN_PROGRESS이 포함됩니다. API 참조lifecycleState 정의를 참조하세요.

  • createTime: 리소스가 생성된 시점의 생성 타임스탬프입니다. 단위는 초입니다.

  • updateTime: 리소스가 마지막으로 수정되거나 삭제된 시점의 마지막 업데이트 타임스탬프입니다. 단위는 초입니다.

  • project: 이 리소스가 속한 프로젝트의 수입니다.

  • folders: 이 리소스가 속한 폴더의 수입니다.

  • organization: 이 리소스가 속한 조직의 수입니다.

  • parentFullResourceName: 이 리소스의 상위 요소 이름입니다.

  • parentAssetType: 이 리소스의 상위 요소 유형입니다.

예: 특정 필드로 쿼리

  • scope에서 nameImportant라는 단어가 포함된 모든 리소스를 찾습니다.

    name:Important
    
  • scope에서 displayName에 프리픽스가 prod인 단어가 포함된 모든 리소스를 찾습니다.

    displayName:prod*
    
  • scope에서 locationus라는 단어가 포함된 모든 리소스를 찾습니다.

    location:us
    
  • scope에서 location이 정확히 us인 모든 리소스를 찾습니다.

    location=us
    
  • TagKey.namespacedNameenv 단어가 포함된 태그가 직접 연결된 모든 리소스를 scope에서 찾습니다.

    tagKeys:env
    
  • TagKey.nametagKeys/123과 정확히 똑같은 태그가 직접 연결된 모든 리소스를 scope에서 찾습니다.

    tagKeyIds=tagKeys/123
    
  • TagValue.namespacedNameprod라는 프리픽스가 붙는 단어가 포함된 태그가 직접 연결된 모든 리소스를 scope에서 찾습니다.

    tagValues:prod*
    
  • TagValue.nametagValues/123과 정확히 똑같은 태그가 직접 연결된 모든 리소스를 scope에서 찾습니다.

    tagValueIds=tagValues/123
    
  • TagValue.namespacedName이 포함된 태그에 직접 연결된 모든 리소스를 scope에서 찾습니다.

    tagValues:*
    
  • scope에서 env라는 단어가 포함된 TagKey.namespacedName이 있는 태그가 직접 연결되거나 상속된 모든 리소스를 찾습니다.

    effectiveTagKeys:env
    
  • scope에서 tagKeys/123과 정확히 일치하는 TagKey.name이 있는 태그가 직접 연결되거나 상속된 모든 리소스를 찾습니다.

    effectiveTagKeyIds=tagKeys/123
    
  • scope에서 prod 프리픽스가 붙은 단어가 포함된 TagValue.namespacedName이 있는 태그가 직접 연결되거나 상속된 모든 리소스를 찾습니다.

    effectiveTagValues:prod*
    
  • scope에서 tagValues/123과 정확히 일치하는 TagValue.name이 있는 태그가 직접 연결되거나 상속된 모든 리소스를 찾습니다.

    effectiveTagValueIds=tagValues/123
    
  • scope에서 TagValue.namespacedName가 있는 태그가 직접 연결되거나 상속된 모든 리소스를 찾습니다.

    effectivetagValues:*
    
  • 키 또는 값에 prod라는 단어가 포함된 label을 가진 모든 리소스를 scope에서 찾습니다.

    labels:prod
    
  • 키가 env이고 값에 prod라는 단어가 포함된 label을 가진 모든 리소스를 scope에서 찾습니다.

    labels.env:prod
    
  • 키가 env이고 값이 정확히 prodlabel을 가진 모든 리소스를 scope에서 찾습니다.

    labels.env=prod
    
  • 키가 envlabel을 가진 모든 리소스를 scope에서 찾습니다.

    labels.env:*
    
  • networkTags 중 하나에 internal이라는 단어가 포함된 모든 리소스를 scope에서 찾습니다.

    networkTags:internal
    
  • networkTags가 정확히 internal인 모든 리소스를 scope에서 찾습니다.

    networkTags=internal
    
  • 관련 리소스 이름에 instance-group-1와의 관계가 포함된 모든 리소스를 scope에서 찾습니다.

    relationships:instance-group-1
    
  • scope에서 INSTANCE_TO_INSTANCEGROUP 유형의 관계가 있는 컴퓨팅 인스턴스를 찾습니다.

    relationships:INSTANCE_TO_INSTANCEGROUP
    
  • 관계 유형 INSTANCE_TO_INSTANCEGROUP에 대해 scope에서 컴퓨팅 인스턴스 그룹 리소스 이름에 instance-group-1와의 관계가 포함된 컴퓨팅 인스턴스를 찾습니다.

    relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1
    
  • scope에서 kmsKeyskey라는 단어가 포함된 모든 리소스를 찾습니다.

    kmsKeys:key
    
  • scope에서 kmsKeys이 정확히 key인 모든 리소스를 찾습니다.

    kmsKeys=key
    
  • scope에서 sccSecurityMarks가 정확한 키-값 쌍 (key, value)를 포함하는 모든 리소스를 찾습니다.

    sccSecurityMarks.key=value
    
  • scope에서 sccSecurityMarks에 키가 key인 키-값 쌍이 포함된 모든 리소스를 찾습니다.

    sccSecurityMarks.key:*
    
  • scope에서 stateACTIVE라는 단어가 포함된 모든 리소스를 찾습니다.

    state:ACTIVE
    
  • scope에서 stateACTIVE라는 단어가 포함되지 않은 모든 리소스를 찾습니다.

    NOT state:ACTIVE
    
  • scope에서 2021-01-01 00:00:00 UTC 이전에 생성된 모든 리소스를 찾습니다(16094592002021-01-01 00:00:00 UTC의 초 단위의 에포크 타임스탬프).

    createTime<1609459200
    createTime<2021-01-01
    createTime<"2021-01-01T00:00:00"
    
  • scope에서 2021-01-01 00:00:00 UTC 이후에 업데이트된 모든 리소스를 찾습니다(16094592002021-01-01 00:00:00 UTC의 초 단위의 에포크 타임스탬프).

    updateTime>1609459200
    updateTime>2021-01-01
    updateTime>"2021-01-01T00:00:00"
    
  • scope에서 project에 숫자 123을 포함하는 모든 리소스를 찾습니다.

    project:123
    
  • folder에 포함된 scope에서 숫자 123를 포함하는 모든 리소스를 찾습니다.

    folders:123
    
  • scope에서 organization에 숫자 123을 포함하는 모든 리소스를 찾습니다.

    organization:123
    
  • scope에서 parentFullResourceNameImportantName을 포함하는 모든 리소스를 찾습니다.

    parentFullResourceName:ImportantName
    
  • scope에서 parentAssetTypeProject을 포함하는 모든 리소스를 찾습니다.

    parentAssetType:Project
    
  • name에 프리픽스가 import인 단어를 포함하는 단어 Importantdescription가 포함된 모든 리소스를 scope에서 찾습니다.

    name:Important description:import*
    
  • name에 프리픽스가 import인 단어를 포함하는 단어 Important 또는 description가 포함된 모든 리소스를 scope에서 찾습니다.

    name:Important OR description:import*
    

자유 텍스트로 Google Cloud 리소스 쿼리

필드를 지정하지 않고 자유 텍스트 쿼리를 사용할 수도 있습니다. 그러면 쿼리와 일치하는 리소스 메타데이터에 필드가 있는 경우 리소스를 반환합니다.

예: 자유 텍스트로 쿼리

  • 메타데이터 필드(예: name, displayName, description)에 Important라는 단어가 포함된 모든 리소스를 scope에서 찾습니다.

    Important
    
  • 메타데이터 필드(예: name, displayName, description)에 프리픽스 import가 있는 단어가 포함된 모든 리소스를 scope에서 찾습니다.

    import*
    
  • 메타데이터 필드(예: name, displayName, description)에 Important라는 단어가 포함되고 프리픽스 prod가 붙은 단어도 포함된 모든 리소스를 scope에서 찾습니다.

    Important prod*