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

データを特定の場所に保存する、または顧客管理の暗号鍵(CMEK)を使用するというコンプライアンス要件または規制要件がある場合は、オブザーバビリティ バケットの組織ポリシーとデフォルト設定の両方を構成することをおすすめします。オブザーバビリティ バケットの組織のポリシーとデフォルト設定を使用すると、これらのバケットのストレージ ロケーションと暗号化モデルを指定できます。これらのバケットでは、Google のデフォルトの暗号化または顧客管理の暗号鍵(CMEK)を使用できます。

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

  • デフォルトのストレージ ロケーション。
  • ロケーションごとに、デフォルトの Cloud Key Management Service 鍵。

システムがデフォルト設定を使用する方法は 2 つあります。

  • システムがオブザーバビリティ バケットを自動的に作成すると、デフォルト設定を使用してバケットのロケーションと暗号鍵が決定されます。デフォルト設定を定義していない場合、システムがロケーションを選択し、バケットは Google のデフォルトの暗号化を使用します。

  • API リクエストを発行してオブザーバビリティ バケットの作成を開始するときに、ロケーションを指定します。ただし、API リクエストの引数で鍵が指定されていない限り、システムはデフォルト設定で定義された Cloud KMS 鍵を自動的に使用してデータを暗号化します。

オブザーバビリティ バケットの親は常にプロジェクトであるため、バケットを作成すると、システムはまずプロジェクト レベルのデフォルト設定を検索します。それらが存在しない場合、システムは親の祖先でデフォルト設定を検索します。たとえば、フォルダのデフォルト設定を定義すると、デフォルト設定が構成されている子孫を除き、その設定がフォルダの子孫に適用されます。

組織のポリシーを使用して、新しいオブザーバビリティ バケットのロケーションを制限したり、CMEK の使用を要求したり、暗号化に使用できる Cloud KMS 鍵を制限したりすることもできます。CMEK の使用を必要とする組織のポリシーを構成する場合は、オブザーバビリティ バケットのデフォルト設定を構成する必要があります。そうしないと、システム作成のオブザーバビリティ バケットのプロビジョニングが失敗します。

このドキュメントは、ログデータを保存するログバケットには適用されません。デフォルトの場所を設定する方法や、ログバケットに CMEK を要求する方法については、Cloud Logging のデフォルトのリソース設定を構成するをご覧ください。

適用される組織のポリシー

オブザーバビリティ バケットの作成場所と、それらのバケットの暗号鍵を管理するユーザーを制御するには、次の組織ポリシーを構成することをおすすめします。

組織レベル、フォルダレベル、またはプロジェクト レベルで適用される組織のポリシーを作成できます。詳細については、ポリシーの作成と編集をご覧ください。

組織のポリシーがデフォルトの場所の構成に与える影響

デフォルトの場所を設定するコマンドを発行すると、Google Cloud Observability は、指定された場所が組織のポリシーで許可されていること、およびサポートされているオブザーバビリティ バケットの場所であることを確認します。いずれかの検証が失敗すると、デフォルトのロケーションを設定するコマンドも失敗します。

組織のポリシーで許可されているロケーションのリストを変更して、デフォルトのストレージ ロケーションが許可されなくなった場合は、その設定を個別に更新する必要があります。更新されたデフォルトの場所にデフォルトの Cloud KMS 鍵を設定する必要がある場合もあります。

組織のポリシーとデフォルト設定の相互作用

オブザーバビリティ バケットの親はプロジェクトである必要があります。つまり、システムはフォルダまたは組織にオブザーバビリティ バケットを作成できません。ただし、組織またはフォルダのオブザーバビリティ バケットのデフォルト設定を構成すると、それらのデフォルト設定は、その組織またはフォルダの子孫であるすべてのプロジェクトに適用されます。

次の表に、システムが新しいオブザーバビリティ バケットのロケーションを決定するために使用するルールを示します。

