オブザーバビリティ バケットのデフォルトを設定する

このドキュメントでは、オブザーバビリティ バケットがコンプライアンス要件または規制要件を満たすように、組織、フォルダ、プロジェクトを構成する方法について説明します。

  • 組織、フォルダ、プロジェクトの場合、オブザーバビリティ バケットのデフォルト設定では、次の構成を行うことができます。

    • デフォルトの保存場所。
    • 各ロケーションのデフォルトの Cloud Key Management Service 鍵。

    リソース階層内の子孫は、デフォルト設定を構成した子孫を除き、これらの設定を自動的に使用します。

    オブザーバビリティ バケットのデフォルト設定は、新しいリソースにのみ適用され、既存のリソースには適用されません。

オブザーバビリティ バケット設定のデフォルト設定は、ログデータを保存するログバケットには適用されません。デフォルトのロケーションを設定する方法や、ログバケットに CMEK を要求する方法については、Cloud Logging のデフォルトのリソース設定を構成するをご覧ください。

オブザーバビリティ バケットのデフォルト設定を表示する

このセクションでは、組織、フォルダ、プロジェクトなどのリソースのオブザーバビリティ バケットのデフォルト設定を表示する方法について説明します。

オブザーバビリティ バケットのデフォルト設定を取得するには、複数の API コマンドを発行する必要があります。最初のコマンドは、デフォルトのストレージの場所を返します。2 番目のコマンドは、そのロケーションの Cloud KMS 鍵を返します。この手順は、ドキュメント ページから API コマンドを発行できる API Explorer を対象としています。ただし、curl コマンドを発行することもできます。

このセクションで説明するコマンドは、特定のリソースを対象としています。これらのコマンドのレスポンスは、そのリソースのユーザー構成の値に限定されます。これらのコマンドは、リソースで使用される可能性のある設定のうち、祖先に対して構成されている設定を返しません。

始める前に

組織、フォルダ、プロジェクトのオブザーバビリティ バケットのデフォルト設定を表示するために必要な権限を取得するには、組織、フォルダ、プロジェクトに対する オブザーバビリティ閲覧者 roles/observability.viewer)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、組織、フォルダ、プロジェクトのオブザーバビリティ バケットのデフォルト設定を表示するために必要な observability.settings.get 権限が含まれています。

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

リソースのデフォルトのストレージ ロケーションを取得する

リソースのデフォルトの保存場所を取得するには、リソース固有のエンドポイントにコマンドを送信し、そのコマンドのロケーションを global に設定します。レスポンス データには、デフォルトの保存場所とサービス アカウントの名前が含まれます。リソースに CMEK が必要な場合、このサービス アカウントは Cloud KMS 鍵の取得に使用されます。

REST

  1. デフォルト設定を表示するリソースについて、適切なエンドポイントを選択し、API Explorer でパス パラメータを指定します。

    組織:

    フォルダ:

    プロジェクト:

    前の式の変数の意味は次のとおりです。

    • ORGANIZATION_ID: 組織の一意の数値識別子。この ID を取得する方法については、組織 ID の取得をご覧ください。
    • FOLDER_ID: フォルダの一意の数値 ID。フォルダの使用方法については、フォルダの作成と管理をご覧ください。
    • PROJECT_ID: プロジェクトの ID。
  2. [実行] をクリックします。

    成功した場合、レスポンスは Settings オブジェクトです。default_storage_location フィールドが空の場合、デフォルトの保存場所は設定されません。

    たとえば、getSettings コマンドを発行して、パス パラメータを組織に設定すると、レスポンスは次のいずれかのようになります。

    • デフォルトの保存場所が "us" に設定されている:

      default_storage_location: "us"
      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
      
    • デフォルトの保存場所が設定されていない場合:

      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
      

リソースとロケーションのデフォルトの Cloud KMS 鍵を取得する

Cloud KMS 鍵はリージョン リソースです。この鍵は、鍵と同じロケーションに保存されているデータの暗号化または復号にのみ使用できます。オブザーバビリティ バケットでサポートされているロケーションごとに、また組織、フォルダ、プロジェクトごとに、Cloud KMS 鍵を使用してオブザーバビリティ バケットのデフォルト設定を構成できます。

