このページでは、保存した Policy Analyzer のクエリを作成、管理、実行する方法を説明します。1 つのアセットには最大 200 個の保存したクエリを作成できます。この上限には、その子の保存したクエリは含まれません。たとえば、ある組織に 10 個のプロジェクトがある場合、各プロジェクトは最大 200 個の保存したクエリを持ち、組織は最大 200 個の保存したクエリを持つことができます。
始める前に
-
Enable the Cloud Asset API.
必要なロール
保存されたクエリを作成および管理するために必要な権限を取得するには、クエリの保存先となるプロジェクト、フォルダ、または組織に対する Cloud Asset オーナー(roles/cloudasset.owner
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
この事前定義ロールには、保存したクエリの作成と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
保存したクエリを作成、管理するには、次の権限が必要です。
-
cloudasset.savedqueries.create
-
cloudasset.savedqueries.delete
-
cloudasset.savedqueries.get
-
cloudasset.savedqueries.list
-
cloudasset.savedqueries.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
保存するクエリを作成
親プロジェクト、フォルダ、または組織に保存した Policy Analyzer クエリを作成するには、gcloud asset saved-queries create
コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
-
SCOPE_RESOURCE_TYPE_PLURAL
: 検索の対象範囲に設定するリソースのタイプ(複数形式)。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値projects
、folders
、またはorganizations
を使用します。 -
SCOPE_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 は一覧表示された中から任意の権限を確認します。-
QUERY_ID
: 保存したクエリに使用する ID。これは、指定した親リソース(プロジェクト、フォルダ、または組織)内で一意であることが必要です。クエリ ID には、英文字、数字、ハイフンを使用できます。 -
RESOURCE_TYPE
: クエリを保存するリソースタイプ。値project
、folder
、またはorganization
を使用します。 -
RESOURCE_ID
: クエリを保存する Google Cloud のプロジェクト、フォルダ、または組織の ID。プロジェクト ID に使用可能な形式は英数字または数値です。フォルダ ID と組織 ID は数値です。 -
LABEL_KEY
、LABEL_VALUE
: 省略可。クエリにアタッチする Key-Value ペアのカンマ区切りのリスト。検索と一覧表示のオペレーションで使用できます。保存したクエリごとに最大 10 個のラベルを設定できます。 DESCRIPTION
: 省略可。クエリを記述する文字列。
次の内容を request.json
という名前のファイルに保存します。
{ "IamPolicyAnalysisQuery": { "scope": "SCOPE_RESOURCE_TYPE_PLURAL /SCOPE_RESOURCE_ID ", "resourceSelector": { "fullResourceName": "FULL_RESOURCE_NAME " }, "identitySelector": { "identity": "PRINCIPAL " }, "accessSelector": { "permissions": [ "PERMISSION_1 ", "PERMISSION_2 ", "PERMISSION_N " ] } } }
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud asset saved-queries create \QUERY_ID \ --RESOURCE_TYPE =RESOURCE_ID \ --query-file-path=request.json \ --labels="LABEL_KEY =LABEL_VALUE " \ --description="DESCRIPTION "
Windows(PowerShell)
gcloud asset saved-queries create `QUERY_ID ` --RESOURCE_TYPE =RESOURCE_ID ` --query-file-path=request.json ` --labels="LABEL_KEY =LABEL_VALUE " ` --description="DESCRIPTION "
Windows(cmd.exe)
gcloud asset saved-queries create ^QUERY_ID ^ --RESOURCE_TYPE =RESOURCE_ID ^ --query-file-path=request.json ^ --labels="LABEL_KEY =LABEL_VALUE " ^ --description="DESCRIPTION "
レスポンスには、保存したクエリが含まれます。レスポンスの例を以下に示します。
content: iamPolicyAnalysisQuery: resourceSelector: fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project identitySelector: identity: user:my-user@example.com scope: projects/scope-project createTime: '2022-04-18T22:47:25.640783Z' description: A query checking what permissions my-user@example.com has on my-project labels: user: my-user lastUpdateTime: '2022-04-18T22:47:25.640783Z' name: projects/12345678901/savedQueries/my-query
親プロジェクト、フォルダ、または組織に、保存した Policy Analyzer クエリを作成するには、Cloud Asset Inventory API の savedQueries.create
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE
: クエリを保存するリソースタイプ。値projects
、folders
、またはorganizations
を使用します。 -
RESOURCE_ID
: クエリを保存する Google Cloud のプロジェクト、フォルダ、または組織の ID。プロジェクト ID に使用可能な形式は英数字または数値です。フォルダ ID と組織 ID は数値です。 -
QUERY_ID
: 保存したクエリに使用する ID。これは、指定した親リソース(プロジェクト、フォルダ、または組織)内で一意であることが必要です。クエリ ID には、英文字、数字、ハイフンを使用できます。 -
SCOPE_RESOURCE_TYPE
: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値projects
、folders
、またはorganizations
を使用します。 -
SCOPE_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 は一覧表示された中から任意の権限を確認します。-
LABEL_KEY
、LABEL_VALUE
: 省略可。クエリに関連付ける Key-Value ペア。検索と一覧表示のオペレーションで使用できます。保存したクエリごとに最大 10 個のラベルを設定できます。 DESCRIPTION
: 省略可。クエリを記述する文字列。
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_ID /savedQueries?savedQueryId=QUERY_ID
リクエストの本文(JSON):
{ "content": { "iamPolicyAnalysisQuery": { "scope": "SCOPE_RESOURCE_TYPE /SCOPE_RESOURCE_ID ", "resourceSelector": { "fullResourceName": "FULL_RESOURCE_NAME " }, "identitySelector": { "identity": "PRINCIPAL " }, "accessSelector": { "permissions": [ "PERMISSION_1 ", "PERMISSION_2 ", "PERMISSION_N " ] } } }, "labels": { "LABEL_KEY ": "LABEL_VALUE " }, "description": "DESCRIPTION " }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_ID /savedQueries?savedQueryId=QUERY_ID "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_ID /savedQueries?savedQueryId=QUERY_ID " | Select-Object -Expand Content
API Explorer(ブラウザ)
リクエスト本文をコピーして、メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
レスポンスには、保存したクエリが含まれます。レスポンスの例を以下に示します。
{ "name": "projects/12345678901/savedQueries/my-query", "description": "A query checking what permissions my-user@example.com has on my-project", "createTime": "2022-04-18T22:47:25.640783Z", "lastUpdateTime": "2022-04-18T22:47:25.640783Z", "labels": { "user": "my-user" }, "content": { "iamPolicyAnalysisQuery": { "scope": "projects/scope-project", "resourceSelector": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" }, "identitySelector": { "identity": "user:my-user@example.com" } } } }
保存したクエリを実行する
保存した分析クエリを実行するには、gcloud asset analyze-iam-policy
コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
-
SCOPE_RESOURCE_TYPE
: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値project
、folder
、またはorganization
を使用します。 -
SCOPE_RESOURCE_ID
: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。 -
RESOURCE_TYPE_PLURAL
: クエリが保存されているリソースタイプ。値projects
、folders
、またはorganizations
を使用します。 -
RESOURCE_NUM_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の数値 ID。英数字のプロジェクト ID を使用してプロジェクトを識別することはできません。プロジェクト番号を使用する必要があります。 QUERY_ID
: 使用する保存したクエリの ID。
gcloud asset analyze-iam-policy コマンドを実行します。
Linux、macOS、Cloud Shell
gcloud asset analyze-iam-policy \ --SCOPE_RESOURCE_TYPE =SCOPE_RESOURCE_ID \ --saved-analysis-query=RESOURCE_TYPE_PLURAL /RESOURCE_NUM_ID /savedQueries/QUERY_ID
Windows(PowerShell)
gcloud asset analyze-iam-policy ` --SCOPE_RESOURCE_TYPE =SCOPE_RESOURCE_ID ` --saved-analysis-query=RESOURCE_TYPE_PLURAL /RESOURCE_NUM_ID /savedQueries/QUERY_ID
Windows(cmd.exe)
gcloud asset analyze-iam-policy ^ --SCOPE_RESOURCE_TYPE =SCOPE_RESOURCE_ID ^ --saved-analysis-query=RESOURCE_TYPE_PLURAL /RESOURCE_NUM_ID /savedQueries/QUERY_ID
レスポンスには、指定したリソースに対して保存済みクエリを実行した結果が含まれます。クエリ結果の例については、IAM ポリシーを分析するをご覧ください。
保存した分析クエリを実行するには、Cloud Asset Inventory API の analyzeIamPolicy
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
-
SCOPE_RESOURCE_TYPE
: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値projects
、folders
、またはorganizations
を使用します。 -
SCOPE_RESOURCE_ID
: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。 -
RESOURCE_TYPE
: クエリが保存されているリソースタイプ。値projects
、folders
、またはorganizations
を使用します。 -
RESOURCE_NUM_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の数値 ID。英数字のプロジェクト ID を使用してプロジェクトを識別することはできません。プロジェクト番号を使用する必要があります。 QUERY_ID
: 使用する保存したクエリの ID。
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_RESOURCE_TYPE /SCOPE_RESOURCE_ID :analyzeIamPolicy
リクエストの本文(JSON):
{ "savedAnalysisQuery": "RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID " }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-HTTP-Method-Override: GET" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudasset.googleapis.com/v1/SCOPE_RESOURCE_TYPE /SCOPE_RESOURCE_ID :analyzeIamPolicy"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "X-HTTP-Method-Override" = "GET" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudasset.googleapis.com/v1/SCOPE_RESOURCE_TYPE /SCOPE_RESOURCE_ID :analyzeIamPolicy" | Select-Object -Expand Content
API Explorer(ブラウザ)
リクエスト本文をコピーして、メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
レスポンスには、指定したリソースに対して保存済みクエリを実行した結果が含まれます。クエリ結果の例については、IAM ポリシーを分析するをご覧ください。
保存したクエリを取得する
保存した Policy Analyzer クエリを取得するには、gcloud asset saved-queries get
コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
-
QUERY_ID
: 取得する保存済みクエリの ID。 -
RESOURCE_TYPE
: クエリが保存されているリソースタイプ。値project
、folder
、またはorganization
を使用します。 -
RESOURCE_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID に使用可能な形式は英数字または数値です。フォルダ ID と組織 ID は数値です。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud asset saved-queries describeQUERY_ID --RESOURCE_TYPE =RESOURCE_NUM_ID
Windows(PowerShell)
gcloud asset saved-queries describeQUERY_ID --RESOURCE_TYPE =RESOURCE_NUM_ID
Windows(cmd.exe)
gcloud asset saved-queries describeQUERY_ID --RESOURCE_TYPE =RESOURCE_NUM_ID
レスポンスには、保存したクエリが含まれます。レスポンスの例を以下に示します。
content: iamPolicyAnalysisQuery: resourceSelector: fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project identitySelector: identity: user:my-user@example.com scope: projects/scope-project createTime: 2022-04-18T22:47:25.640783Z description: A query checking what permissions my-user@example.com has on my-project labels: user: my-user lastUpdateTime: 2022-04-18T22:47:25.640783Z name: projects/12345678901/savedQueries/my-query
保存した Policy Analyzer クエリを取得するには、Cloud Asset Inventory API の savedQueries.get
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE
: クエリが保存されているリソースタイプ。値projects
、folders
、またはorganizations
を使用します。 -
RESOURCE_NUM_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の数値 ID。英数字のプロジェクト ID を使用してプロジェクトを識別することはできません。プロジェクト番号を使用する必要があります。 -
QUERY_ID
: 取得する保存済みクエリの ID。
HTTP メソッドと URL:
GET https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-HTTP-Method-Override: GET" \
"https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "X-HTTP-Method-Override" = "GET" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID " | Select-Object -Expand Content
API Explorer(ブラウザ)
メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
レスポンスには、保存したクエリが含まれます。レスポンスの例を以下に示します。
{ "name": "projects/12345678901/savedQueries/my-query", "description": "A query checking what permissions my-user@example.com has on my-project", "createTime": "2022-04-18T22:47:25.640783Z", "lastUpdateTime": "2022-04-18T22:47:25.640783Z", "labels": { "user": "my-user" }, "content": { "iamPolicyAnalysisQuery": { "scope": "projects/scope-project", "resourceSelector": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" }, "identitySelector": { "identity": "user:my-user@example.com" } } } }
保存したクエリの一覧を表示
プロジェクト、フォルダ、または組織に保存されているすべての Policy Analyzer クエリを一覧表示するには、gcloud asset saved-queries list
コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE
: クエリが保存されるリソースタイプ。値project
、folder
、またはorganization
を使用します。 -
RESOURCE_ID
: 保存したクエリを一覧表示する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID に使用可能な形式は英数字または数値です。フォルダ ID と組織 ID は数値です。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud asset saved-queries list --RESOURCE_TYPE =RESOURCE_ID
Windows(PowerShell)
gcloud asset saved-queries list --RESOURCE_TYPE =RESOURCE_ID
Windows(cmd.exe)
gcloud asset saved-queries list --RESOURCE_TYPE =RESOURCE_ID
レスポンスには、プロジェクト、フォルダ、または組織に対する保存された Policy Analyzer クエリがすべて含まれます。レスポンスの例を以下に示します。
savedQueries: - content: iamPolicyAnalysisQuery: resourceSelector: fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project identitySelector: identity: user:my-user@example.com scope: projects/scope-project createTime: '2022-04-15T21:17:33.777212Z' description: A query checking what permissions my-user@example.com has on my-project labels: missing-info: permissions lastUpdateTime: '2022-04-15T21:17:33.777212Z' name: projects/12345678901/savedQueries/query-1 - content: iamPolicyAnalysisQuery: accessSelector: permissions: - iam.roles.get - iam.roles.list identitySelector: identity: user:my-user@example.com scope: projects/scope-project createTime: '2022-04-18T22:47:25.640783Z' description: A query checking what resources my-user@example.com has permission to view roles on labels: missing-info: resource lastUpdateTime: '2022-04-18T22:47:25.640783Z' name: projects/12345678901/savedQueries/query-2
プロジェクト、フォルダ、または組織に保存されているすべての Policy Analyzer クエリを一覧表示するには、Cloud Asset Inventory API の savedQueries.list
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE
: クエリが保存されるリソースタイプ。値projects
、folders
、またはorganizations
を使用します。 -
RESOURCE_ID
: 保存したクエリを一覧表示する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID に使用可能な形式は英数字または数値です。フォルダ ID と組織 ID は数値です。
HTTP メソッドと URL:
GET https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_ID /savedQueries
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-HTTP-Method-Override: GET" \
"https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_ID /savedQueries"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "X-HTTP-Method-Override" = "GET" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_ID /savedQueries" | Select-Object -Expand Content
API Explorer(ブラウザ)
メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
レスポンスには、プロジェクト、フォルダ、または組織に対する保存された Policy Analyzer クエリがすべて含まれます。レスポンスの例を以下に示します。
{ "savedQueries": [ { "name": "projects/12345678901/savedQueries/query-1", "description": "A query checking what permissions my-user@example.com has on my-project", "createTime": "2022-04-15T21:17:33.777212Z", "lastUpdateTime": "2022-04-15T21:17:33.777212Z", "labels": { "missing-info": "permission" }, "content": { "iamPolicyAnalysisQuery": { "scope": "projects/scope-project", "resourceSelector": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" }, "identitySelector": { "identity": "user:my-user@example.com" } } } }, { "name": "projects/12345678901/savedQueries/query-2", "description": "A query checking what resources my-user@example.com has permission to view roles on", "createTime": "2022-04-18T22:47:25.640783Z", "lastUpdateTime": "2022-04-18T22:47:25.640783Z", "labels": { "missing-info": "resource" }, "content": { "iamPolicyAnalysisQuery": { "scope": "projects/scope-project", "accessSelector": { "permissions": [ "iam.roles.get", "iam.roles.list" ] }, "identitySelector": { "identity": "user:my-user@example.com" } } } } ] }
保存したクエリの更新
保存した Policy Analyzer クエリを更新するには、gcloud asset saved-queries update
コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
UPDATED_QUERY
: 省略可。保存する更新済みの Policy Analyzer クエリ。クエリのフォーマット方法については、保存クエリを作成するをご覧ください。-
RESOURCE_TYPE
: クエリが保存されているリソースタイプ。値project
、folder
、またはorganization
を使用します。 -
QUERY_ID
: 編集する保存済みクエリの ID。 -
RESOURCE_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID に使用可能な形式は英数字または数値です。フォルダ ID と組織 ID は数値です。 -
UPDATED_LABELS
: 省略可。保存クエリに付ける更新後のラベル。--remove-labels="KEY_1,KEY_2"
フラグを使用してラベルを削除する、または--clear-labels
フラグを使用してすべてのラベルを削除することもできます。 UPDATED_DESCRIPTION
: 省略可。保存済みクエリの更新された説明。
次の内容を request.json
という名前のファイルに保存します。
{ "IamPolicyAnalysisQuery": {UPDATED_QUERY } }
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud asset saved-queries update \QUERY_ID \ --RESOURCE_TYPE =RESOURCE_ID \ --query-file-path=request.json \ --update-labels="UPDATED_LABELS " \ --description="DESCRIPTION "
Windows(PowerShell)
gcloud asset saved-queries update `QUERY_ID ` --RESOURCE_TYPE =RESOURCE_ID ` --query-file-path=request.json ` --update-labels="UPDATED_LABELS " ` --description="DESCRIPTION "
Windows(cmd.exe)
gcloud asset saved-queries update ^QUERY_ID ^ --RESOURCE_TYPE =RESOURCE_ID ^ --query-file-path=request.json ^ --update-labels="UPDATED_LABELS " ^ --description="DESCRIPTION "
レスポンスには、更新されたクエリが含まれます。
保存した Policy Analyzer クエリを更新するには、Cloud Asset Inventory API の savedQueries.patch
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE
: クエリが保存されているリソースタイプ。値projects
、folders
、またはorganizations
を使用します。 -
RESOURCE_NUM_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の数値 ID。英数字のプロジェクト ID を使用してプロジェクトを識別することはできません。プロジェクト番号を使用する必要があります。 -
QUERY_ID
: 編集する保存済みクエリの ID。 -
UPDATED_FIELDS
: 更新するフィールドのカンマ区切りリスト。たとえば、コンテンツ、ラベル、説明のフィールドを更新する場合は、値content,labels,description
を使用します。 UPDATED_QUERY
: 省略可。保存する更新済みの Policy Analyzer クエリ。クエリのフォーマット方法については、保存クエリを作成するをご覧ください。-
UPDATED_LABELS
: 省略可。保存クエリに付ける更新後のラベル。 UPDATED_DESCRIPTION
: 省略可。保存済みクエリの更新された説明。
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID ?update_mask=UPDATED_FIELDS
リクエストの本文(JSON):
{ "content": { "iamPolicyAnalysisQuery": {UPDATED_QUERY }, "labels": {UPDATED_LABELS }, "description": "UPDATED_DESCRIPTION " }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-HTTP-Method-Override: GET" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID ?update_mask=UPDATED_FIELDS "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "X-HTTP-Method-Override" = "GET" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID ?update_mask=UPDATED_FIELDS " | Select-Object -Expand Content
API Explorer(ブラウザ)
リクエスト本文をコピーして、メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
レスポンスには、更新されたクエリが含まれます。
保存したクエリを削除する
保存した Policy Analyzer クエリを削除するには、gcloud asset saved-queries delete
コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
-
QUERY_ID
: 削除する保存済みクエリの ID。 -
RESOURCE_TYPE
: クエリが保存されているリソースタイプ。値project
、folder
、またはorganization
を使用します。 -
RESOURCE_NUM_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の数値 ID。英数字のプロジェクト ID を使用してプロジェクトを識別することはできません。プロジェクト番号を使用する必要があります。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud asset saved-queries delete \QUERY_ID \ --RESOURCE_TYPE =RESOURCE_NUM_ID
Windows(PowerShell)
gcloud asset saved-queries delete `QUERY_ID ` --RESOURCE_TYPE =RESOURCE_NUM_ID
Windows(cmd.exe)
gcloud asset saved-queries delete ^QUERY_ID ^ --RESOURCE_TYPE =RESOURCE_NUM_ID
保存した Policy Analyzer クエリを削除するには、Cloud Asset Inventory API の savedQueries.delete
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE
: クエリが保存されているリソースタイプ。値projects
、folders
、またはorganizations
を使用します。 -
RESOURCE_NUM_ID
: クエリが保存されている Google Cloud プロジェクト、フォルダ、または組織の数値 ID。英数字のプロジェクト ID を使用してプロジェクトを識別することはできません。プロジェクト番号を使用する必要があります。 -
QUERY_ID
: 削除する保存済みクエリの ID。
HTTP メソッドと URL:
DELETE https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-HTTP-Method-Override: GET" \
"https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "X-HTTP-Method-Override" = "GET" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://cloudasset.googleapis.com/v1/RESOURCE_TYPE /RESOURCE_NUM_ID /savedQueries/QUERY_ID " | Select-Object -Expand Content
API Explorer(ブラウザ)
メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
クエリが正常に削除されると、API は空のレスポンスを返します。