このページでは、Identity and Access Management(IAM)ポリシーを非同期で分析し、結果を Cloud Storage に書き込む方法について説明します。この機能は、分析結果が Cloud Storage バケットに書き込まれる以外は、IAM ポリシーの分析とほとんど同じです。
始める前に
Enable the Cloud Asset API.
クエリの送信に使用するプロジェクトまたは組織で API を有効にする必要があります。これは、クエリのスコープを設定するのと同じリソースにする必要はありません。
必要なロールと権限
ポリシーの分析を実行して結果を Cloud Storage にエクスポートするには、次のロールと権限が必要です。
必要な IAM のロール
ポリシーを分析して結果を BigQuery にエクスポートするために必要な権限を取得するには、クエリのスコープであるプロジェクト、フォルダ、または組織に対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Asset 閲覧者(
roles/cloudasset.viewer
) -
Storage オブジェクト作成者(
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 ポリシーのリストが表示されます。