組織のポリシーの推奨事項を確認して適用する

このページでは、組織のポリシーの推奨事項を表示、確認、適用する方法について説明します。組織のポリシーの推奨事項は、システムを中断することなく適切な組織のポリシーを設定するのに役立ちます。

始める前に

  • Enable the Organization Policy and Recommender APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  • 認証を設定する。

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

  • 組織のポリシーに関する推奨事項について理解する。

必要な IAM のロール

このセクションでは、組織のポリシーの推奨事項が機能するために必要な IAM のロールと権限について説明します。

組織のポリシーの推奨事項を管理するために必要な権限を取得するには、推奨事項を管理するリソース(プロジェクト、フォルダ、組織)に対して次の IAM ロールを付与するように管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、組織のポリシーの推奨事項の管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

組織のポリシーの推奨事項を管理するには、次の権限が必要です。

  • 組織のポリシーの推奨事項を表示する:
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
  • 組織のポリシーの推奨事項を適用、拒否するには:
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
    • recommender.orgPolicyRecommendations.update
  • 組織のポリシーを管理する:
    • orgpolicy.policy.get
    • orgpolicy.policy.set
    • orgpolicy.constraints.list
    • orgpolicy.policies.create
    • orgpolicy.policies.delete
    • orgpolicy.policies.list
    • orgpolicy.policies.update

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

制限事項

組織のポリシー Recommender のプレビュー版には次の制限があります。

  • 分析情報は、推奨事項があるプロジェクト、フォルダ、組織でのみ使用できます。

  • 推奨事項は、特定のリソースまたはその子リソースに構成されていない制約に対してのみ作成されます。

サポートされている制約

推奨事項は、次の組織のポリシーの制約でのみ使用できます。

推奨事項の確認と適用

組織のポリシーの推奨事項を確認して適用するには、Google Cloud CLI と Recommender API を使用します。

gcloud

推奨事項を確認する:

推奨事項を表示するには、gcloud recommender recommendations list コマンドを実行します。

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.orgpolicy.policy.Recommender \
    --RESOURCE_TYPE=RESOURCE_ID \
    --filter="recommenderSubtype:RECOMMENDER_SUBTYPE" \
    --format=FORMAT

次の値を置き換えてください。

  • RESOURCE_TYPE: 推奨事項を一覧表示する対象のリソースタイプ。値 projectfolder、または organization を使用します。

  • RESOURCE_ID: 推奨事項を一覧表示する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

  • RECOMMENDER_SUBTYPE: 省略可。推奨事項を表示するサブタイプの ID。有効なサブタイプは次のとおりです。

    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION は、iam.managed.disableServiceAccountKeyCreation 制約の推奨事項を提供します。
    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_UPLOADiam.managed.disableServiceAccountKeyUpload 制約の推奨事項を提供します
  • FORMAT: レスポンスの形式。値 json または yaml を使用します。

レスポンスは次の例のようになります。この例では、2 つのリソースで外部サービス アカウント キーが分析され、違反は検出されませんでした。そのため、推奨事項では、今後の違反を防ぐために iam.managed.disableServiceAccountKeyCreation を設定することが提案されます。

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

推奨事項のコンポーネントの詳細については、推奨事項についてをご覧ください。

