このページでは、Identity and Access Management(IAM)ポリシーを非同期で分析し、結果を Cloud Storage に書き込む方法について説明します。この機能は、分析結果が Cloud Storage バケットに書き込まれる以外は、IAM ポリシーの分析とほとんど同じです。
始める前に
Cloud Asset API を有効にします。
API を有効にするために必要なロール
API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
クエリの送信に使用するプロジェクトで 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 ポリシーのリストが表示されます。