このページでは、リソースの構成と使用状況に関する分析結果である、組織のポリシー分析情報を管理する方法について説明します。組織のポリシーの分析情報を使用すると、組織のポリシーで保護されていないリソースを特定できます。
組織のポリシーの分析情報は、 組織のポリシーの推奨事項に関連付けられている場合があります。組織のポリシーの推奨事項は、組織のポリシーの分析情報によって特定された問題を修正するために実行できるアクションを提案します。
始める前に
-
Enable the Recommender API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - 組織のポリシーの推奨事項を理解している。
- (省略可)Recommender の分析情報をご覧ください。
必要なロール
組織のポリシーの分析情報を表示して変更するために必要な権限を取得するには、分析情報を管理するリソース(プロジェクト、フォルダ、組織)に対する Org Policy Recommender 管理者 (roles/recommender.orgPolicyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、組織のポリシーの分析情報の表示と変更に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
組織のポリシーの分析情報を表示して変更するには、次の権限が必要です。
-
recommender.orgPolicyInsights.get -
recommender.orgPolicyInsights.list -
recommender.orgPolicyInsights.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
組織のポリシーの分析情報を一覧表示する
プロジェクト、フォルダ、または組織のすべての組織のポリシーの分析情報を一覧表示するには、次のいずれかの方法を使用します。gcloud
gcloud recommender
insights list コマンドを使用して、プロジェクト、フォルダ、または組織のすべての組織のポリシーの分析情報を表示します。
コマンドを実行する前に、次の値を置き換えます。
-
RESOURCE_TYPE: 分析情報を表示するリソースタイプ。値project、folder、またはorganizationを使用します。 -
RESOURCE_ID: 分析情報を一覧表示するプロジェクト、フォルダまたは組織の ID。
gcloud recommender insights list --insight-type=google.orgpolicy.policy.Insight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global
出力には、プロジェクト、フォルダ、または組織のすべての組織のポリシーの分析情報が一覧表示されます。次に例を示します。
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 66d543f3-845d-49d6-a26b-80d84804d8a8 SECURITY ACTIVE 2024-12-10T08:00:00Z HIGH RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION Scanned 3 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.
REST
Recommender API の insights.list メソッドを使用して、プロジェクト、フォルダ、または組織のすべての組織のポリシーの分析情報を一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE: 分析情報を表示するリソースタイプ。値projects、folders、またはorganizationsを使用します。 -
RESOURCE_ID: 分析情報を一覧表示するプロジェクト、フォルダまたは組織の ID。 PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:my-project)。
HTTP メソッドと URL:
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスには、プロジェクト、フォルダ、または組織のすべての組織のポリシーの分析情報が一覧表示されます。次に例を示します。
[
{
"associatedRecommendations": [
{
"recommendation": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f"
}
],
"category": "SECURITY",
"content": {
"consolidatedPolicy": {
"inheritFromParent": false,
"name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
"policyRules": {
"rules": [
{
"enforce": false
}
]
},
"reset": false
},
"constraint": {
"id": "constraints/iam.managed.disableServiceAccountKeyCreation",
"name": "Disable service account key creation"
},
"evaluatedResources": [
{
"numOfResources": "2",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
},
{
"numOfResources": "1",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
],
"violations": [
{
"numOfResources": "0",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
},
{
"numOfResources": "0",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
},
"description": "Scanned 3 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.",
"etag": "\"9a1ad019022f9f56\"",
"insightSubtype": "RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
"lastRefreshTime": "2024-12-07T08:00:00Z",
"name": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8",
"observationPeriod": "86400s",
"severity": "HIGH",
"stateInfo": {
"state": "ACTIVE",
"stateMetadata": {
"reviewedBy": "alice",
"priority": "high"
}
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
]分析情報のコンポーネントの詳細については、このページの組織のポリシーの分析情報を確認するをご覧ください。
1 つの組織のポリシーに関する分析情報を取得する
1 つの分析情報に関する詳細(分析情報の説明、ステータス、推奨事項など)を取得するには、次のいずれかの方法を使用します。
gcloud
分析情報の ID を指定して gcloud recommender
insights describe コマンドを使用すると、1 つの分析結果に関する情報を表示できます。
-
INSIGHT_ID: 表示する分析情報の ID。ID を確認するには、プロジェクト、フォルダ、組織の分析情報を一覧表示します。 -
RESOURCE_TYPE: 分析情報を管理するリソースタイプ。値project、folder、またはorganizationを使用します。 RESOURCE_ID: 分析情報を管理するプロジェクト、フォルダ、または組織の ID。
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.orgpolicy.policy.Insight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global
出力に分析情報の詳細が表示されます。たとえば、2 つのリソースで外部サービス アカウント キーが分析され、違反が検出されなかった場合:
associatedRecommendations: - recommendation: projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f category: SECURITY content: consolidatedPolicy: inheritFromParent: false name: 'projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation' policyRules: rules: [ "enforce": false ] reset: false constraint: { id: constraints/iam.managed.disableServiceAccountKeyCreation name: Disable service account key creation } evaluatedResources: - numOfResources: '1' resourceType: cloudresourcemanager.googleapis.com/Project - numOfResources: '2' resourceType: iam.googleapis.com/ServiceAccountKey violations: - numOfResources: '0' resourceType: iam.googleapis.com/ServiceAccountKey - numOfResources: '0' resourceType: cloudresourcemanager.googleapis.com/Project description: Scanned 3 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation. etag: '"34ddfdcefd214fd7"' insightSubtype: RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION lastRefreshTime: '2024-12-10T08:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8 observationPeriod: 86400s severity: HIGH stateInfo: state: ACTIVE targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
分析情報のコンポーネントの詳細については、このページの組織のポリシーの分析情報を確認するをご覧ください。
REST
1 つの分析情報を取得するには、Recommender API の insights.get メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE: 分析情報を管理するリソースタイプ。値projects、folders、またはorganizationsを使用します。 -
RESOURCE_ID: 分析情報を管理するプロジェクト、フォルダ、または組織の ID。 -
INSIGHT_ID: 表示する分析情報の ID。分析情報の ID が不明な場合は、プロジェクト、フォルダ、または組織の分析情報を一覧表示することで確認できます。分析情報のnameフィールドのinsights/より後の部分が分析情報の ID です。 PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:my-project)。
HTTP メソッドと URL:
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/INSIGHT_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスに分析情報が含まれます。たとえば、2 つのリソースで外部サービス アカウント キーが分析され、違反が検出されなかった場合:
[
{
"associatedRecommendations": [
{
"recommendation": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f"
}
],
"category": "SECURITY",
"content": {
"consolidatedPolicy": {
"inheritFromParent": false,
"name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
"policyRules": {
"rules": [
{
"enforce": false
}
]
},
"reset": false
},
"constraint": {
"id": "constraints/iam.managed.disableServiceAccountKeyCreation",
"name": "Disable service account key creation"
},
"evaluatedResources": [
{
"numOfResources": "1",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
},
{
"numOfResources": "2",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
}
],
"violations": [
{
"numOfResources": "0",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
},
{
"numOfResources": "0",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
},
"description": "Scanned 2 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.",
"etag": "\"9a1ad019022f9f56\"",
"insightSubtype": "RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
"lastRefreshTime": "2024-12-03T08:00:00Z",
"name": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8",
"observationPeriod": "86400s",
"severity": "HIGH",
"stateInfo": {
"state": "ACTIVE",
"stateMetadata": {
"reviewedBy": "alice",
"priority": "high"
}
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
]分析情報のコンポーネントの詳細については、このページの組織のポリシーの分析情報を確認するをご覧ください。
組織のポリシーの分析情報を確認する
1 つの分析情報を取得したら、その内容を確認して、リソースの組織のポリシーの構成(違反を含む)を把握できます。
組織のポリシーの分析情報(google.orgpolicy.policy.Insight)の分析情報には、次のコンポーネントがあります(順番は異なる場合があります)。
-
associatedRecommendations: 分析情報に関連付けられている推奨事項の ID。分析情報に関連付けられた推奨事項がない場合、このフィールドは空白になります。 -
category: 組織のポリシー分析情報のカテゴリは常にSECURITYになります。 -
content: 分析されたリソースと組織のポリシーの詳細を提供します。このフィールドには次のコンポーネントが含まれます。-
constraint: 分析された制約。 -
consolidatedPolicy: 分析されたリソースの組織のポリシー。 -
evaluatedResources: 分析情報の生成に使用されたリソース。 -
violations: 組織のポリシーに違反しているリソースの数とタイプ。
-
-
description: 人が読める形式の分析情報の概要。 -
etag: 分析情報の現在の状態の一意の識別子。分析情報が変わるたびに、新しいetag値が割り当てられます。分析情報の状態を変更するには、既存の分析情報の
etagを指定する必要があります。etagを使用すると、最後に取得した後に分析情報が変更されていない場合にのみ、オペレーションを実行できます。 -
insightSubtype: 分析情報のサブタイプ。 -
lastRefreshTime: 分析情報が最後に更新された日付。分析情報の生成に使用されたデータの鮮度を表します。 -
name: 分析情報の名前。次の形式になります。RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/INSIGHT_ID
プレースホルダの値は次のとおりです。
-
RESOURCE_TYPE: 分析情報が生成されたリソースタイプ。 -
RESOURCE_ID: 分析情報が生成されたプロジェクト、フォルダ、または組織の ID。 INSIGHT_ID: 分析情報の一意の ID。
-
-
observationPeriod: 分析情報の期間。分析情報の生成に使用されるソースデータはlastRefreshTimeで終了し、lastRefreshTimeからobservationPeriodを引いた時間に開始します。 -
severity: 分析情報の重大度。組織のポリシーの分析情報の重要度はHIGHです。 -
stateInfo: 分析情報が提案後、多くの状態遷移が発生します。-
ACTIVE: 分析情報が生成されていますが、アクションが実行されていません。あるいは、分析情報の状態を更新せずに処理が行われています。アクティブな分析情報は、基になるデータが変更されると更新されます。 -
ACCEPTED: 分析情報に基づいて一部の操作が行われています。関連する推奨事項がCLAIMED、SUCCEEDED、FAILEDのいずれかにマークされるか、もしくは分析情報が直接承認されると、分析情報は承認された状態になります。分析情報がACCEPTED状態の場合、分析情報のコンテンツは変更できません。承認された分析情報は、承認後 90 日間保持されます。
-
-
targetResources: 分析情報の対象となるプロジェクト、フォルダ、または組織の完全なリソース名 。例://cloudresourcemanager.googleapis.com/projects/1234567890
組織ポリシーの分析情報を ACCEPTED としてマークする
アクティブな分析情報に基づいてアクションを実行する場合は、その分析情報を ACCEPTED としてマークします。ACCEPTED 状態は、この分析情報に基づいてアクションを実行したことを Recommender API に通知します。この情報は推奨事項の改善に役立ちます。
承諾された分析情報は、ACCEPTED とマークされてから 90 日間保持されます。
gcloud
分析情報 ID を指定して gcloud recommender insights mark-accepted コマンドを使用し、分析情報を ACCEPTED とマークします。
-
INSIGHT_ID: 表示する分析情報の ID。ID を確認するには、プロジェクト、フォルダ、組織の分析情報を一覧表示します。 -
RESOURCE_TYPE: 分析情報を管理するリソースタイプ。値project、folder、またはorganizationを使用します。 RESOURCE_ID: 分析情報を管理するプロジェクト、フォルダ、または組織の ID。-
ETAG: 分析情報のバージョンの ID。etagを取得する方法は次のとおりです。gcloud recommender insights describeコマンドで分析情報を取得します。-
出力から
etag値を見つけてコピーします(引用符も含む)。例:"d3cdec23cc712bd0"
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.orgpolicy.policy.Insight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global \ --etag=ETAG
出力に、ACCEPTED 状態の分析情報が表示されます。
associatedRecommendations: - recommendation: folders/234567890123/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f category: SECURITY content: consolidatedPolicy: inheritFromParent: false name: 'projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation' policyRules: rules: [ "enforce": false ] reset: false constraint: { id: constraints/iam.managed.disableServiceAccountKeyCreation name: Disable service account key creation } evaluatedResources: - numOfResources: '0' resourceType: iam.googleapis.com/ServiceAccountKey - numOfResources: '1' resourceType: cloudresourcemanager.googleapis.com/Folder - numOfResources: '1' resourceType: cloudresourcemanager.googleapis.com/Project violations: - numOfResources: '0' resourceType: iam.googleapis.com/ServiceAccountKey - numOfResources: '0' resourceType: cloudresourcemanager.googleapis.com/Folder - numOfResources: '0' resourceType: cloudresourcemanager.googleapis.com/Project description: Scanned 2 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyUpload. etag: '"2cbb89b22fe2dab7"' insightSubtype: RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_UPLOAD lastRefreshTime: '2024-12-10T08:00:00Z' name: folders/234567890123/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8 observationPeriod: 86400s severity: HIGH stateInfo: state: ACCEPTED targetResources: - //cloudresourcemanager.googleapis.com/folders/234567890123
分析情報の状態の詳細については、このページの組織のポリシーの分析情報を確認するをご覧ください。
REST
Recommender API の insights.markAccepted メソッドを使用して、分析情報を ACCEPTED としてマークします。
リクエストのデータを使用する前に、次のように置き換えます。
-
RESOURCE_TYPE: 分析情報を管理するリソースタイプ。値projects、folders、またはorganizationsを使用します。 -
RESOURCE_ID: 分析情報を管理するプロジェクト、フォルダ、または組織の ID。 -
INSIGHT_ID: 表示する分析情報の ID。分析情報の ID が不明な場合は、プロジェクト、フォルダ、または組織の分析情報を一覧表示することで確認できます。分析情報のnameフィールドのinsights/より後の部分が分析情報の ID です。 -
ETAG: 分析情報のバージョンの ID。etagを取得する方法は次のとおりです。insights.getメソッドで分析情報を取得します。- レスポンスから
etag値を見つけてコピーします。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:my-project)。
HTTP メソッドと URL:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/INSIGHT_ID:markAccepted
リクエストの本文(JSON):
{
"etag": "ETAG"
}リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスには、状態が ACCEPTED の分析情報が含まれます。
[
{
"associatedRecommendations": [
{
"recommendation": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f"
}
],
"category": "SECURITY",
"content": {
"consolidatedPolicy": {
"inheritFromParent": false,
"name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
"policyRules": {
"rules": [
{
"enforce": false
}
]
},
"reset": false
},
"constraint": {
"id": "constraints/iam.managed.disableServiceAccountKeyCreation",
"name": "Disable service account key creation"
},
"evaluatedResources": [
{
"numOfResources": "1",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
},
{
"numOfResources": "2",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
}
],
"violations": [
{
"numOfResources": "0",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
},
{
"numOfResources": "0",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
},
"description": "Scanned 2 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.",
"etag": "\"9a1ad019022f9f56\"",
"insightSubtype": "RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
"lastRefreshTime": "2024-12-03T08:00:00Z",
"name": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8",
"observationPeriod": "86400s",
"severity": "HIGH",
"stateInfo": {
"state": "ACCEPTED",
"stateMetadata": {
"reviewedBy": "alice",
"priority": "high"
}
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
]分析情報の状態の詳細については、このページの組織のポリシーの分析情報を確認するをご覧ください。
次のステップ
- 組織のポリシーの推奨事項を表示して適用する方法を確認する。
- Active Assist を使用して、プロジェクトに対するすべての推奨事項(IAM の推奨事項を含む)を表示し、管理する。