프로젝트, 폴더 또는 조직의 리소스에 대한 IAM 허용 정책을 검색하고 쿼리를 사용하여 반환된 결과를 필터링할 수 있습니다.
시작하기 전에
Cloud 애셋 인벤토리 명령어를 실행할 프로젝트에서 Cloud 애셋 인벤토리 API를 사용 설정하세요.
계정에 Cloud 애셋 인벤토리 API를 호출할 수 있는 올바른 역할이 있는지 확인합니다. 각 호출 유형에 대한 개별 권한은 권한을 참고하세요.
쿼리 구성
쿼리를 구성하기 전에 쿼리를 지정하지 않은 검색 요청으로 시작하는 것이 좋습니다. 전체 응답의 필드와 값을 사용하여 검색어 문법을 사용하여 쿼리를 만들고 원하는 결과가 반환될 때까지 이를 미세 조정합니다.
쿼리에 사용할 수 있는 필드는 IamPolicySearchResult
참고 문서에 자세히 설명되어 있습니다.
쿼리를 구성할 때 다음 제한사항에 유의하세요.
policy
필드는 중첩된 객체이므로:
연산자와만 사용할 수 있습니다.일부 애셋 유형은 검색할 수 없습니다. 검색 API에서 서비스를 사용할 수 없는지 확인하려면 리소스 유형을 참고하세요.
다음 추가 필드를 사용하여 결과를 특정 주 구성원 유형, 권한 또는 역할로 제한할 수도 있습니다.
필드 | 설명 |
---|---|
memberTypes |
다음 IAM 주 구성원 유형 중 하나를 포함합니다.
예시memberTypes=user |
policy.role.permissions |
특정 IAM 권한이 포함됩니다. 예시policy.role.permissions=storage.buckets.create |
roles |
특정 IAM 역할이 포함되어 있습니다. 예시roles=roles/storage.objectAdmin |
IAM 허용 정책 검색
쿼리를 구성하기 전에 쿼리를 지정하지 않은 검색 요청으로 시작하는 것이 좋습니다. 전체 응답의 필드와 값을 사용하여 검색어 문법을 사용하여 쿼리를 만들고 원하는 결과가 반환될 때까지 이를 미세 조정합니다.
콘솔
IAM 허용 정책 메타데이터를 검색하려면 다음 단계를 완료하세요.
-
Google Cloud 콘솔에서 애셋 인벤토리 페이지로 이동합니다.
- 검색하려는 프로젝트, 폴더 또는 조직으로 변경합니다.
- IAM 정책 탭을 클릭합니다.
-
허용 정책을 검색하려면 필터 필드에 쿼리를 입력합니다. 검색어를 작성하는 방법은 검색어 문법을 참고하세요.
쿼리 구성을 더 쉽게 하려면 필터 필드를 클릭하여 검색 가능한 필드를 표시하고 쿼리에 추가할 수 있습니다.
검색을 실행하면 쿼리와 일치하는 허용 정책이 결과 테이블에 나열됩니다. 쿼리를 더블클릭하여 수정하거나 결과 필터링 창을 사용하여 빠른 검색어 사전 설정을 적용하거나 특정 기준에 따라 검색 결과를 제한합니다.
Google Cloud CLI 명령어로 쿼리를 보려면 쿼리 보기를 클릭합니다.
결과를 내보내려면 CSV 다운로드를 클릭합니다.
gcloud
gcloud asset search-all-iam-policies \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY"
다음 값을 제공합니다.
-
SCOPE_PATH
: 다음 중 한 가지 값을 사용합니다.허용되는 값은 다음과 같습니다.
-
projects/PROJECT_ID
: 여기서PROJECT_ID
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 프로젝트의 ID입니다. -
projects/PROJECT_NUMBER
: 여기서PROJECT_NUMBER
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 프로젝트의 번호입니다.Google Cloud 프로젝트 번호를 찾는 방법
Google Cloud 콘솔
Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.
gcloud CLI
다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
: 여기서FOLDER_ID
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 폴더의 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
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 조직의 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
를 추가하여 내림차순으로 표시합니다. 정렬할 수 있는 필드는 참고 문서를 참고하세요.
--format
및 --flatten
플래그를 사용하여 gcloud CLI 출력 형식을 지정할 수 있습니다.
모든 옵션은 gcloud CLI 참조를 확인하세요.
예시
다음 명령어를 실행하여 my-project
프로젝트의 모든 Compute Engine 인스턴스(compute.googleapis.com/Instance
) 목록을 가져오고 IAM 허용 정책을 사용하여 사용자 alex@example.com
에 바인딩합니다. 결과는 리소스(resource DESC
)별로 내림차순으로 표시됩니다.
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:\"user:alex@example.com\"" \ --asset-types=compute.googleapis.com/Instance \ --order-by="resource DESC"
응답 예시
--- assetType: compute.googleapis.com/Instance folders: - folders/0000000000000 organization: organizations/0000000000000 policy: bindings: - members: - user:alex@example.com role: roles/compute.viewer - members: - user:alex@example.com role: roles/editor - members: - user:alex@example.com role: roles/owner project: projects/0000000000000 resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllIamPolicies
JSON 요청 본문:
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
다음 값을 제공합니다.
-
SCOPE_PATH
: 다음 중 한 가지 값을 사용합니다.허용되는 값은 다음과 같습니다.
-
projects/PROJECT_ID
: 여기서PROJECT_ID
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 프로젝트의 ID입니다. -
projects/PROJECT_NUMBER
: 여기서PROJECT_NUMBER
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 프로젝트의 번호입니다.Google Cloud 프로젝트 번호를 찾는 방법
Google Cloud 콘솔
Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.
gcloud CLI
다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
: 여기서FOLDER_ID
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 폴더의 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
는 검색하려는 IAM 허용 정책이 있는 애셋이 있는 조직의 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
값으로 사용하여 호출할 수 있습니다.
모든 옵션은 REST 참조를 참고하세요.
명령어 예시
다음 명령어 중 하나를 실행하여 my-project
프로젝트에서 IAM 허용 정책이 사용자 alex@example.com
에 바인딩된 모든 Compute Engine 인스턴스(compute.googleapis.com/Instance
) 목록을 가져옵니다. 결과는 리소스(resource DESC
)별로 내림차순으로 표시됩니다.
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": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
응답 예시
{ "resource": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian", "project": "projects/0000000000000", "policy": { "bindings": [ { "role": "roles/compute.viewer", "members": [ "user:alex@example.com" ] }, { "role": "roles/editor", "members": [ "user:alex@example.com" ] }, { "role": "roles/owner", "members": [ "user:alex@example.com" ] } ] }, "assetType": "compute.googleapis.com/Instance", "folders": [ "folders/0000000000000" ], "organization": "organizations/0000000000000" }
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의 특정 검색어를 보여줍니다.
IAM 허용 정책이 있는 리소스
다음 샘플은 my-project
프로젝트에서 IAM 허용 정책이 있는 모든 리소스를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --flatten="policy.bindings[].members[]" \ --format="table(resource, policy.bindings.role, policy.bindings.members)"
REST
HTTP 메서드 및 URL:
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
명령어 예시
cURL(Linux, macOS, Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
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:searchAllIamPolicies" | Select-Object -Expand Content
IAM 허용 정책이 있는 이름이 지정된 리소스
다음 샘플은 이름에 example
이 있고 IAM 허용 정책이 있는 모든 리소스를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="resource:example"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
JSON 요청 본문:
{ "pageSize": 1, "query": "resource:example" }
명령어 예시
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": "resource:example" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "resource:example" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
프로젝트, 폴더, 조직의 IAM 허용 정책
다음 샘플은 ID가 my-organization-id
인 조직의 모든 프로젝트 및 폴더에서 모든 IAM 허용 정책을 검색하는 방법을 보여줍니다.
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))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --asset-types=cloudresourcemanager.*
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
JSON 요청 본문:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }
명령어 예시
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": "cloudresourcemanager.*", "pageSize": 1, }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
프로젝트 소유자
다음 샘플은 my-project
프로젝트에서 소유자 역할(roles/owner
)이 있는 주 구성원을 검색하는 방법을 보여줍니다.
이 요청은 프로젝트에 소유자 역할이 부여된 주 구성원만 반환합니다. 정책 상속을 통해 소유자 역할을 상속받은 주 구성원은 포함되지 않습니다.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="roles:roles/owner" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
JSON 요청 본문:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }
명령어 예시
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": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
주 구성원에게 소유자 역할이 있는 프로젝트
다음 샘플은 ID가 my-organization-id
인 조직에서 alex@example.com
에 소유자 역할(roles/owner
)이 있는 프로젝트를 검색하는 방법을 보여줍니다.
이 요청은 alex@example.com
에 소유자 역할이 부여된 프로젝트만 반환합니다. alex@example.com
이 소유자 역할을 상속한 프로젝트는 포함되지 않습니다.
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))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner alex@example.com)" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --format="table(resource)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
JSON 요청 본문:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }
명령어 예시
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": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
프로젝트에서 주 구성원이 가진 역할
다음 샘플은 alex@example.com
이 my-project
프로젝트에서 가지는 역할을 검색하는 방법을 보여줍니다.
이 요청은 프로젝트에서 alex@example.com
에 부여된 역할만 반환합니다. alex@example.com
이 정책 상속을 통해 상속받은 역할은 포함되지 않습니다.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --flatten="policy.bindings[]" \ --format="table(policy.bindings.role)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
JSON 요청 본문:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }
명령어 예시
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": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
주 구성원이 프로젝트에 대해 갖는 권한
다음 샘플은 my-project
프로젝트에서 alex@example.com
이 가진 권한을 검색하는 방법을 보여줍니다.
이 요청은 alex@example.com
이 프로젝트에 대해 보유한 권한만 반환합니다. alex@example.com
이 정책 상속을 통해 상속받은 권한은 포함되지 않습니다.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com policy.role.permissions:\"\"" \ --asset-types=cloudresourcemanager.* \ --format="default(explanation.matchedPermissions)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
JSON 요청 본문:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }
명령어 예시
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": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Cloud Storage 버킷에 액세스할 수 있는 사용자
다음 샘플은 my-project
프로젝트에서 Cloud Storage 버킷에 액세스할 수 있는 사용자를 검색하는 방법을 보여줍니다.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy.role.permissions:storage.buckets" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
JSON 요청 본문:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }
명령어 예시
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": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
소유자 역할이 있는 서비스 계정
다음 샘플은 my-organization-id
를 사용하여 조직에서 소유자 역할(roles/owner
)이 있는 서비스 계정을 검색하는 방법을 보여줍니다. 이 쿼리를 사용하여 위험 프로필을 줄일 수 있습니다.
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))"
gcloud
이 예에서는 Cloud Shell 및 Unix와 유사한 운영체제에서 사용할 수 있는 `grep` 명령어를 사용합니다.
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner serviceAccount)" \ --flatten="policy.bindings[].members[]" \ --format="table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)" | grep serviceAccount
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
JSON 요청 본문:
{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }
명령어 예시
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": "policy:(roles/owner serviceAccount)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
도메인에 역할이 부여된 리소스
다음 샘플은 ID가 my-organization-id
인 조직에서 example.com
도메인에 부여된 역할이 있는 리소스를 검색하는 방법을 보여줍니다.
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))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:\"domain:example.com\"" \ --flatten="policy.bindings[]" \ --format="table(resource, policy.bindings.role)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
JSON 요청 본문:
{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }
명령어 예시
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": "policy:\"domain:DOMAIN_NAME\"" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
공개적으로 부여된 역할이 있는 리소스
다음 샘플은 ID가 my-organization-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))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="memberTypes:(allUsers OR allAuthenticatedUsers)" \ --format="table(resource)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
JSON 요청 본문:
{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }
명령어 예시
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": "memberTypes:(allUsers OR allAuthenticatedUsers)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
조직의 IAM 허용 정책을 변경할 수 있는 주 구성원
다음 샘플은 ID my-organization-id
를 사용하여 조직의 IAM 허용 정책을 변경할 수 있는 사용자를 검색하는 방법을 보여줍니다.
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))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" \ --format="json(resource, policy.bindings, explanation.matchedPermissions)"
REST
HTTP 메서드 및 URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
JSON 요청 본문:
{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }
명령어 예시
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": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content