デフォルトでは、スナップショットはグローバル スコープで作成されます。グローバル スコープのスナップショットは特定の保存場所に保存され、任意のリージョンまたはゾーンに復元(新しいディスクの作成に使用)できます。ロケーション ベースの分離制御を導入するため、リージョン スコープのスナップショットを作成できます。リージョン スコープのスナップショットは、すべてのスナップショット データとメタデータをスコープ対象のリージョンにまとめて保存します。リージョン スコープのスナップショットを使用して、スナップショットの作成と復元を行うリージョンを制限することもできます。
このドキュメントでは、リージョン スナップショットの作成と復元を許可する場所を設定する方法について説明します。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、 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-07-21 UTC。
-