組織のポリシー
を使用してロケーションを制限する
プロジェクト(または祖先)に
デフォルトのストレージ ロケーションがある
システムが新しいオブザーバビリティ バケットのロケーションを決定する方法
いいえ いいえ

システムは、オブザーバビリティ バケットでサポートされているロケーションからロケーションを選択します。

○ いいえ

システムは、組織のポリシーで許可されているロケーションと、オブザーバビリティ バケットでサポートされているロケーションの共通部分からロケーションを選択します。

共通部分が空の場合、システムはオブザーバビリティ バケットを作成しません。

いいえ ○

プロジェクトのデフォルト設定で定義されたデフォルトのストレージ ロケーションにロケーションが設定されます。プロジェクトでデフォルトのストレージ ロケーションが定義されていない場合、システムは祖先に定義されているデフォルトのストレージ ロケーションを使用します。

○ ○

プロジェクトのデフォルト設定で定義されたデフォルトのストレージ ロケーションにロケーションが設定されます。プロジェクトでデフォルトのストレージ ロケーションが定義されていない場合、システムは祖先のデフォルトのストレージ ロケーションを使用します。

デフォルトのストレージ ロケーションが組織のポリシーで許可されていない場合、システムはオブザーバビリティ バケットを作成しません。

次の表に、新しいオブザーバビリティ バケットで CMEK を使用するかどうかを判断するためにシステムが使用するルールと、CMEK を使用する場合の Cloud KMS 鍵の値を示します。オブザーバビリティ バケットを暗号化するには、Cloud KMS 鍵がバケットのロケーションにあり、組織のポリシーで許可されている必要があります。gcp.restrictCmekCryptoKeyProjects 制約を含む組織のポリシーを指定しない場合、すべての鍵が許可されます。

組織のポリシー
を使用して CMEK を要求する
プロジェクト(または祖先)に
のデフォルトの Cloud KMS 鍵がある
使用する Cloud KMS 鍵をシステムが決定する方法。
いいえ いいえ

オブザーバビリティ バケットは CMEK を使用しません。

○ いいえ

組織のポリシーで CMEK が必要ですが、デフォルトの Cloud KMS 鍵が定義されていないため、システムは新しいオブザーバビリティ バケットを作成しません。

いいえ ○

暗号鍵を特定するために、システムはまず、プロジェクトまたはその祖先のいずれかにデフォルトのストレージ ロケーションが設定されているかどうかを判断します。存在しない場合、システムはロケーションを選択してオブザーバビリティ バケットを作成します。バケットが CMEK を使用していない。

デフォルトのストレージ ロケーションが見つかると、システムはプロジェクトのデフォルト設定でデフォルトの Cloud KMS 鍵を検索します。プロジェクトのデフォルト設定で適切な鍵が指定されていない場合、システムは祖先のデフォルト設定を検索して、新しいバケットのロケーションにあるデフォルトの鍵を探します。

次のいずれかが発生します。

  • 鍵が見つからない: 新しいオブザーバビリティ バケットは CMEK を使用しません。
  • 鍵が見つかり、許可されている: システムはオブザーバビリティ バケットを作成します。
  • 鍵が見つかったが、許可されていない: システムは新しいオブザーバビリティ バケットを作成しません。
○ ○

暗号鍵を特定するために、システムはまず、プロジェクトまたはその祖先のいずれかにデフォルトのストレージ ロケーションが設定されているかどうかを判断します。デフォルトのストレージ ロケーションが設定されていない場合、システムは新しいオブザーバビリティ バケットを作成しません。

デフォルトのストレージ ロケーションが見つかると、システムはプロジェクトのデフォルト設定でデフォルトの Cloud KMS 鍵を検索します。プロジェクトのデフォルト設定で適切な鍵が指定されていない場合、システムは祖先のデフォルト設定を検索して、新しいバケットのロケーションにあるデフォルトの鍵を探します。

