IAM ポリシーの検索のサンプル

このページでは、さまざまなIAM ポリシー検索ユースケースのサンプルクエリを紹介します。

ユースケース: 組織内の Cloud リソースを一覧表示し、出力の形式をタプル(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)'