애셋을 검색할 때 FIELD
, 연산자, QUERY
를 지정하여 검색 결과를 필터링할 수 있습니다.
텍스트 일치 검색: equals(=
) 연산자
FIELD=QUERY
쿼리 예시: policy=amy.2020@gmail.com
equals
(=
) 연산자는 QUERY
가 애셋 메타데이터 FIELD
값과 정확하게 일치하는지 확인합니다. 대소문자를 구분합니다. 반복 필드의 경우 QUERY
가 필드 값 중 하나와 일치하면 애셋이 일치로 간주됩니다. 지원되는 FIELD
이름은 쿼리가 리소스 검색인지, Identity and Access Management(IAM) 정책 검색인지에 따라 다릅니다. QUERY
는 구문이지만 와일드 카드를 포함할 수 없습니다.
텍스트 부분 일치 검색: 콜론(:
) 연산자
FIELD:QUERY
쿼리 예시: policy:amy.2020@gmail
검색을 수행할 때 QUERY
는 지정된 애셋 메타데이터 FIELD
의 값과 비교됩니다. 쿼리와 애셋 메타데이터 필드가 비교를 위해 일련의 단어 (예: 토큰)로 변환됩니다. 이 작업은 다음과 같이 수행됩니다.
선행/순환 특수문자를 삭제하고 특수 문자를 구분자로 취급하여 검색 값을 토큰화합니다. 토큰화 특수문자는 영숫자
[a-zA-Z0-9]
, 밑줄[_]
또는 앰퍼샌드[&]
중 하나가 아닌 문자입니다.문자의 대소문자가 무시되도록 유니코드 대소문자 변환을 수행합니다.
다음은 몇 가지 토큰화 예시입니다.
"amy-2020@GMAIL.com"
이[amy,2020,gmail,com]
로 토큰화됩니다."google.com/cloud"
이[google,com,cloud]
로 토큰화됩니다."Compute %Instance%"
이[compute,instance]
로 토큰화됩니다."$%^*-!"
이[]
로 토큰화됩니다.""
이[]
로 토큰화됩니다."compute*storage"
이[compute,storage]
로 토큰화됩니다."compute&storage"
이[compute&storage]
로 토큰화됩니다."BOB_test@gmail.com"
이[bob_test,gmail,com]
로 토큰화됩니다."instance/_my_vm_"
이[instance,_my_vm_]
으로 토큰화됩니다.
has
(:
) 연산자는 QUERY
의 각 단어가 애셋 메타데이터 필드 값에 있는지 확인합니다. 또한 단어의 순서와 연속성도 확인합니다. 리소스 검색 또는 IAM 정책 검색 여부에 따라 지원되는 FIELD
가 다를 수 있습니다. QUERY
은 구문 또는 구문의 조합일 수 있습니다.
예시
예를 들어 policy
필드 값이 amy.2020@gmail.com
인 애셋은 다음과 같은 쿼리와 일치합니다.
- 다음 구문은 필드 값과 정확히 일치하므로 일치합니다.
policy=amy.2020@gmail.com
- 구두점 문자가 구분 기호로 처리되고 쿼리가 대소문자를 구분하지 않기 때문에 일치합니다.
policy:amy-2020@GMAIL.com
- 구문의 단어가 순서대로 일치하기 때문에 일치합니다.
"amy 2020 gmail"
는 구문입니다. 단어가 순서대로 연속적으로 일치해야 합니다.
policy:"amy 2020 gmail"
- 단어 조합은 어떤 순서로든 나타날 수 있기 때문에 일치합니다.
(gmail 2020 amy)
는 조합입니다. 단어가 일치하고 반드시 순서대로 일치하는 것은 아닙니다.
policy:(gmail 2020 amy)
- 구문의 단어가 순서대로 일치하고 조합의 단어가 어떤 순서로든 나타나기 때문에 일치합니다.
"amy 2020"
은 구문이며 단어가 순서대로 연속적으로 일치해야 합니다.(gmail "amy 2020")
은 조합입니다.gmail
과"amy 2020"
가 일치하고 반드시 순서대로 일치하는 것은 아닙니다.
policy:(gmail "amy 2020")
- 구문에서는
*
을 사용하여 프리픽스 일치를 나타낼 수 있기 때문에 일치합니다.
policy:amy-20*
policy
필드 값이 "amy.2020@gmail.com"
인 애셋은 다음 쿼리와 일치하지 않습니다.
- 구문은 대소문자를 구분하므로 일치하지 않습니다. 대소문자를 구분하지 않는 일치에는
has
(:
) 연산자를 대신 사용하세요.
policy=amy.2020@GMAIL.com
- 구문이 필드의 값과 부분적으로 일치하므로 일치하지 않습니다. 부분 일치에는
has
(:
) 연산자를 대신 사용하세요.
policy=amy.2020@gmail
숫자 일치 검색: 비교(=
, >
, >=
, <
, <=
) 연산자
FIELD=QUERY
FIELD>QUERY
FIELD>=QUERY
FIELD<QUERY
FIELD<=QUERY
비교 연산자는 QUERY
와 애셋 메타데이터 FIELD
의 값 사이의 비교 결과가 true인지 확인합니다.
지원되는 FIELD
이름에는 createTime
및 updateTime
이 포함됩니다.
타임스탬프 필드(createTime
및 updateTime
)의 경우 QUERY
는 에포크 타임스탬프를 초 단위로 나타내는 64비트의 부호 있는 정수이거나 아래 형식 중 하나인 날짜-시간 문자열(시간대는 UTC)입니다.
YYYY-MM-DD: 2021-01-01(따옴표는 선택사항)
'YYYY-MM-DDThh:mm:ss': '2021-01-01T00:00:00'(따옴표 필요)
예시
예를 들어 createTime
필드의 값이 1609459200
(에포크 타임스탬프인 2021-01-01T00:00:00
)인 애셋은 다음 쿼리와 일치합니다.
같음
createTime=1609459200
createTime=2021-01-01
createTime="2021-01-01T00:00:00"
보다 큼
createTime>1500000000
createTime>2020-01-01
createTime>"2020-01-01T00:00:00"
크거나 같음
createTime>=1609459200
createTime>=2021-01-01
createTime>="2021-01-01T00:00:00"
보다 작음
createTime<1700000000
createTime<2022-01-01
createTime<"2022-01-01T00:00:00"
작거나 같음
createTime<=1609459200
createTime<=2021-01-01
createTime<="2021-01-01T00:00:00"
구문
문구는 큰따옴표 ("
) 로 묶인 한 개 이상의 단어입니다 . 구문에서는 단어의 순서가 중요합니다. 구문의 단어는 순서대로 연속적으로 일치해야 합니다. 순서를 고려하지 않고 여러 단어 일치를 검색하려면 조합을 사용해야 합니다(예: field:(word1 word2 word3)
).
다음 표현식은 동일합니다.
policy:amy
policy:"amy"
policy:amy.2020@gmail.com
policy:"amy.2020@gmail.com"
name://cloudresourcemanager.googleapis.com/projects/projects/foo-bar
name:"//cloudresourcemanager.googleapis.com/projects/projects/foo-bar"
다음 문구는 따옴표로 묶어야 합니다.
name:"my instance"
policy:"amy%2020@gmail.com"
description:"domain:gmail.com"
description:"hello \"world\""
description:"hello\\world"
예: 구문
policy
필드에 단어amy
와2020
이 순서대로 연속적으로 포함된 애셋을 반환합니다.policy:"amy 2020"
policy
필드 값이"amy.2020@gmail.com"
인 애셋이 있는 경우 위 쿼리가 일치합니다.policy
필드 값이"2020.amy@gmail.com"
인 애셋이 있는 경우 해당 단어가 순서대로 일치하지 않으므로 위 쿼리가 일치하지 않습니다.policy
필드 값이"amy.us.2020@gmail.com"
인 애셋이 있는 경우 단어가 연속적으로 일치하지 않으므로 위 쿼리는 일치하지 않습니다.
조합
AND
또는 OR
을 사용하여 검색 구문을 조합할 수 있습니다. 조합을 하나로 묶기 위해 괄호가 사용됩니다.
예: 조합
순서에 관계없이
policy
필드에 단어amy
와john
이 모두 포함된 애셋을 반환합니다.AND
는 조합에서 선택사항입니다. 순서대로 여러 단어 일치를 검색하려면 구문을 사용해야 합니다(예:field:"word1 word2 word3"
).owner:(amy john)
policy
필드에 단어amy
또는john
이 있는 애셋을 반환합니다.policy:(amy OR john)
policy
필드에 단어amy
와john
이 모두 포함되어 있거나 단어bob
이 있는 애셋을 반환합니다.policy:((amy john) OR bob)
policy
필드에 단어amy
와john
이 포함되어 있거나name
필드에 단어bob
이 있는 애셋을 반환합니다.policy:(amy john) OR name:bob
검색 필터 무효화
NOT
연산자를 사용하여 검색 필터를 무효화할 수 있습니다. 괄호는 지원되지만 필수는 아닙니다.
예: 검색 필터 무효화
state
필드에ACTIVE
라는 단어가 포함되지 않은 애셋을 반환합니다.NOT state:ACTIVE
policy
필드에amy
또는john
이라는 단어가 포함되지 않은 애셋을 반환합니다.NOT policy:(amy OR john)
networkTags
필드에internal
또는private
이라는 단어가 포함되지 않은 애셋을 반환합니다.NOT (networkTags:internal OR networkTags:private)
와일드 카드
별표 (*
)는 구문에서 와일드 카드 문자로 사용할 수 있습니다. 위치에 따라 의미가 달라질 수 있습니다.
구문 끝에 있으면(예:
"am 20*"
) 토큰 접두사 일치 표시기입니다. 이 쿼리는(am* 20*)
와 동일합니다. 'am'으로 시작하는 토큰(예: 'amy') 및 '20'으로 시작하는 토큰(예: '2021')이 포함된 필드 일치 항목을 검색합니다. 접두사의 순서는 중요하지 않습니다.전체 구문에
*
가 하만 포함된 경우(예:"labels.env:*"
) 존재 여부 확인 검사를 수행합니다. 지정된 라벨 키 'env'가 있는지 확인합니다. 다른 필드는 지원되지 않습니다.구문 중간에 있는 경우(예:
"compute*storage"
) 토큰화 구분 기호로 처리됩니다. 쿼리는 'compute storage'와 같습니다.구문의 시작 및 끝 부분에 모두 있으면(예:
"*compute storage*"
) 토큰화 구분 기호로 처리됩니다. 쿼리는 'compute storage'와 같습니다.
예: 토큰 프리픽스 일치
policy
필드에am
로 시작하는 단어가 포함된 애셋을 반환합니다.policy:am*
policy
필드가"amy"
및"20"
를 접두사로 가지고 있는 애셋을 반환홥니다.policy:"amy 20*" policy:"20 amy*"
policy
필드 값이"amy.2020@gmail.com"
인 애셋이 있는 경우 위 쿼리가 둘 다 일치합니다. 토큰화 후"amy"
와"20"
모두 프리픽스입니다. 쿼리 문자열"amy 20*"
은"amy 20"
과 다릅니다. 후자의 경우20
이 접두사가 아닌 전체 단어여야 합니다.
예: 라벨 키 존재 여부
labels
중 하나에 'env' 키가 있고 임의의 값을 가진 애셋을 반환합니다(빈 값 또는 값 없음 포함).
labels.env:*