ワークロードの更新を適用する

このページでは、Assured Workloads フォルダのワークロード アップデートを有効にして表示し、適用する方法について説明します。Assured Workloads は、組織のポリシー制約値の更新など、新しい設定や一般的な改善を加えるために、管理パッケージを定期的に更新します。この機能を使用すると、現在の Assured Workloads フォルダ構成を利用可能な最新の構成と比較し、提案された更新を適用するかどうかを選択できます。

デフォルトでは、この機能は新しい Assured Workloads フォルダに対して自動的に有効になります。既存のフォルダの場合は、手順に沿ってワークロードの更新を有効にすることを強くおすすめします。

この機能には追加料金は発生せず、Assured Workloads モニタリングの動作にも影響しません。フォルダが現在の構成に準拠しなくなった場合、構成の更新が利用可能かどうかに関係なく、引き続きアラートが表示されます。

ワークロードの更新の概要

新しい Assured Workloads フォルダを作成するときに、選択した管理パッケージ タイプ(FedRAMP Moderate など)によって、ワークロードに適用されるさまざまな構成設定が決まります。これらの設定の一部は、組織のポリシーの制約として外部に表示されますが、他の設定は Google の内部システムにのみ適用されます。Assured Workloads は、内部構成のバージョニング システムを使用して、各管理パッケージ タイプの変更を維持します。

新しい内部構成バージョンが利用可能になると、Assured Workloads はワークロードの構成を新しい内部バージョンと比較します。違いが分析され、その結果得られた機能強化がワークロードの構成に適用できる更新として利用可能になります。

利用可能な Assured Workloads の更新は、ワークロードの管理パッケージの要件を満たしていることが Google によって検証されています。ただし、利用可能な各更新を審査し、組織の規制要件またはコンプライアンス要件を満たしていることを確認する責任はお客様にあります。詳細については、Assured Workloads における責任の共有をご覧ください。

サポートされている更新タイプ

この機能は、Assured Workloads フォルダで次のタイプの更新の表示と適用をサポートしています。

  • 組織のポリシーの制約: ワークロードに適用され、Assured Workloads によって適用される組織のポリシーの制約は、次の例外を除き、ワークロードの更新に含めることができます。

    • gcp.resourceLocations
    • gcp.restrictCmekCryptoKeyProjects

始める前に

必要な IAM 権限

ワークロードの更新を有効化、表示、適用するには、幅広い権限を含む事前定義ロールや、必要最小限の権限に制限されたカスタムロールを使用して、呼び出し元に IAM 権限を付与する必要があります。なお、必要な orgpolicy.policy.set 権限はカスタムロールでは使用できません。

次の権限が必要です。

ワークロードの更新を有効にする

ワークロードの更新を有効にすると、Assured Workloads サービス エージェントが作成されます。このサービス エージェントに、ターゲットの Assured Workloads フォルダに対する Assured Workloads サービス エージェントroles/assuredworkloads.serviceAgentロールが付与されます。このロールにより、サービス エージェントはフォルダで利用可能な更新を確認できます。

ワークロードの更新を有効にするには、次の手順を完了します。

コンソール

  1. Google Cloud コンソールで、[Assured Workloads] ページに移動します。

    Assured Workloads に移動

  2. ページ上部の [コンプライアンス アップデートの導入] ペインで、[コンプライアンス アップデートを有効にする] をクリックします。

  3. [コンプライアンス アップデートを有効にしますか?] というメッセージが表示されたら、[有効にする] をクリックします。

組織内のすべての Assured Workloads フォルダでワークロードの更新が有効になりました。

REST

enableComplianceUpdates メソッドを使用すると、Assured Workloads が 1 つの Assured Workloads フォルダの更新を通知できるようになります。

HTTP メソッド、URL、クエリ パラメータ:

PUT https://[ENDPOINT_URI]/v1beta1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]:enableComplianceUpdates

