オブザーバビリティ バケットを再プロビジョニングして、データ所在地と暗号化の規制要件を満たすことができます。再プロビジョニング後、_Trace バケットのストレージ ロケーションと暗号化構成は、オブザーバビリティ バケットのデフォルト設定と一致します。
バケットを再プロビジョニングするには、デフォルト設定を構成してから、再プロビジョニング メソッドを呼び出します。再プロビジョニング オペレーションでは、次のいずれかを行うことができます。
- ストレージ ロケーションを変更せずに、Cloud Key Management Service 鍵をオブザーバビリティ バケットに遡及的に適用します。
- オブザーバビリティ バケットのストレージ ロケーションを変更し、Google のデフォルトの暗号化を使用します。
- オブザーバビリティ バケットの保存場所を変更し、Cloud KMS 鍵を使用して保存データを暗号化します。
オブザーバビリティ バケットの表示名、説明、Cloud KMS 鍵を変更する場合は、オブザーバビリティ バケットを再プロビジョニングしないでください。このような場合は、オブザーバビリティ バケットを更新します。
再プロビジョニングの仕組み
再プロビジョニング オペレーションを開始すると、システムは次の手順を実行します。
システムは、オブザーバビリティ バケットが再プロビジョニングの対象かどうかを判断します。オブザーバビリティ バケットは、次のすべてのチェックに合格すると対象となります。
- オブザーバビリティ バケットの名前は
_Traceです。 - バケットが再プロビジョニングされていない。
- オブザーバビリティ バケットのデフォルト設定が見つかりました。
- デフォルト設定に合わせるには、オブザーバビリティ バケットのロケーションを変更するか、暗号化を Google のデフォルトの暗号化から CMEK に変更する必要があります。
- オブザーバビリティ バケットの名前は
システムがバケット構成を更新します。このプロセスには 4 ~ 5 時間かかります。
制限事項
次の制限が適用されます。
システムでは、オブザーバビリティ バケットごとに最大 1 つの再プロビジョニング オペレーションが許可されます。後続のリクエストは
FAILED_PRECONDITIONエラーで失敗します。再プロビジョニングできるのは、
_Traceという名前のバケットのみです。再プロビジョニングが開始される前に保存されたデータにはアクセスできません。このデータは削除されており、復元できません。
バケットのロケーションが変更されると、リンクとリンクされた BigQuery データセットが削除されます。リンクを再作成する必要があります。
バケットのロケーションが変更された場合は、既存のアナリティクス ビューを手動で更新する必要があります。
再プロビジョニング オペレーションをキャンセルしたり、元に戻したりすることはできません。オペレーションをキャンセルしようとしても無視されます。
再プロビジョニング オペレーション中のクエリの動作は定義されていません。
監査
オブザーバビリティ バケットの再プロビジョニング履歴を確認するには、監査ログを使用します。管理アクティビティ ログには、再プロビジョニング リクエストを行ったユーザー、影響を受けるオブザーバビリティ バケット、初期レスポンスが記録されます。
これらのレコードを見つけるには、ログ エクスプローラで次のフィルタを適用します。
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND
resource.type="audited_resource" AND
resource.labels.service="observability.googleapis.com" AND
resource.labels.method="google.cloud.observability.v1.Observability.ReprovisionBucket"
次の部分的な例は、管理アクティビティ監査ログを示しています。
{
"logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity",
"resource": {
"type": "audited_resource",
"labels": {
"project_id": "PROJECT_ID",
"service": "observability.googleapis.com",
"method": "google.cloud.observability.v1.Observability.ReprovisionBucket"
}
},
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 0,
"message": "OK"
},
...
"serviceName": "observability.googleapis.com",
"methodName": "google.cloud.observability.v1.Observability.ReprovisionBucket",
"authorizationInfo": [...]
"resourceName": "projects/PROJECT_ID/locations/us/buckets/_Trace",
"request": {
"@type": "type.googleapis.com/google.cloud.observability.v1.ReprovisionBucketRequest",
"name": "projects/PROJECT_ID/locations/us/buckets/_Trace"
},
"response": {
"@type": "type.googleapis.com/google.longrunning.Operation",
"name": "projects/PROJECT_ID/locations/us/operations/reprovision-123456789-0",
"done": false,
"metadata": {
"@type": "type.googleapis.com/google.cloud.observability.v1.OperationMetadata",
"target": "projects/PROJECT_ID/locations/us/buckets/_Trace",
"verb": "reprovision",
"apiVersion": "v1"
}
}
},
"severity": "NOTICE",
"timestamp": "2026-06-30T16:54:02.123456Z"
}
始める前に
- 制限事項を確認します。
-
オブザーバビリティ バケットを再プロビジョニングするために必要な権限を取得するには、オブザーバビリティ バケットをホストするプロジェクトに対するオブザーバビリティ編集者(
roles/observability.editor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。オブザーバビリティ編集者のロールには、オブザーバビリティ バケット、オブザーバビリティ データセット、データセットのリンクを作成および削除する権限が付与されます。再プロビジョニング オペレーションでは作成コマンドと削除コマンドの両方が発行されるため、これらの権限が必要です。
オブザーバビリティ バケットを再プロビジョニングする
オブザーバビリティ バケットを再プロビジョニングする手順は次のとおりです。
オブザーバビリティ バケットのデフォルト設定を構成する
デフォルトのストレージ ロケーションを設定し、必要に応じてデフォルトの Cloud KMS 鍵を設定します。これらは、プロジェクト、フォルダ、または組織レベルで設定できます。たとえば、フォルダのデフォルト設定を構成すると、そのフォルダの子孫は、子孫にもデフォルト設定が構成されていない限り、それらの設定を使用します。
デフォルト設定を表示して構成する方法については、オブザーバビリティ バケットのデフォルトを設定するをご覧ください。
バケットを再プロビジョニングする
再プロビジョニング リクエストを非同期で発行し、ポーリングして再プロビジョニング オペレーションの完了を判断するスクリプトを使用します。オブザーバビリティ バケットを再プロビジョニングするには、projects.locations.buckets.reprovision メソッドを使用します。
オブザーバビリティ バケットの名前を指定する必要があります。形式は次のとおりです。
projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID
上記の式のフィールドの意味は次のとおりです。
- PROJECT_ID: プロジェクトの ID。
- LOCATION: オブザーバビリティ バケットのロケーション。
- BUCKET_ID: オブザーバビリティ バケットの ID。この ID は
_Traceにする必要があります。
レスポンスは Operation オブジェクトです。Operation.done フィールドには、進行状況に関する情報が格納されます。
doneがfalse: オペレーションが進行中です。オペレーションのポーリングについては、進行状況をモニタリングするをご覧ください。doneがtrueの場合、オペレーションは完了し、errorフィールドまたはresponseフィールドが設定されます。responseが設定されている: 非同期オペレーションが正常に完了したことを示します。この値は、再プロビジョニングのターゲットであったオブザーバビリティ バケットの最新の状態を反映しています。errorが設定されている: 非同期オペレーションが失敗したことを示します。このフィールドの値は、gRPC エラーコードとエラー メッセージを含むStatusオブジェクトです。一般的なエラー メッセージについては、エラー メッセージをご覧ください。
再プロビジョニングが完了するまでに通常 4 ~ 5 時間かかります。
進捗の確認
Operation オブジェクトには、進行状況に関する情報が含まれます。Operation.done フィールドの値が true になるまで、オペレーションをポーリングします。その後、Operation.response フィールドと Operation.error フィールドを使用して、再プロビジョニングが成功したか失敗したかを判断できます。
Operation をポーリングするには、folders.locations.operations.get メソッドを使用します。
パスパラメータをオペレーションの名前に設定します。
operations/UNIQUE_ID
UNIQUE_ID フィールドは、オペレーションの固有識別子です。
レスポンスは、更新された Operation オブジェクトです。
ポーリング時にアプリケーションが HTTP 503 / UNAVAILABLE レスポンスを受け取った場合は、指数バックオフを実装してリクエストを再試行します。このエラーは、トランスポート層またはネットワーク層でリクエストが失敗したことを示します。
リンクを手動で作成してアナリティクス ビューを更新する
再プロビジョニング オペレーションが完了したら、リンクを再作成してアナリティクス ビューを更新します。
たとえば、次のことを行います。
オブザーバビリティ データセットのリンクを一覧表示します。シナリオによっては、再プロビジョニング オペレーションでリンクが保持されます。この手順については、データセットのリンクを一覧表示するをご覧ください。
リンクされた BigQuery データセットを再作成します。この手順については、データセットにリンクを作成するをご覧ください。
アナリティクス ビューを確認し、必要に応じてオブザーバビリティ バケットへのパスを更新します。
エラー メッセージ
このセクションでは、一般的なエラーコードと、該当する場合は復旧アクションについて説明します。
FAILED_PRECONDITION
FAILED_PRECONDITION エラー メッセージは、オブザーバビリティ バケットが再プロビジョニングの対象ではないことを示します。
エラー メッセージの例:
{
"error":{
"code": 400,
"message": "Only _Trace buckets can be reprovisioned.",
"status": "FAILED_PRECONDITION",
"details": [ ... ]
}
}
オブザーバビリティ バケットを再プロビジョニングの対象にするために実行できる操作はありません。
INVALID_ARGUMENT
INVALID_ARGUMENT エラー メッセージは、オブザーバビリティ バケットのロケーションと CMEK 構成が、オブザーバビリティ バケットのデフォルト設定と一致していることを示しています。
このエラーを解決するには、プロジェクト、フォルダ、または組織のオブザーバビリティ バケットのデフォルト設定を更新してから、オブザーバビリティ バケットの再プロビジョニングを再試行します。
PERMISSION_DENIED
PERMISSION_DENIED エラー メッセージは、オブザーバビリティ バケットを再プロビジョニングするために必要な IAM ロールがないことを示しています。
このエラーを解決するには、このドキュメントの始める前にセクションに記載されている IAM ロールを付与するよう管理者に依頼してください。
トラブルシューティング
このセクションでは、一般的な問題を解決する方法と、オブザーバビリティ バケットの再プロビジョニング後に発生する可能性のある質問への回答について説明します。
バケットが再プロビジョニングされたかどうかを確認するにはどうすればよいですか?
監査ログをクエリし、ログ名、サービス、メソッドでログエントリをフィルタします。詳細については、このドキュメントの監査をご覧ください。
プロジェクトにトレースデータ用のバケットが 2 つ表示されるのはなぜですか?
_Trace オブザーバビリティ バケットの再プロビジョニング中に、システムが新しいバケットを作成する必要がある場合があります。これが true の場合、再プロビジョニング オペレーション中に、プロジェクトに _Trace という名前の 2 つのオブザーバビリティ バケットが含まれます。
プロジェクト内のオブザーバビリティ バケットを一覧表示すると、両方のバケットが結果に表示されます。
オブザーバビリティ分析を使用してトレースデータをクエリすると、両方のバケットで
_AllSpansビューを使用できます。
お客様側でのご対応は必要ありません。
システムが再プロビジョニング オペレーションの一環としてオブザーバビリティ バケットを作成した場合、そのオペレーションが正常に完了すると、オペレーションの対象となったバケットは削除されます。再プロビジョニング オペレーションが失敗すると、新しいバケットは削除されます。
再プロビジョニング後にクエリされたデータが異なるのはなぜですか?
再プロビジョニング オペレーションでは、オペレーションの開始前に保存されたすべてのデータが削除されます。このデータは復元できません。
再プロビジョニング後に Trace エクスプローラにデータが表示されないのはなぜですか?
Trace Explorer は、パフォーマンスを向上させるためにキャッシュを使用します。キャッシュは、クエリ対象のオブザーバビリティ バケットに関連付けられます。重要なのは、クエリ時にそのバケットが使用できない場合、クエリが失敗することです。
再プロビジョニング オペレーション中に、 Google Cloud プロジェクトに _Trace という名前の 2 つのオブザーバビリティ バケットが含まれる場合があります。さらに、そのオペレーションが完了すると、それらのバケットの 1 つが削除されます。このシナリオでは、Trace Explorer が使用するキャッシュが、存在しないバケットに関連付けられる可能性があります。
このエラーは、キャッシュがタイムアウトすると自動的に修正されます。これには約 10 分かかります。
オブザーバビリティ バケットを再プロビジョニングできないのはなぜですか?
再プロビジョニング オペレーションが FAILED_PRECONDITION ステータスで失敗した場合、ターゲットのオブザーバビリティ バケットは再プロビジョニングの対象外です。バケットが再プロビジョニングの対象外となる理由には、次のようなものがあります。
- オブザーバビリティ バケットの名前が
_Traceではない。 - オブザーバビリティ バケットが再プロビジョニングされた回数が 1 回を超えています。監査ログをクエリして、バケットが再プロビジョニングされたかどうかを確認できます。
- オブザーバビリティ バケットのデフォルト設定が見つかりません。このエラーを解決するには、オブザーバビリティ バケットのデフォルト設定を構成してから、コマンドを再試行します。
- オブザーバビリティ バケットの構成は、デフォルトの設定と一致しています。つまり、再プロビジョニング オペレーションによって、オブザーバビリティ バケットの構成が変更されることはありません。
- デフォルト設定に準拠するには、システムで CMEK を Google 管理の暗号化に置き換える必要があります。この操作はサポートされていません。