このセクションでは、リソースとロケーションのデフォルトの Cloud KMS 鍵を取得する方法について説明します。

REST

  1. デフォルト設定を表示するリソースについて、適切なエンドポイントを選択し、API Explorer でパス パラメータを指定します。

    組織:

    フォルダ:

    プロジェクト:

    前の式の変数の意味は次のとおりです。

    • ORGANIZATION_ID: 組織の一意の数値識別子。この ID を取得する方法については、組織 ID の取得をご覧ください。
    • FOLDER_ID: フォルダの一意の数値 ID。フォルダの使用方法については、フォルダの作成と管理をご覧ください。
    • PROJECT_ID: プロジェクトの ID。
    • LOCATION_ID: CMEK 構成を表示するロケーション。
  2. [実行] をクリックします。

    成功した場合、レスポンスは Settings オブジェクトです。

    たとえば、getSettings コマンドを発行してパスパラメータを organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings に設定すると、レスポンスは次のいずれかのようになります。

    • 組織とロケーションに Cloud KMS 鍵が設定されていない場合、レスポンスにはサービス アカウントのみが一覧表示されます。

      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
      
    • 組織とロケーションに Cloud KMS 鍵が設定されている場合、レスポンスにはサービス アカウントと Cloud KMS 鍵名が含まれます。

      name: "organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings"
      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
      kms_key_name: "projects/my-kms-project/locations/LOCATION_ID/keyRings/my-key-ring/cryptoKeys/my-key"
      

オブザーバビリティ バケットのデフォルト設定を設定する

このセクションでは、リソース(組織、フォルダ、プロジェクト)のオブザーバビリティ バケットのデフォルト設定を構成する方法について説明します。

リソースとロケーションに CMEK を必須にする場合は、デフォルトのストレージ ロケーションを設定する前に、そのペアのオブザーバビリティ バケットのデフォルト設定を構成します。リソースとロケーションのデフォルト設定を構成するときに、使用する Cloud KMS 鍵を指定します。

次の手順は、ドキュメント ページから API コマンドを発行できる API Explorer を対象としています。ただし、curl コマンドを発行することもできます。

構成例

このセクションでは、一般的なユースケースについて説明します。

新しいバケットを特定のロケーションに配置する

組織でシステムによって作成される新しいオブザーバビリティ バケットを us ロケーションに配置するには、組織のデフォルトのストレージ ロケーションを us に設定します。

組織レベルの設定をオーバーライドし、my-eu-projects という名前の子フォルダ内のシステムによって作成される新しいオブザーバビリティ バケットが eu リージョンに存在するようにするには、my-eu-projects フォルダのデフォルトのストレージ ロケーションを eu に設定します。

新しいバケットが特定のロケーションに存在し、CMEK を使用することを必須にする

組織内のシステムによって作成されたすべての新しいオブザーバビリティ バケットが us ロケーションにあり、CMEK を使用するように要求するには、次の操作を行います。

  1. 組織と us ロケーションのオブザーバビリティ バケットのデフォルト設定を構成して、Cloud KMS 鍵を指定します。

  2. 組織のデフォルトのストレージ ロケーションを us に設定します。

始める前に