次のプレースホルダ値を独自の値に置き換えます。

  • ENDPOINT_URI: Assured Workloads のサービス エンドポイント URI。この URI は、宛先ワークロードのロケーションと一致するエンドポイントである必要があります(us-west1 リージョンのリージョン化されたワークロードの場合は https://us-west1-assuredworkloads.googleapis.com、米国のマルチリージョン ワークロードの場合は https://us-assuredworkloads.googleapis.com
  • ORGANIZATION_ID: Assured Workloads フォルダの組織 ID(例: 919698201234)。
  • LOCATION_ID: Assured Workloads フォルダのロケーション(例: us-west1us)。これは、ワークロードの data region 値に対応します。
  • WORKLOAD_ID: 更新を有効にする Assured Workloads ワークロードの ID(例: 00-701ea036-7152-4780-a867-9f5)。

例:

PUT https://us-west1-assuredworkloads.googleapis.com/v1beta1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5:enableComplianceUpdates

ワークロードの更新を表示する

ワークロードの更新を表示するには、次の手順を完了します。

コンソール

  1. Google Cloud コンソールで、[Assured Workloads] ページに移動します。

    Assured Workloads に移動

  2. [名前] 列で、更新を表示する Assured Workloads フォルダの名前をクリックします。または、フォルダの更新が利用可能な場合は、[更新] 列のリンクをクリックします。

  3. [利用可能な更新] で、[利用可能なアップデートを確認] をクリックします。

  4. 利用可能な場合、組織のポリシーの更新は [組織のポリシー] タブに表示されます。影響を受ける組織のポリシーの制約を確認し、[最新情報を表示] をクリックして、更新によって適用される制約設定をプレビューします。

REST

organizations.locations.workloads.updates.list メソッドは、Assured Workloads ワークロードで利用可能な更新を一覧表示します。

HTTP メソッド、URL、クエリ パラメータ:

GET https://[ENDPOINT_URI]/v1beta1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]/updates?page_size=[PAGE_SIZE]&page_token=[PAGE_TOKEN]

次のプレースホルダ値を独自の値に置き換えます。

  • ENDPOINT_URI: Assured Workloads のサービス エンドポイント URI。この URI は、宛先ワークロードのロケーションと一致するエンドポイントである必要があります(us-central1 リージョンのリージョン化されたワークロードの場合は https://us-central1-assuredworkloads.googleapis.com、米国のマルチリージョン ワークロードの場合は https://us-assuredworkloads.googleapis.com)。
  • ORGANIZATION_ID: Assured Workloads フォルダの組織 ID(例: 919698201234)。
  • LOCATION_ID: Assured Workloads フォルダのロケーション(例: us-central1us)。これは、ワークロードの data region 値に対応します。
  • WORKLOAD_ID: 利用可能な更新を一覧表示する Assured Workloads ワークロードの ID(例: 00-701ea036-7152-4780-a867-9f5)。
  • PAGE_SIZE(省略可): レスポンスで返される更新の数を制限します。指定しない場合、デフォルト値は 20 に設定されます。最大値は 100 です。
  • PAGE_TOKEN(省略可): 1 つ以上のページが利用可能な場合、JSON レスポンスで次のページのトークンが返されます(例: nextPageToken": "chEKD4IBDAid1e-3BhCo68f6AQ)。指定しない場合、以降のページは返されません。

例:

GET https://us-central1-assuredworkloads.googleapis.com/v1beta1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5/updates

成功すると、次のような JSON レスポンスが返されます。

{
  "workloadUpdates": [
    {
      "name": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/5320de45-6c98-41af-b4a0-2ef930b124c3",
      "state": "AVAILABLE",
      "createTime": "2024-10-01T16:33:10.154368Z",
      "updateTime": "2024-10-01T16:33:10.154368Z",
      "details": {
        "orgPolicyUpdate": {
          "appliedPolicy": {
            "resource": "folders/376585579673",
            "constraint": "constraints/gcp.resourceLocations",
            "rule": {
              "values": {
                "allowedValues": [
                  "us-central1",
                ]
              }
            }
          },
          "suggestedPolicy": {
            "resource": "folders/376585579673",
            "constraint": "constraints/gcp.resourceLocations",
            "rule": {
              "values": {
                "allowedValues": [
                  "us-central1",
                  "us-central2",
                  "us-west1",
                ]
              }
            }
          }
        }
      }
    }
  ],
  "nextPageToken": "chEKD4IBDAid1e-3BhCo68f6AQ"
}

ワークロードの更新を適用する

ワークロードの更新の適用は長時間実行オペレーションです。オペレーションの開始後、完了する前にワークロード構成が変更された場合、エラーが発生する可能性があります。

また、ワークロードの更新は、利用可能な最新の構成に対して定期的に再評価されます。この場合、更新を適用した直後に追加の更新が利用可能になることがあります。

ワークロードの更新を適用するには、次の手順を完了します。

コンソール

  1. Google Cloud コンソールで、[Assured Workloads] ページに移動します。

    Assured Workloads に移動

  2. [名前] 列で、更新を表示する Assured Workloads フォルダの名前をクリックします。または、フォルダの更新が利用可能な場合は、[更新] 列のリンクをクリックします。

  3. [利用可能な更新] で、[利用可能なアップデートを確認] をクリックします。

  4. 利用可能な場合、組織のポリシーの更新は [組織のポリシー] タブに表示されます。影響を受ける組織のポリシーの制約を確認し、[最新情報を表示] をクリックして、更新された制約設定をプレビューします。

  5. [組織のポリシーを更新] をクリックして、更新を適用します。

長時間実行の更新オペレーションが開始され、フォルダの新しい組織のポリシー設定が適用されます。

REST

organizations.locations.workloads.updates.apply メソッドは、Assured Workloads ワークロードに指定された更新を適用します。

HTTP メソッド、URL、クエリ パラメータ:

POST https://[ENDPOINT_URI]/v1beta1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]/updates/[UPDATE_ID]:apply

次のプレースホルダ値を独自の値に置き換えます。

  • ENDPOINT_URI: Assured Workloads のサービス エンドポイント URI。この URI は、宛先ワークロードのロケーションと一致するエンドポイントである必要があります(us-central1 リージョンのリージョン化されたワークロードの場合は https://us-central1-assuredworkloads.googleapis.com、米国のマルチリージョン ワークロードの場合は https://us-assuredworkloads.googleapis.com)。
  • ORGANIZATION_ID: Assured Workloads フォルダの組織 ID(例: 919698201234)。
  • LOCATION_ID: Assured Workloads フォルダのロケーション(例: us-central1us)。これは、ワークロードの data region 値に対応します。
  • WORKLOAD_ID: 利用可能な更新を一覧表示する Assured Workloads ワークロードの ID(例: 00-701ea036-7152-4780-a867-9f5)。
  • UPDATE_ID: 適用する更新の ID。organizations.locations.workloads.updates.list メソッドから返された利用可能な更新のリストから選択します(例: edb84871-833b-45ec-9c00-c9b5c19d2d87)。

リクエストの本文:

{
  "name":"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]/updates/[UPDATE_ID]",
  "action": "APPLY"
}

例:

POST https://us-central1-assuredworkloads.googleapis.com/v1beta1/organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87:apply

{
  "name": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87",
  "action": "APPLY"
}

成功すると、次のような JSON レスポンスが返されます。

{
  "name": "organizations/919698298765/locations/us-central1/operations/647b1c77-b9a5-45d2-965e-70a1e867fe5b",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.assuredworkloads.v1beta1.ApplyWorkloadUpdateOperationMetadata",
    "update_name": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87",
    "create_time": "2024-10-01T14:34:30.290896Z",
    "action": "APPLY"
  }
}

長時間実行される更新オペレーションのステータスを取得するには、JSON レスポンスの name 値のオペレーション ID を使用します。上記の例では、オペレーション ID は 647b1c77-b9a5-45d2-965e-70a1e867fe5b です。次に、プレースホルダ値を独自の値に置き換えて、次のリクエストを実行します。

GET https://[ENDPOINT_URI]/v1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/operations/[OPERATION_ID]

例:

GET https://us-central1-assuredworkloads.googleapis.com/v1/organizations/919698298765/locations/us-central1/operations/647b1c77-b9a5-45d2-965e-70a1e867fe5b

成功すると、次のような JSON レスポンスが返されます。

{
  "name": "organizations/919698298765/locations/us-central1/operations/647b1c77-b9a5-45d2-965e-70a1e867fe5b",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.assuredworkloads.v1beta1.ApplyWorkloadUpdateOperationMetadata",
    "updateName": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87",
    "createTime": "2024-10-01T13:33:09Z"
    "action": "APPLY"
  },
  "done": true
  "response": {
    "@type": "type.googleapis.com/google.cloud.assuredworkloads.v1beta1.ApplyWorkloadUpdateResponse",
    "appliedUpdate": {
      "name": "organizations/531459884741/locations/us-central1/workloads/00-0b328e90-da70-431e-befc-a4a/updates/db556beb-ce66-4260-bd3b-28115f1ec300",
      "state": "APPLIED",
      "createTime": "2024-10-01T14:31:24.310323Z",
      "updateTime": "2024-10-01T14:34:30.855792Z",
      "details": {
        "orgPolicyUpdate": {
          "appliedPolicy": {
            "resource": "folders/196232301850",
            "constraint": "constraints/compute.disableInstanceDataAccessApis",
            "rule": {
              "enforce": true
            }
          },
          "suggestedPolicy": {
            "resource": "folders/196232301850",
            "constraint": "constraints/compute.disableInstanceDataAccessApis",
            "rule": {
              "enforce": false
            }
          }
        }
      }
    }
  }
}