推奨事項を適用するには、次の手順を行います。

  1. gcloud recommender recommendations mark-claimed コマンドを使用して、推奨事項の状態を CLAIMED に変更します。これにより、推奨事項を適用している間は変更できなくなります。

    gcloud recommender recommendations mark-claimed \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.orgpolicy.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    次の値を置き換えます。

    • RECOMMENDATION_ID: レコメンデーションの一意の識別子。この値は、レコメンデーションの name フィールドの最後に表示されます。上記の例では、ID は fb927dc1-9695-4436-0000-f0f285007c0f です。
    • RESOURCE_TYPE: 推奨事項を管理する対象のリソースタイプ。値 projectfolder、または organization を使用します。
    • RESOURCE_ID: 推奨事項を一覧表示する Google Cloudプロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
    • FORMAT: レスポンスの形式。値 json または yaml を使用します。
    • ETAG: 推奨事項のバージョンの識別子("7caf4103d7669e12" など)。この値には引用符を含めることができます。
    • STATE_METADATA: 省略可。レコメンデーションに関する任意のメタデータを含むカンマ区切りの Key-Value ペア。たとえば、--state-metadata=reviewedBy=alice,priority=high です。メタデータにより、レコメンデーションの stateInfo.stateMetadata フィールドが置き換わります。

    コマンドが成功した場合、レスポンスは次の例のように CLAIMED ステータスにレコメンデーションを表示します。この例では、わかりやすくするためにほとんどのフィールドを省略しています。

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {\
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    
  2. RESOURCE_TYPERESOURCE_ID で指定されたプロジェクト、フォルダ、または組織の組織のポリシーを更新して適用し、推奨事項を反映させます。

  3. 推奨事項を適用できた場合は推奨事項のステータスを SUCCEEDED に更新し、推奨事項を適用できない場合は FAILED に更新します。

    gcloud recommender recommendations COMMAND \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    次の値を置き換えます。

    • COMMAND: レコメンデーションを適用できた場合は mark-succeeded を使用し、レコメンデーションを適用できなかった場合は mark-failed を使用します。
    • RECOMMENDATION_ID: レコメンデーションの一意の識別子。この値は、レコメンデーションの name フィールドの最後に表示されます。上記の例では、ID は fb927dc1-9695-4436-0000-f0f285007c0f です。
    • RESOURCE_TYPE: 推奨事項を管理する対象のリソースタイプ。値 projectfolder、または organization を使用します。
    • RESOURCE_ID: 推奨事項を一覧表示する Google Cloudプロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
    • FORMAT: レスポンスの形式。値 json または yaml を使用します。
    • ETAG: 推奨事項のバージョンの識別子("7caf4103d7669e12" など)。この値には引用符を含めることができます。
    • STATE_METADATA: 省略可。レコメンデーションに関する任意のメタデータを含むカンマ区切りの Key-Value ペア。たとえば、--state-metadata=reviewedBy=alice,priority=high です。メタデータにより、レコメンデーションの stateInfo.stateMetadata フィールドが置き換わります。

    たとえば、レコメンデーションを「完了」に設定した場合、レスポンスにより SUCCEEDED ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    

    組織のポリシーの変更を元に戻すには、関連する分析情報の configuredPolicy フィールドに示されている元の構成に組織のポリシーを設定します。

REST

推奨事項を確認する:

プロジェクト、フォルダ、または組織で利用可能なすべての推奨事項を一覧表示するには、Recommender API の recommendations.list メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 推奨事項を管理するリソースタイプ。値 projectsfolders、または organizations を使用します。
  • RESOURCE_ID: 推奨事項を管理するGoogle Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • PAGE_SIZE: 省略可。このリクエストから返される結果の最大数。指定しなかった場合、サーバーが結果数を決定します。推奨事項の数がページサイズより大きい場合、レスポンスにページ設定トークンが含まれます。このトークンを使用して、結果の次のページを取得できます。
  • PAGE_TOKEN: 省略可。以前のレスポンスでこのメソッドから返されたページ設定トークン。指定すると、前のリクエストが終了した時点から推奨事項のリストが開始します。
  • FILTER: 省略可。返される推奨事項を制限するフィルタ式。stateInfo.state フィールドに基づいて推奨事項をフィルタできます。たとえば、stateInfo.state:"DISMISSED"stateInfo.state:"FAILED" です。
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。

HTTP メソッドと URL:

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

リクエストを送信するには、次のいずれかのオプションを展開します。

レスポンスは次の例のようになります。この例では、2 つのリソースで外部サービス アカウント キーが分析され、違反は検出されませんでした。そのため、推奨事項では、今後の違反を防ぐために iam.managed.disableServiceAccountKeyCreation を設定することが提案されます。

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

推奨事項のコンポーネントの詳細については、推奨事項についてをご覧ください。

推奨事項を適用するには、次の手順を行います。

  1. レコメンデーションを CLAIMED とマークします。

    推奨事項を CLAIMED としてマークし、適用中に推奨事項を変更できないようにするには、Recommender API の recommendations.markClaimed メソッドを使用します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • RESOURCE_TYPE: 推奨事項を管理するリソースタイプ。値 projectsfolders、または organizations を使用します。
    • RESOURCE_ID: 推奨事項を管理するGoogle Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
    • RECOMMENDATION_ID: 推奨事項の一意の識別子。この値は、レコメンデーションの name フィールドの最後に表示されます。たとえば、name フィールドが projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f の場合、レコメンデーション ID は fb927dc1-9695-4436-0000-f0f285007c0f です。
    • ETAG: レコメンデーションの etag フィールドの値("dd0686e7136a4cbb" など)。バックスラッシュを使用して引用符をエスケープします(例: "\"df7308cca9719dcc\"")。
    • STATE_METADATA: 省略可。レコメンデーションに関する任意のメタデータと Key-Value ペアを含むオブジェクト。例: {"reviewedBy": "alice", "priority": "high"}メタデータにより、レコメンデーションの stateInfo.stateMetadata フィールドが置き換わります。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。

    HTTP メソッドと URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    リクエストの本文(JSON):

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    レスポンスでは、次の例のように CLAIMED ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

  2. RESOURCE_TYPERESOURCE_ID で指定されたプロジェクト、フォルダ、または組織の組織のポリシーを更新して、推奨事項を反映させます。

  3. 推奨事項を適用できた場合は推奨事項のステータスを SUCCEEDED に更新し、推奨事項を適用できない場合は FAILED に更新します。

    SUCCEEDED

    推奨事項を SUCCEEDED としてマークして、適用可能であることを示すには、Recommender API の recommendations.markSucceeded メソッドを使用します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • RESOURCE_TYPE: 推奨事項を管理するリソースタイプ。値 projectsfolders、または organizations を使用します。
    • RESOURCE_ID: 推奨事項を管理するGoogle Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
    • RECOMMENDATION_ID: 推奨事項の一意の識別子。この値は、レコメンデーションの name フィールドの最後に表示されます。たとえば、name フィールドが projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f の場合、レコメンデーション ID は fb927dc1-9695-4436-0000-f0f285007c0f です。
    • ETAG: レコメンデーションの etag フィールドの値("dd0686e7136a4cbb" など)。バックスラッシュを使用して引用符をエスケープします(例: "\"df7308cca9719dcc\"")。
    • STATE_METADATA: 省略可。レコメンデーションに関する任意のメタデータと Key-Value ペアを含むオブジェクト。例: {"reviewedBy": "alice", "priority": "high"}メタデータにより、レコメンデーションの stateInfo.stateMetadata フィールドが置き換わります。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。

    HTTP メソッドと URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    リクエストの本文(JSON):

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    レスポンスでは、次の例のように SUCCEEDED ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

    FAILED

    推奨事項を適用できなかったことを示す FAILED とマークするには、Recommender API の recommendations.markFailed メソッドを使用します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • RESOURCE_TYPE: 推奨事項を管理するリソースタイプ。値 projectsfolders、または organizations を使用します。
    • RESOURCE_ID: 推奨事項を管理するGoogle Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
    • RECOMMENDATION_ID: 推奨事項の一意の識別子。この値は、レコメンデーションの name フィールドの最後に表示されます。たとえば、name フィールドが projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f の場合、レコメンデーション ID は fb927dc1-9695-4436-0000-f0f285007c0f です。
    • ETAG: レコメンデーションの etag フィールドの値("dd0686e7136a4cbb" など)。バックスラッシュを使用して引用符をエスケープします(例: "\"df7308cca9719dcc\"")。
    • STATE_METADATA: 省略可。レコメンデーションに関する任意のメタデータと Key-Value ペアを含むオブジェクト。例: {"reviewedBy": "alice", "priority": "high"}メタデータにより、レコメンデーションの stateInfo.stateMetadata フィールドが置き換わります。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。

    HTTP メソッドと URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    リクエストの本文(JSON):

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    レスポンスでは、次の例のように FAILED ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

推奨事項について

各推奨事項には、推奨事項が作成された理由を理解するのに役立つ情報と、組織のポリシー構成の変更に関する提案が含まれています。主な属性は次のとおりです。

  • description: 人が読める形式の推奨事項の概要。

  • recommenderSubtype: 推奨事項のサブタイプの識別子。各制約には一意の recommenderSubtype があります。

  • content: 組織のポリシーに対する推奨される変更が含まれます。

    • overview: 推奨事項の概要情報。

    • constraint: 制約に関する情報を提供します。

    • enforced_resources: レコメンデーションを適用した場合に、この組織のポリシーが影響するリソースに関する情報を提供します。

    • operationGroups: 推奨事項を適用するときに組織のポリシーに対して行う 1 つ以上のオペレーションのセット。

  • associatedInsights: この推奨事項につながった分析情報のリソース名。

推奨事項の属性の詳細については、推奨事項のリファレンスをご覧ください。

インサイトと推奨事項は、サポートされている組織のポリシーのいずれかが設定されていないリソース、またはその子リソースに対して生成されます。この推奨事項のベースとなる組織のポリシーの構成を確認するには、推奨事項に関連付けられた組織のポリシーの分析情報を表示します。これらの分析情報は associatedInsights フィールドにリストされています。推奨事項に関連付けられた組織のポリシーの分析情報を表示するには、次の操作を行います。

  1. associatedInsights フィールドのどの分析情報が組織のポリシーの分析情報であるかを特定します。組織のポリシーの分析情報のタイプは google.orgpolicy.policy.Insight です。このタイプは、insight フィールドの insightTypes の後に表示されます。

  2. 組織のポリシー分析情報の ID をコピーします。ID は、insight フィールドの insights/ より後の部分です。たとえば、分析情報フィールドが projects/123456789012/locations/us/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f の場合、分析情報 ID は fb927dc1-9695-4436-0000-f0f285007c0f です。

  3. コピーした分析情報 ID を使用して、手順に沿って操作を行い、組織のポリシーの分析情報を取得します。

BigQuery への推奨事項のエクスポート

組織のすべての推奨事項(組織のポリシーの推奨事項を含む)の日次のスナップショットを表示するには、推奨事項を BigQuery にエクスポートします。

推奨事項を BigQuery にエクスポートするには、BigQuery Data Transfer Service を使用してデータ転送を設定する必要があります。データ転送の設定方法については、BigQuery への推奨事項のエクスポートをご覧ください。

次のステップ