プロジェクト、フォルダ、組織の組織のポリシーの分析情報を確認する

このページでは、リソースの構成と使用状況に関する分析結果である、組織のポリシー分析情報を管理する方法について説明します。組織のポリシーの分析情報を使用すると、組織のポリシーで保護されていないリソースを特定できます。

組織のポリシーの分析情報は、 組織のポリシーの推奨事項に関連付けられている場合があります。組織のポリシーの推奨事項は、組織のポリシーの分析情報によって特定された問題を修正するために実行できるアクションを提案します。

始める前に

必要なロール

組織のポリシーの分析情報を表示および変更するために必要な権限を取得するには、分析情報を管理するリソース(プロジェクト、フォルダ、または組織)に対して 組織のポリシー Recommender 管理者 roles/recommender.orgPolicyAdmin)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

この事前定義ロールには、組織のポリシーの分析情報を表示および変更するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

組織のポリシーの分析情報を表示および変更するには、次の権限が必要です。

  • recommender.orgPolicyInsights.get
  • recommender.orgPolicyInsights.list
  • recommender.orgPolicyInsights.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

組織のポリシーの分析情報を一覧表示する

プロジェクト、フォルダ、または組織の組織のポリシーに関する分析情報をすべて一覧表示するには、次のいずれかの方法を使用します。

gcloud

gcloud recommender insights list コマンドを使用して、プロジェクト、フォルダ、または組織のすべての組織のポリシーの分析情報を表示します。

コマンドを実行する前に、次の値を置き換えます。

  • RESOURCE_TYPE: 分析情報を表示するリソースタイプ。値 projectfolder、または 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: 分析情報を表示するリソースタイプ。値 projectsfolders、または 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: 分析情報を管理するリソースタイプ。値 projectfolder、または 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: 分析情報を管理するリソースタイプ。値 projectsfolders、または 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: 分析情報の現在の状態の一意の ID。分析情報が変わるたびに、新しい 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: 分析情報に基づいて一部の操作が行われています。関連する推奨事項が CLAIMEDSUCCEEDEDFAILED のいずれかにマークされるか、もしくは分析情報が直接承認されると、分析情報は承認された状態になります。分析情報が 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: 分析情報を管理するリソースタイプ。値 projectfolder、または organization を使用します。
  • RESOURCE_ID: 分析情報を管理するプロジェクト、フォルダ、または組織の ID。
  • ETAG: 分析情報のバージョンの ID。etag を取得する方法は次のとおりです。

    1. gcloud recommender insights describe コマンドで分析情報を取得します。
    2. 出力から 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: 分析情報を管理するリソースタイプ。値 projectsfolders、または organizations を使用します。
  • RESOURCE_ID: 分析情報を管理するプロジェクト、フォルダ、または組織の ID。
  • INSIGHT_ID: 表示する分析情報の ID。分析情報の ID が不明な場合は、プロジェクト、フォルダ、または組織の分析情報を一覧表示することで確認できます。分析情報の name フィールドの insights/ より後の部分が分析情報の ID です。
  • ETAG: 分析情報のバージョンの ID。etag を取得する方法は次のとおりです。
    1. insights.get メソッドで分析情報を取得します。
    2. レスポンスから 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"
    ]
  }
]

分析情報の状態の詳細については、このページの組織のポリシー分析情報の確認をご覧ください。

次のステップ