デフォルトでは、スナップショットはグローバル スコープで作成されます。グローバル スコープのスナップショットは特定のストレージ ロケーションに保存され、任意のリージョンまたはゾーンで復元(新しいディスクの作成に使用)できます。ロケーションベースの分離制御を強化するには、リージョン スコープのスナップショットを作成します。リージョン スコープのスナップショットは、すべてのスナップショット データとメタデータをスコープ内のリージョンに一緒に保存します。リージョン スコープのスナップショットを使用すると、スナップショットの作成と復元を行うリージョンを制限することもできます。
このドキュメントでは、リージョン スナップショットの作成と復元に許可されたロケーションを設定する方法について説明します。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- リージョン スコープを設定すると、プロジェクトのすべてのデフォルトのストレージ ロケーション設定がオーバーライドされます。
- リージョン スコープの設定は、新しいリージョン スナップショットにのみ適用されます。
- グローバル スコープのスナップショットをリージョン スコープのスナップショットに変換することはできません。適切なスコープで新しいスナップショットを作成する必要があります。
- Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
) - サービス アカウントとして実行できる VM に接続するには: サービス アカウント ユーザー(v1)(
roles/iam.serviceAccountUser
) ZONE_A
: 任意のリージョンでスナップショットを作成できるディスクのゾーン。REGION_A
: リージョン スコープのスナップショット作成制限が必要な(プロジェクト内の)すべてのディスクのリージョン。REGION_B
: リージョン スコープのスナップショットの作成が許可されるリージョン。許可されたアクセス ロケーションとして複数のリージョンを設定できます。ソースディスクが保存されているリージョンを、許可されたリージョンの 1 つとして含める必要があります。PROJECT_ID
: プロジェクトの ID。ZONE_A
: ディスクのゾーンREGION_A
: ディスクのリージョン。REGION_B
: スナップショットの作成が許可されているリージョン。許可されたアクセス ロケーションとして複数のリージョンを設定できます。ソースディスクが保存されているリージョンを、許可されたリージョンの 1 つとして含める必要があります。PROJECT_ID
: プロジェクトの ID。REGION_A
: リージョン スコープのスナップショットが保存されるリージョン。REGION_B
: リージョン スコープのスナップショットを復元できる許可されたリージョン。複数のリージョンを許可された復元ロケーションとして設定できます。PROJECT_ID
: プロジェクトの ID。REGION_A
: リージョン スコープのスナップショットが保存されるリージョン。REGION_B
: リージョン スコープのスナップショットを復元できる許可されたリージョン。複数のリージョンを許可された復元ロケーションとして設定できます。PROJECT_ID
: プロジェクトの ID。REGION_A
: リージョン スコープのスナップショットが保存されるリージョン。REGION_B
: リージョン スコープのスナップショットの復元アクセス権を削除するリージョン。PROJECT_ID
: プロジェクトの ID。REGION_A
: リージョン スコープのスナップショットが保存されるリージョン。REGION_B
: リージョン スコープのスナップショットの復元アクセス権を削除するリージョン。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
制限事項
必要なロールと権限
リージョン スコープのスナップショットのストレージと復元場所を設定するのに必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、スナップショットの作成と復元のロケーションの設定に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
許可されたスナップショット作成ロケーションを設定する
デフォルトでは、すべてのリージョンでスナップショットを作成できます。リージョン スコープのスナップショットを作成できる場所を制限するには、プロジェクト レベルで許可されたアクセス ロケーションを設定します。アクセス ロケーションを設定すると、プロジェクトのリージョン スコープのスナップショットを作成できるのは、これらのロケーションに限られます。
gcloud
ゾーン A のゾーンディスクが任意のリージョンにスナップショットを作成できるようにするには、
gcloud beta compute disk-settings update
コマンドを使用します。gcloud beta compute disk-settings update \ --zone=ZONE_A \ --access-location-policy=all-regions \
リージョン A のリージョンディスクが任意のリージョンにスナップショットを作成できるようにするには、
gcloud beta compute disk-settings update
コマンドを使用します。gcloud beta compute disk-settings update \ --region=REGION_A \ --access-location-policy=all-regions
リージョン A のディスクがリージョン B でのみスナップショットを作成できるようにするには、
gcloud beta compute disk-settings update
コマンドを使用します。gcloud beta compute disk-settings update \ --access-location-policy=specific-regions \ --region=REGION_A \ --add-access-locations=REGION_B
次のように置き換えます。
REST
ゾーン A のゾーンディスクが任意のリージョンでスナップショットを作成できるようにするには、
diskSettings.patch
メソッドにPATCH
リクエストを送信します。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE_A/diskSettings?updateMask=accessLocation { "accessLocation": { "policy":"ALL_REGIONS" } }
リージョン A のリージョン ディスクがリージョン B でのみスナップショットを作成できるようにするには、
regionDiskSettings.patch
メソッドにPATCH
リクエストを送信します。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION_A/diskSettings?updateMask=accessLocation { "accessLocation": { "policy":"SPECIFIC_REGIONS", "locations": { "REGION_B":{"region":"REGION_B"} } } }
次のように置き換えます。
許可されたスナップショットの復元場所を設定する
デフォルトでは、リージョン スコープとグローバル スコープのスナップショットを任意のリージョンに復元できます。リージョン スコープのスナップショットの復元ロケーションを構成するには、プロジェクト レベルで許可されたアクセス ロケーションを設定します。許可されるアクセス場所は、プロジェクトごとに個別に設定する必要があります。アクセス ロケーションを設定すると、プロジェクトのリージョン スコープのスナップショットは、これらのロケーションでのみ復元できます。
gcloud
リージョン A のプロジェクトのスナップショットをすべてのリージョンで復元するには、
gcloud beta compute snapshot-settings update
コマンドを使用します。gcloud beta compute snapshot-settings update \ --project=PROJECT_ID \ --region=REGION_A \ --access-location-policy=all-regions
リージョン A のプロジェクトのスナップショットをリージョン B でのみ復元するには、
gcloud beta compute snapshot-settings update
コマンドを使用します。gcloud beta compute snapshot-settings update \ --project=PROJECT_ID \ --access-location-policy=specific-regions \ --region=REGION_A \ --add-access-locations=REGION_B
次のように置き換えます。
REST
リージョン A のプロジェクトのスナップショットをすべてのリージョンで復元できるようにするには、
regionSnapshotSettings.patch
メソッドにPATCH
リクエストを送信します。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation { "accessLocation": { "policy":"ALL_REGIONS" } }
リージョン A のプロジェクトのスナップショットをリージョン B でのみ復元するには、
regionSnapshotSettings.patch
メソッドにPATCH
リクエストを送信します。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation { "accessLocation": { "policy":"SPECIFIC_REGIONS", "locations": {"REGION_B": {"region":"REGION_B"} } } }
次のように置き換えます。
許可されたスナップショットの復元ロケーションを編集する
gcloud
リージョン A に保存されているプロジェクトのスナップショットの復元が許可されているロケーションを表示するには、
gcloud beta compute snapshot-settings describe
コマンドを使用します。gcloud beta compute snapshot-settings describe \ --project=PROJECT_ID \ --region=REGION_A
リージョン A に保存されているプロジェクトのスナップショットの復元に許可されたロケーションのリストからリージョン B を削除するには、
gcloud beta compute snapshot-settings update
コマンドを使用します。gcloud beta compute snapshot-settings update \ --project=PROJECT_ID \ --access-location-policy=specific-regions \ --remove-access-locations=REGION_B \ --region=REGION_A
次のように置き換えます。
REST
リージョン A に保存されているプロジェクトのスナップショットの復元が許可されているロケーションを表示するには、
regionSnapshotSettings.get
メソッドにGET
リクエストを送信します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings
リージョン A に保存されているプロジェクトのスナップショットの復元に許可されたロケーションのリストからリージョン B を削除するには、
regionSnapshotSettings.patch
メソッドにPATCH
リクエストを送信します。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation { "accessLocation": { "policy":"SPECIFIC_REGIONS", "locations": {"REGION_B":{}} } }
次のように置き換えます。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-06-16 UTC。
-