次のいずれかが発生します。

  • 鍵が見つからない: 新しいオブザーバビリティ バケットは作成されません。
  • 鍵が見つかり、許可されている: システムはオブザーバビリティ バケットを作成します。
  • 鍵が見つかったが、許可されていない: システムは新しいオブザーバビリティ バケットを作成しません。

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

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

オブザーバビリティ バケットのデフォルト設定を取得するには、複数のコマンドを実行する必要があります。最初のコマンドは、デフォルトのストレージ ロケーションを返します。2 番目のコマンドは、そのロケーションの Cloud KMS 鍵を返します。

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

始める前に

プロジェクトと IAM ロールを構成し、使用するインターフェースを選択します。

プロジェクトとロールを構成する

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

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

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

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

使用するインターフェースを選択します。

gcloud

Google Cloud CLI をインストールし、フェデレーション ID を使用して gcloud CLI にログインします。ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。

gcloud init

Terraform

ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。

  1. Google Cloud CLI をインストールします。

  2. フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。

    詳細については、フェデレーション ID を使用して gcloud CLI にログインするをご覧ください。

  3. ユーザー アカウントのローカル認証情報を作成します。

    gcloud auth application-default login

    認証エラーが返された場合は、フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。

詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。

REST

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

    Google Cloud CLI をインストールし、フェデレーション ID を使用して gcloud CLI にログインします。

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

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

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

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

次のいずれかを使用して、クエリするプロジェクト、フォルダ、または組織の ID をコマンドに渡します。
  • --project=PROJECT_ID。ここで、PROJECT_ID にはプロジェクトの ID が含まれます。
  • --folder=FOLDER_ID。ここで、FOLDER_ID にはフォルダの ID が含まれます。
  • --organization=ORGANIZATION_ID。ここで、ORGANIZATION_ID には組織の ID が含まれます。
default_storage_location を [サポートされているロケーション](/stackdriver/docs/observability/observability-bucket-locations)に設定します。

gcloud observability settings describe コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud observability settings describe \
 --location=global --project=PROJECT_ID

Windows(PowerShell)

gcloud observability settings describe `
 --location=global --project=PROJECT_ID

Windows(cmd.exe)

gcloud observability settings describe ^
 --location=global --project=PROJECT_ID

このコマンドのレスポンスは次のようになります。

Parsed [location] resource: projects/my-project/locations/global
defaultStorageLocation: eu
name: projects/my-project/locations/global/settings
serviceAccountId: service-12345@gcp-sa-observability.

Terraform

Terraform を使用して、リソース(プロジェクト、フォルダ、組織)のデフォルトのストレージ ロケーションを設定できます。Terraform を使用してリソースのデフォルトのストレージ ロケーションを報告することはできません。

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.
      
    • デフォルトのストレージ ロケーションが設定されていない:

      service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.
      

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

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

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

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • LOCATION: リソースの Cloud KMS 鍵のロケーション。リソースは、プロジェクト、フォルダ、または組織です。ロケーションを global に設定すると、コマンドはリソースのデフォルトのストレージ ロケーションを返します。
  • 次のいずれかを使用して、クエリするプロジェクト、フォルダ、または組織の ID をコマンドに渡します。
    • --project=PROJECT_ID。ここで、PROJECT_ID にはプロジェクトの ID が含まれます。
    • --folder=FOLDER_ID。ここで、FOLDER_ID にはフォルダの ID が含まれます。
    • --organization=ORGANIZATION_ID。ここで、ORGANIZATION_ID には組織の ID が含まれます。

gcloud observability settings describe コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud observability settings describe \
 --location=LOCATION --project=PROJECT_ID

Windows(PowerShell)

gcloud observability settings describe `
 --location=LOCATION --project=PROJECT_ID

Windows(cmd.exe)

gcloud observability settings describe ^
 --location=LOCATION --project=PROJECT_ID

このコマンドのレスポンスは次のようになります。

