このページでは、Identity and Access Management(IAM)ポリシーを非同期で分析し、結果を Cloud Storage に書き込む方法について説明します。この機能は、分析結果が Cloud Storage バケットに書き込まれる以外は、IAM ポリシーの分析とほとんど同じです。
始める前に
Enable the Cloud Asset API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
クエリの送信に使用するプロジェクトで API を有効にする必要があります。これは、クエリのスコープを設定するのと同じリソースにする必要はありません。
必要なロールと権限
ポリシーの分析を実行して結果を Cloud Storage にエクスポートするには、次のロールと権限が必要です。
必要な IAM のロール
ポリシーを分析して結果を BigQuery にエクスポートするために必要な権限を取得するには、クエリのスコープであるプロジェクト、フォルダ、または組織に対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Asset 閲覧者 (
roles/cloudasset.viewer
) - ストレージのオブジェクト作成者(
roles/storage.objectCreator
) -
カスタム IAM ロールでポリシーを分析するには:
ロール閲覧者 (
roles/iam.roleViewer
) -
Google Cloud CLI を使用してポリシーを分析するには:
Service Usage ユーザー (
roles/serviceusage.serviceUsageConsumer
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、ポリシーを分析して結果を BigQuery にエクスポートするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
ポリシーを分析して結果を BigQuery にエクスポートするには、次の権限が必要です。
-
cloudasset.assets.analyzeIamPolicy
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.searchAllIamPolicies
-
storage.objects.create
-
IAM のカスタムロールでポリシーを分析するには:
iam.roles.get
-
Google Cloud CLI を使用してポリシーを分析するには:
serviceusage.services.use
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
必要な Google Workspace の権限
プリンシパルが Google Workspace グループのメンバーになった結果、特定のロールまたは権限を持つかどうかを確認する場合は、groups.read
Google Workspace の権限が必要です。この権限は、グループ読み取り管理者のロールだけでなく、グループ管理者や特権管理者のロールなどのより強力なロールに含まれています。詳しくは、特定の管理者ロールを割り当てるをご覧ください。
ポリシーを分析して結果をエクスポートする
AnalyzeIamPolicyLongrunning
メソッドを使用すると、指定された Cloud Storage バケットで分析リクエストを発行して結果を取得できます。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
RESOURCE_TYPE
: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値project
、folder
、またはorganization
を使用します。RESOURCE_ID
: 検索の対象範囲のGoogle Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。PRINCIPAL
: アクセスを分析するPRINCIPAL_TYPE:ID
形式のプリンシパル(例:user:my-user@example.com
)。プリンシパル タイプの全一覧については、プリンシパル識別子をご覧ください。PERMISSIONS
: 確認する権限のカンマ区切りのリスト(例:compute.instances.get,compute.instances.start
)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。STORAGE_OBJECT_URI
: 分析結果のエクスポート先に設定する Cloud Storage オブジェクトに関するgs://BUCKET_NAME/OBJECT_NAME
形式の一意のリソース識別子(例:gs://my-bucket/analysis.json
)。
gcloud asset analyze-iam-policy-longrunningコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID \ --full-resource-name=FULL_RESOURCE_NAME \ --identity=PRINCIPAL \ --permissions='PERMISSIONS' \ --gcs-output-path=STORAGE_OBJECT_URI
Windows(PowerShell)
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ` --full-resource-name=FULL_RESOURCE_NAME ` --identity=PRINCIPAL ` --permissions='PERMISSIONS' ` --gcs-output-path=STORAGE_OBJECT_URI
Windows(cmd.exe)
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ^ --full-resource-name=FULL_RESOURCE_NAME ^ --identity=PRINCIPAL ^ --permissions='PERMISSIONS' ^ --gcs-output-path=STORAGE_OBJECT_URI
次のようなレスポンスが返されます。
Analyze IAM Policy in progress. Use [gcloud asset operations describe projects/my-project/operations/AnalyzeIamPolicyLongrunning/1195028485971902504711950280359719028666] to check the status of the operation.
REST
IAM 許可ポリシーを分析し、結果を Cloud Storage にエクスポートするには、Cloud Asset Inventory API の analyzeIamPolicyLongrunning
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
RESOURCE_TYPE
: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値projects
、folders
、またはorganizations
を使用します。RESOURCE_ID
: 検索の対象範囲のGoogle Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。-
FULL_RESOURCE_NAME
: 省略可。アクセスを分析する対象リソースの完全なリソース名。リソース名の形式の一覧については、リソース名の形式をご覧ください。 PRINCIPAL
: 省略可。アクセスを分析するPRINCIPAL_TYPE:ID
形式のプリンシパル(例:user:my-user@example.com
)。プリンシパル タイプの全一覧については、プリンシパル識別子をご覧ください。PERMISSION_1
、PERMISSION_2
、PERMISSION_N
: 省略可。確認する権限(例:compute.instances.get
)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。STORAGE_OBJECT_URI
: 分析結果のエクスポート先に設定する Cloud Storage オブジェクトに関するgs://BUCKET_NAME/OBJECT_NAME
形式の一意のリソース識別子(例:gs://my-bucket/analysis.json
)。
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicyLongrunning
リクエストの本文(JSON):
{ "analysisQuery": { "resourceSelector": { "fullResourceName": "FULL_RESOURCE_NAME" }, "identitySelector": { "identity": "PRINCIPAL" }, "accessSelector": { "permissions": [ "PERMISSION_1", "PERMISSION_2", "PERMISSION_N" ] }, "outputConfig": { "gcsDestination": { "uri": "STORAGE_OBJECT_URI" } } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/my-project/operations/AnalyzeIamPolicyLongrunning/1206385342502762515812063858425027606003", "metadata": { "@type": "type.googleapis.com/google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata", "createTime": "2022-04-12T21:31:10.753173929Z" } }
IAM ポリシーの分析結果を表示する
IAM ポリシー分析を表示するには:
Google Cloud コンソールで [バケット] ページに移動します。
分析を書き込んだ先の新しいファイルを開きます。
結果では、{identity, role(s)/permission(s), resource}
のタプルとともに、それらのタプルを生成する IAM ポリシーのリストが表示されます。