デフォルトのストレージ ロケーションのみを設定する場合は、Google Cloud CLI の設定をスキップできます。また、Cloud KMS のロールは必要ありません。

  1. 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.

  2. 組織、フォルダ、またはプロジェクトのオブザーバビリティ バケットのデフォルト設定を行うために必要な権限を取得するには、組織、フォルダ、またはプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼します。

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

    これらの事前定義ロールには、組織、フォルダ、プロジェクトのオブザーバビリティ バケットのデフォルト設定を行うために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

    必要な権限

    組織、フォルダ、プロジェクトのオブザーバビリティ バケットのデフォルト設定を行うには、次の権限が必要です。

    • observability.settings.get
    • observability.settings.update
    • cloudkms.cryptoKeys.getIamPolicy
    • cloudkms.cryptoKeys.setIamPolicy

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

  3. CMEK の使用を必須にする場合は、必要なロケーションに Cloud KMS 鍵があることを確認してください。必要に応じて、Cloud KMS キーリングCloud KMS 鍵を作成します。

  4. オブザーバビリティ バケットのデフォルト設定を更新するリソースを特定します。このリソースは、組織、フォルダ、プロジェクトのいずれかになります。

    組織またはフォルダのデフォルト設定を構成すると、その組織またはフォルダのすべての子孫に適用されます。プロジェクトのオブザーバビリティ バケットのデフォルト設定を構成すると、その設定はそのプロジェクトにのみ適用されます。

  5. リソースのサービス アカウントに鍵へのアクセス権を付与する

    デフォルト設定を構成するリソースのサービス アカウントにロールを付与します。

    1. 暗号化と復号に使用する Cloud KMS 鍵を特定します。

      Cloud KMS 鍵はリージョンです。たとえば、システムで作成された新しいオブザーバビリティ バケットを us ロケーションに配置する必要がある場合は、us ロケーションに Cloud KMS 鍵が必要です。

    2. リソースのサービス アカウントを特定します。

      たとえば、組織内のシステムで作成されたすべての新しいオブザーバビリティ バケットを us ロケーションに配置し、CMEK を使用する場合は、global ロケーションに getSettings 呼び出しを発行し、パス パラメータを組織に設定します。レスポンス データには、組織のサービス アカウントが一覧表示されます。

      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
      
    3. 前の手順で特定したサービス アカウントに、データの暗号化と復号に使用する Cloud KMS 鍵の Cloud KMS 暗号鍵の暗号化/復号(roles.cloudkms.cryptoKeyEncrypterDecrypterロールを付与します。

      このロール バインディングは、特定の Cloud KMS 鍵に対するものです。

      gcloud CLI

      gcloud kms keys add-iam-policy-binding コマンドを実行します。

      gcloud kms keys add-iam-policy-binding KMS_KEY_NAME \
      --project=KMS_PROJECT_ID \
      --member=serviceAccount:SERVICE_ACCT_NAME@gcp-sa-observability.iam.gserviceaccount.com \
      --role=roles/cloudkms.cryptoKeyEncrypterDecrypter \
      --location=LOCATION_ID \
      --keyring=KMS_KEY_RING
      

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

      • KMS_KEY_NAME: 鍵の名前。
      • KMS_PROJECT_ID: Cloud KMS を実行している Google Cloud プロジェクトの一意の英数字の ID で、 Google Cloud プロジェクト名とランダムに割り当てられた番号で構成されます。この ID を取得する方法については、プロジェクトの識別をご覧ください。
      • SERVICE_ACCT_NAME: 前の手順で特定したリソースのサービス アカウントの名前。
      • LOCATION_ID: Cloud KMS 鍵のロケーション。
      • KMS_KEY_RING: Cloud KMS キーリングの名前。

      Google Cloud コンソール

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

        [鍵管理] に移動

      2. 鍵を含むキーリングの名前を選択します。
      3. 鍵のチェックボックスをオンにします。

        [権限] タブが有効になります。

      4. [メンバーの追加] ダイアログで、アクセス権を付与する Google Cloud Observability サービス アカウントのメールアドレスを指定します。

      5. [ロールを選択] メニューで、[Cloud KMS 暗号鍵の暗号化/復号] を選択します。

      6. [追加] をクリックします。

    リソースとロケーションのデフォルトの Cloud KMS 鍵を設定する

    前の手順では、特定のリソースのサービス アカウントに、特定の Cloud KMS 鍵のデータを暗号化および復号する権限を付与しました。たとえば、組織のサービス アカウントに、us ロケーションにある Cloud KMS 鍵にアクセスできる IAM ロールを付与したとします。

    この手順では、そのリソースと Cloud KMS 鍵のロケーションについて、鍵情報を使用してオブザーバビリティ バケットのデフォルト設定を更新します。たとえば、このステップでは、組織と us ロケーションのオブザーバビリティ バケットのデフォルト設定を、us ロケーションにある Cloud KMS 鍵に構成します。

    REST

    1. デフォルト設定を設定するリソースについて、適切なエンドポイントを選択し、API Explorer でパス パラメータを指定します。

      組織:

      フォルダ:

      プロジェクト:

      前の式の変数の意味は次のとおりです。

      • ORGANIZATION_ID: 組織の一意の数値識別子。この ID を取得する方法については、組織 ID の取得をご覧ください。
      • FOLDER_ID: フォルダの一意の数値 ID。フォルダの使用方法については、フォルダの作成と管理をご覧ください。
      • PROJECT_ID: プロジェクトの ID。
      • LOCATION_ID: Cloud KMS 鍵のロケーション。
    2. updateMask フィールドを次のように設定します。

      updateMask=kmsKeyName
      
    3. [リクエスト本文] を次のように構成します。

      {
        "kmsKeyName"="projects/KMS_PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_NAME"
      }
      

      値を入力する前に、次のように置き換えます。

      • KMS_PROJECT_ID: Cloud KMS を実行している Google Cloud プロジェクトの一意の英数字の ID で、 Google Cloud プロジェクト名とランダムに割り当てられた番号で構成されます。この ID を取得する方法については、プロジェクトの識別をご覧ください。
      • LOCATION_ID: Cloud KMS 鍵のロケーション。
      • KMS_KEY_RING: Cloud KMS キーリングの名前。
      • KMS_KEY_NAME: 鍵の名前。

      "kmsKeyName" の値は、鍵の完全修飾名です。

    4. [実行] をクリックします。

      成功した場合、レスポンスは Settings オブジェクトです。

      たとえば、updateSettings コマンドを発行して Cloud KMS 鍵を設定し、パス パラメータを organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings に設定すると、レスポンスは次のようになります。

      name: "organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings"
      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
      kms_key_name: "projects/KMS_PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_NAME"
      

    リソースのデフォルトのストレージ ロケーションを設定する

    この手順では、リソース(組織、フォルダ、プロジェクト)のデフォルトの保存場所を設定する方法について説明します。リソース階層内のすべての子孫は、デフォルトのストレージ ロケーションを自動的に使用します。ただし、デフォルトのストレージ ロケーションを構成した子孫は除きます。

    たとえば、組織のデフォルトのストレージ ロケーションを us ロケーションに設定すると、その組織内の新しいシステム作成のオブザーバビリティ バケットは us ロケーションに配置されます。フォルダまたはプロジェクトに別のデフォルトのストレージ ロケーションを設定する場合は、フォルダまたはプロジェクトのオブザーバビリティ バケットのデフォルト設定を構成します。

    リソース内のシステム作成のオブザーバビリティ バケットで CMEK を使用する場合は、リソースのデフォルトのストレージ ロケーションを設定する前に、次の手順を完了します。

    1. リソースのサービス アカウントに、サービス アカウントがデータを暗号化および復号できるようにする IAM ロールを付与します。このロールは特定の Cloud KMS 鍵を対象としており、その鍵は特定のロケーションにあります。
    2. Cloud KMS 鍵情報を使用して、リソースと鍵の場所のオブザーバビリティ バケットのデフォルト設定を構成します

    REST

    組織、フォルダ、またはプロジェクトのデフォルトのストレージ ロケーションを設定する手順は次のとおりです。

    1. デフォルト設定を設定するリソースについて、適切なエンドポイントを選択し、API Explorer でパス パラメータを指定します。

      組織:

      フォルダ:

      プロジェクト:

      前の式の変数の意味は次のとおりです。

      • ORGANIZATION_ID: 組織の一意の数値識別子。この ID を取得する方法については、組織 ID の取得をご覧ください。
      • FOLDER_ID: フォルダの一意の数値 ID。フォルダの使用方法については、フォルダの作成と管理をご覧ください。
      • PROJECT_ID: プロジェクトの ID。
    2. updateMask フィールドを次のように設定します。

      updateMask=defaultStorageLocation
      
    3. [リクエスト本文] を次のように構成します。

      {
        "defaultStorageLocation"="DEFAULT_STORAGE_LOCATION"
      }
      

      DEFAULT_STORAGE_LOCATION は、サポートされているオブザーバビリティ バケットのロケーションに置き換えます。

      たとえば、組織内のシステムで作成されたすべての新しいオブザーバビリティ バケットを us ロケーションに配置し、CMEK を使用するとします。前の手順では、us ロケーションにある Cloud KMS 鍵を使用してデータを暗号化および復号できる IAM ロールを組織のサービス アカウントに付与しました。DEFAULT_STORAGE_LOCATIONus に設定して、構成を完了します。

    4. [実行] をクリックします。

      成功した場合、レスポンスは Settings オブジェクトです。

      たとえば、am updateSettings コマンドを発行して、パス パラメータを組織に設定し、デフォルトの保存場所を us に設定すると、レスポンスは次のようになります。

      default_storage_location: "us"
      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
      

    リソースのデフォルトのストレージ ロケーションを更新する

    組織、フォルダ、プロジェクトのデフォルトのストレージ ロケーションを更新するには、デフォルトのストレージ ロケーションを設定する場合と同じ手順を行います。

    Cloud KMS 鍵を管理する

    以降のセクションでは、Cloud KMS 鍵の変更、無効化、アクセス権の取り消しを行う方法について説明します。

    リソースとロケーションのデフォルトの Cloud KMS 鍵を更新する

    特定のリソースとロケーションの Cloud KMS 鍵を更新するには、Cloud KMS 鍵を設定する場合と同じ手順を行います。

    リソースとロケーションのデフォルトの Cloud KMS 鍵の設定を解除する

    特定のリソースとロケーションの Cloud KMS 鍵の設定を解除またはクリアするには、ロケーションのデフォルトの Cloud KMS 鍵を設定するで説明した手順と同じ手順を行います。ただし、リクエストの本文を構成する場合は、キーの値を空の文字列に設定します。

    {
      "kmsKeyName"=""
    }
    

    リソースにデフォルトの Cloud KMS 鍵がない場合、システムはリソースの祖先からデフォルトの Cloud KMS 鍵を検索します。

    • Cloud KMS 鍵が見つかった場合、その鍵を使用して新しいオブザーバビリティ バケットに保存されているデータが暗号化されます。

    • Cloud KMS 鍵が見つからない場合、新しいオブザーバビリティ バケットは CMEK を使用しません。

    リソースとロケーションの鍵へのアクセス権を取り消す

    Cloud KMS 鍵を使用してリソースとロケーションのオブザーバビリティ バケットのデフォルト設定を構成する場合は、リソースのサービス アカウントに鍵の Cloud KMS CryptoKey の暗号化/復号(roles.cloudkms.cryptoKeyEncrypterDecrypterロールを付与する必要があります。

    リソースが鍵にアクセスできないようにするには、その鍵の IAM バインディングを削除します。このバインディングを削除するには、gcloud kms keys remove-iam-policy-binding コマンドを実行します。

    ロールの変更が完全に反映されるまで数時間かかることがあります。

    鍵のローテーションの動作

    Google Cloud 組織またはフォルダに関連付けられた Cloud KMS 鍵がローテーションされても、Google Cloud Observability は一時的な障害復旧ファイルの暗号鍵を自動的にローテーションしません。既存のリカバリ ファイルでは引き続き、作成時に使用された鍵バージョンが使用されます。新しいリカバリ ファイルでは、現在の、メインの鍵バージョンが使用されます。

    詳細については、鍵のローテーションをご覧ください。

    制限事項

    オブザーバビリティ バケットのデフォルト設定に CMEK 設定を構成する場合の既知の制限事項は以下のとおりです。

    鍵が使用できないことによる低下

    Google Cloud Observability は、Cloud KMS API を使用して Cloud KMS 鍵と Cloud EKM 鍵の両方にアクセスします。どちらのタイプのキーも使用できなくなる可能性があります。

    鍵が使用できなくなった場合、次のようになります。

    • 保存されたデータに対してクエリを実行することはできません。
    • Google Cloud Observability は、直近 3 時間のデータをバッファリングします。このスライディングした 3 時間の時間枠より古いデータは破棄される可能性があります。
    • 永続的なデータ ストレージの場合、Cloud KMS 鍵は、データが書き込まれた後、48 時間で 24 時間以上連続して利用可能かつアクセス可能である必要があります。この期間に Cloud KMS 鍵が使用できず、アクセスできない場合、データがストレージに完全に保持されず、破棄される可能性があります。

    次のステップ