Parsed [location] resource: projects/my-project/locations/us
kmsKeyName: projects/my-project/locations/us/keyRings/test/cryptoKeys/test-key
name: projects/my-project/locations/us/settings
serviceAccountId: service-12345@gcp-sa-observability.

Terraform

Terraform を使用して、ロケーションとリソース(プロジェクト、フォルダ、組織)のデフォルトの Cloud Key Management Service 鍵を設定できます。Terraform を使用してリソースのデフォルトのストレージ ロケーションを報告することはできません。

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.
      
    • 組織とロケーションに Cloud KMS 鍵が設定されている場合、レスポンスにはサービス アカウントと Cloud KMS 鍵の名前が含まれます。

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

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

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

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

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

構成例

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

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

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

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

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

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

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

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

始める前に

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

  1. オブザーバビリティ バケットのデフォルト設定を表示するために必要な設定を完了します。

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

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

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

    必要な権限

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

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

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

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

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

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

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

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

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

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

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

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

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

    このロール バインディングは、特定の Cloud KMS 鍵を対象としています。

    gcloud

    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. \
    --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 キーリングの名前。

    コンソール

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

      [鍵管理] に移動

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

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

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

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

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

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

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

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

次のステップとして、デフォルトのストレージ ロケーションを設定します。デフォルトのストレージ ロケーションを設定しない場合、オブザーバビリティ バケットは、鍵が定義されているロケーションに存在していても、デフォルトの Cloud KMS 鍵で暗号化されません。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • KMS_KEY_NAME: Cloud KMS 鍵の名前
  • LOCATION: リソースの Cloud KMS 鍵のロケーション。リソースは、プロジェクト、フォルダ、または組織です。ロケーションを global に設定すると、コマンドはリソースのデフォルトのストレージ ロケーションを返します。
  • 次のいずれかを使用して、クエリするプロジェクト、フォルダ、または組織の ID をコマンドに渡します。
    • --project=PROJECT_ID。ここで、PROJECT_ID にはプロジェクトの ID が含まれます。
    • --folder=FOLDER_ID。ここで、FOLDER_ID にはフォルダの ID が含まれます。
    • --organization=ORGANIZATION_ID。ここで、ORGANIZATION_ID には組織の ID が含まれます。

gcloud observability settings update コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud observability settings update \
 --kms-key-name=KMS_KEY_NAME \
 --update-mask=kmsKeyName \
 --location=LOCATION --project=PROJECT_ID

Windows(PowerShell)

gcloud observability settings update `
 --kms-key-name=KMS_KEY_NAME `
 --update-mask=kmsKeyName `
 --location=LOCATION --project=PROJECT_ID

Windows(cmd.exe)

gcloud observability settings update ^
 --kms-key-name=KMS_KEY_NAME ^
 --update-mask=kmsKeyName ^
 --location=LOCATION --project=PROJECT_ID

update コマンドは、長時間実行オペレーションを開始します。このコマンドのレスポンスは次のようになります。

Parsed [location] resource: projects/my-project/locations/us
Request issued for: [us]
Waiting for operation [projects/my-project/locations/us/operations/operation-1775247021184-64e93e8161585-1a55612f-73382a5a] to complete...done.
Updated location [us].
'@type': type.googleapis.com/google.cloud.observability.v1.Settings
kmsKeyName: projects/my-project/locations/us/keyRings/test/cryptoKeys/test-key
name: projects/my-project/locations/us/settings
serviceAccountId: service-12345@gcp-sa-observability.

Terraform

ロケーションとリソースにデフォルトの Cloud Key Management Service 鍵を設定する手順は次のとおりです。

  1. 構成する Google Cloudリソースに基づいて、適切な Terraform リソースを選択します。

    組織:

    フォルダ:

    プロジェクト:

  2. 次のフィールドを設定します。

    1. location フィールドをデフォルトの Cloud KMS 鍵のロケーションに設定します。
    2. kms_key_name フィールドを 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.
    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 鍵情報を使用して、リソースと鍵のロケーションのオブザーバビリティ バケットのデフォルト設定を構成します。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • DEFAULT_STORAGE_LOCATION: プロジェクト、フォルダ、または組織のデフォルトのストレージ ロケーション。このロケーションは、新しいオブザーバビリティ バケットに適用されます。サポートされているオブザーバビリティ バケットのロケーションを入力する必要があります。
  • 次のいずれかを使用して、クエリするプロジェクト、フォルダ、または組織の ID をコマンドに渡します。
    • --project=PROJECT_ID。ここで、PROJECT_ID にはプロジェクトの ID が含まれます。
    • --folder=FOLDER_ID。ここで、FOLDER_ID にはフォルダの ID が含まれます。
    • --organization=ORGANIZATION_ID。ここで、ORGANIZATION_ID には組織の ID が含まれます。

gcloud observability settings update コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud observability settings update \
 --default-storage-location=DEFAULT_STORAGE_LOCATION \
 --update-mask=defaultStorageLocation \
 --location=global --project=PROJECT_ID

Windows(PowerShell)

gcloud observability settings update `
 --default-storage-location=DEFAULT_STORAGE_LOCATION `
 --update-mask=defaultStorageLocation `
 --location=global --project=PROJECT_ID

