IAM 정책 검색 샘플

이 페이지에는 다양한 IAM 정책 검색 사용 사례의 샘플 쿼리가 포함되어 있습니다.

사용 사례: 조직 내의 IAM 정책을 나열하고 출력 형식을 튜플(RESOURCE, ROLE, MEMBER)로 지정합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --page-size=50 \
  --flatten='policy.bindings[].members[]' \
  --format='table(resource, policy.bindings.role, policy.bindings.members)'

--scopeprojects/12345678 또는 folders/1234567로 변경하여 조직 대신 프로젝트 또는 폴더 내에서 검색할 수 있습니다.

--query 제한을 추가하여 보다 구체적인 리소스 검색결과를 얻을 수 있습니다.

결과의 형식을 지정하지 않으려면 --flatten--format를 삭제합니다.

table 대신 csv을 사용하여 결과를 csv 형식으로 지정할 수 있습니다.

--limit를 추가하여 검색 결과의 하위 집합만 가져올 수 있습니다. 이 플래그가 없으면 모든 검색결과가 자동으로 표시됩니다.

사용 사례: 프로젝트 내의 IAM 정책을 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=projects/12345678

--scopeorganizations/123456 또는 folders/1234567로 변경하여 프로젝트 대신 조직 또는 폴더 내의 모든 IAM 정책을 나열할 수 있습니다.

--query 제한을 추가하여 보다 구체적인 정책 검색결과를 얻을 수 있습니다.

사용 사례: 조직 내의 조직/폴더/프로젝트 리소스에 설정된 IAM 정책을 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456  \
  --query='resource:cloudresourcemanager'

--queryresource:(cloudresourcemanager projects)로 변경하여 프로젝트만 볼 수 있습니다.

사용 사례: 프로젝트의 뷰어를 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=projects/12345678 \
  --query='resource:cloudresourcemanager policy:roles/viewer' \
  --page-size=50 \
  --flatten='policy.bindings[].members[]' \
  --format='table(policy.bindings.members)'

사용 사례: 사용자에게 소유자 역할이 있는 프로젝트를 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --query='resource:(cloudresourcemanager projects) policy:(roles/owner user@mycompany.com)' \
  --page-size=50 \
  --format='table(resource)'

사용 사례: 사용자가 프로젝트에 대해 갖는 역할을 입력합니다.

  gcloud asset search-all-iam-policies \
  --scope=projects/12345678 \
  --query='resource:(cloudresourcemanager projects) policy:user@mycompany.com' \
  --page-size=50 \
  --flatten='policy.bindings[]' \
  --format='table(policy.bindings.role)'

사용 사례: 사용자가 프로젝트에 대해 갖는 권한을 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=projects/12345678 \
  --query='resource:cloudresourcemanager policy:user@mycompany.com policy.role.permissions:""' \
  --page-size=50 \
  --format='default(explanation.matchedPermissions)'

사용 사례: Bigstore 버킷에 액세스할 수 있는 사용자를 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=projects/12345678 \
  --query='resource:cloudresourcemanager policy.role.permissions:storage.buckets' \
  --page-size=50 \
  --flatten='policy.bindings[].members[]' \
  --format='table(policy.bindings.members)'

사용 사례: 위험한 정책 설정을 감지하기 위해 소유자 역할이 있는 서비스 계정을 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --query='policy:(roles/owner serviceAccount)' \
  --page-size=50 \
  --flatten='policy.bindings[].members[]' \
  --format='table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)' \
  | grep serviceAccount

사용 사례: Gmail 사용자가 액세스할 수 있는 리소스를 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --query='policy:gmail.com' \
  --page-size=50 \
  --flatten='policy.bindings[].members[]' \
  --format='csv(resource, policy.bindings.role, policy.bindings.members)' \
  | grep @gmail.com

사용 사례: 전체 도메인에 부여된 역할이 있는 리소스를 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --query='policy:"domain:bigwhite.joonix.net"' \
  --page-size=50 \
  --flatten='policy.bindings[]' \
  --format='table(resource, policy.bindings.role)'

사용 사례: 일반 사용자에게 부여된 역할이 있는 리소스를 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --query='policy:(allUsers OR allAuthenticatedUsers)' \
  --page-size=50 \
  --format='table(resource)'

사용 사례: 조직/폴더/프로젝트의 IAM 정책을 변경할 수 있는 사용자/그룹을 나열합니다.

  gcloud asset search-all-iam-policies \
  --scope=organizations/123456 \
  --query='policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)' \
  --page-size=50 \
  --format='json(resource, policy.bindings, explanation.matchedPermissions)'