Windows(cmd.exe)

gcloud observability settings update ^
 --default-storage-location=DEFAULT_STORAGE_LOCATION ^
 --update-mask=defaultStorageLocation ^
 --location=global --project=PROJECT_ID

update コマンドは、長時間実行オペレーションを開始します。このコマンドのレスポンスは次のようになります。

Parsed [location] resource: projects/my-project/locations/global
Request issued for: [global]
Waiting for operation [projects/my-project/locations/global/operations/operation-1775247065869-64e93eabfee29-f7d39a96-5e23c6c7] to complete...done.
Updated location [global].
'@type': type.googleapis.com/google.cloud.observability.v1.Settings
defaultStorageLocation: us
name: projects/my-project/locations/global/settings
serviceAccountId: service-12345@gcp-sa-observability.

Terraform

デフォルトの場所を設定するには、次の操作を行います。

  1. 構成する Google Cloudリソースに基づいて、適切な Terraform リソースを選択します。

    組織:

    フォルダ:

    プロジェクト:

  2. 次のフィールドを設定します。

    1. location フィールドを global に設定します。
    2. default_storage_location フィールドをサポートされているロケーションに設定します。

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_LOCATION を us に設定して、構成を完了します。

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

    正常な場合は、レスポンスが Settings オブジェクトになります。

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

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

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

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

Cloud KMS 鍵を管理する

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

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

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

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

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

{
  "kmsKeyName"=""
}

システムは、次のアルゴリズムを使用して、リソース内の新しいオブザーバビリティ バケットが CMEK を使用するかどうかを判断し、使用する場合はどの鍵を使用するかを判断します。

  1. システムは、指定されたロケーションの Cloud KMS 鍵のリソースのデフォルト設定を検索します。リソースにデフォルトの Cloud KMS 鍵がない場合、システムはリソースの祖先でデフォルトの Cloud KMS 鍵を検索します。

  2. 検索が完了すると、システムは次のいずれかを行います。

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

    • Cloud KMS 鍵が見つからない場合は、次のいずれかが発生します。

      • CMEK を必要とする組織のポリシーが存在する場合、新しいオブザーバビリティ バケットのプロビジョニングは失敗します。

      • 組織のポリシーが存在しない場合、新しいオブザーバビリティ バケットは CMEK を使用しません。

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

Cloud KMS 鍵を使用してリソースとロケーションのオブザーバビリティ バケットのデフォルト設定を構成する場合は、リソースのサービス アカウントに鍵の Cloud KMS CryptoKey Encrypter/Decrypter(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 鍵が使用できず、アクセスできない場合、データがストレージに完全に保持されず、破棄される可能性があります。

次のステップ