デフォルトでは、Compute Engine は削除された標準スナップショットを 3 日間の保持期間の間、ゴミ箱に保持してから、完全に削除します。ごみ箱の保持ポリシーを変更することで、保持期間を短くしたり、ごみ箱を無効にしたりできます。
このドキュメントでは、ごみ箱の保持ポリシーを表示して構成する方法について説明します。
ごみ箱の内容を表示したり、ごみ箱からスナップショットを復元したりするには、ごみ箱を管理するをご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証では、 Cloud de Confiance by S3NS サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Cloud de Confiance コンソールを使用して Cloud de Confiance by S3NS サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
-
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。
詳細については、 Cloud de Confiance 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロールと権限
ごみ箱の保持ポリシーの表示と管理に必要な権限を取得するには、プロジェクトに対する Compute 管理者 (roles/compute.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、ごみ箱の保持ポリシーの表示と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
ごみ箱の保持ポリシーを表示して管理するには、次の権限が必要です。
-
ごみ箱の保持ポリシーでルールを設定、変更、削除する:
compute.snapshotRecycleBinPolicy.patch -
ごみ箱の保持ポリシーを表示するには:
compute.snapshotRecycleBinPolicy.get -
標準スナップショットのごみ箱保持ポリシーを表示する: スナップショットに対する
compute.snapshots.getEffectiveRecycleBinRule
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
ごみ箱の保持ポリシーの仕組み
ごみ箱の保持ポリシーは、すべてのプロジェクトと組織の標準スナップショットの保持期間を定義するルールのグローバル コレクションです。
ごみ箱の保持ポリシーには次の機能があります。
3 日間のデフォルトの保持期間は、システム デフォルト ルールと呼ばれます。システムのデフォルト ルールは削除できませんが、オーバーライドすることはできます。
システム デフォルトのルールをオーバーライドするには、それぞれプロジェクトまたは組織に適用されるプロジェクトまたは組織のデフォルトのルールを追加します。タグベースのルールをごみ箱の保持ポリシーに追加することもできます。
保持ポリシーのルールの競合は次のように解決されます。
- タグベースのルールは、プロジェクトと組織の両方のデフォルト ルールをオーバーライドします。
- 複数のタグベースのルールが標準スナップショットに適用されている場合は、保持期間が最も長いルールが適用されます。ただし、プロジェクトのデフォルト ルールは、保持期間が長くてもタグベースのルールをオーバーライドしません。
- プロジェクトのデフォルト ルールは、組織のデフォルト ルールをオーバーライドします。
- 標準スナップショットに適用されるルールがない場合、システムのデフォルト ルールが適用されます。
詳細については、ごみ箱の保持ポリシー内のルールの階層をご覧ください。
Google はごみ箱を無効にすることをおすすめしませんが、保持期間が 0 日のルールを作成することで、プロジェクト、組織、タグに対してごみ箱を無効にできます。ルールが適用されているすべての標準スナップショットは、削除するとすぐに消去されます。
ごみ箱の保持ポリシーの変更は、既存の復元可能なスナップショット(ごみ箱にある既存の削除済み標準スナップショット)には適用されません。
制限事項
- 標準スナップショットのみがサポートされています。アーカイブ スナップショット、インスタント スナップショット、ディスク、イメージは、削除するとすぐに完全に消去されます。
- ごみ箱の保持ポリシーの変更は、既存の復元可能なスナップショット(ごみ箱にある既存の削除済み標準スナップショット)には適用されません。
- タグの保持ポリシー ルールを指定するには、タグがすでに存在している必要があります。
- 保持ポリシー ルールは、プロジェクト、組織、タグに対してのみ設定できます。
- タグに保持ポリシー ルールを設定すると、保持ポリシーはそのタグを持つ標準スナップショットにのみ適用されます。アーカイブ スナップショット、インスタント スナップショット、ディスク、およびそのタグを持つその他のリソースは、ごみ箱と互換性がなく、削除すると完全に消去されます。
プロジェクトまたは組織のデフォルトの保持期間を設定または削除する
プロジェクトまたは組織内で 3 日間のシステムのデフォルト ルールをオーバーライドするか、ごみ箱を無効にするには、プロジェクトまたは組織のデフォルトの保持ポリシー ルールを設定します。
gcloud CLI または REST を使用できます。
gcloud CLI
gcloud beta compute snapshot-recycle-bin-policy update コマンドを使用します。デフォルトの保持ポリシー ルールを設定するには --set-rule=default フラグを使用し、ルールの保持期間を指定するには --standard-snapshots-retention-duration-days フラグを使用します。
組織のデフォルトの保持ポリシーを設定するには、次のコマンドを使用します。
gcloud beta compute snapshot-recycle-bin-policy update \ --set-rule=default \ --standard-snapshots-retention-duration-days=DEFAULT_RETENTION_PERIOD_DAYS \ --organization=ORGANIZATION_ID
以下を対応する値に置き換えます。
DEFAULT_RETENTION_PERIOD_DAYS: プロジェクトまたは組織の保持期間(日数)。0~7の値を指定します。ごみ箱を無効にするには、0を指定します。ORGANIZATION_ID: 省略可。 デフォルトの保持ルールを設定する組織の ID。例:123456789012。組織 ID またはプロジェクト ID のいずれかを指定する必要があります。両方を指定することはできません。
プロジェクトのデフォルトの保持ポリシーを設定するには、上記のコマンドで
--organizationフラグを--project=<var>PROJECT_ID</var>に置き換えます。ここで、PROJECT_IDはプロジェクトの ID です。プロジェクトまたは組織のデフォルトの保持ルールを削除するには、同じコマンドを使用しますが、
--set-rule=defaultではなく--remove-rule=defaultを指定します。たとえば、組織のデフォルトの保持ポリシー ルールを削除するには:
gcloud beta compute snapshot-recycle-bin-policy update \ --organization=ORGANIZATION_ID \ --remove-rule=default
ORGANIZATION_IDは、組織の ID に置き換えます。
REST
snapshotRecycleBinPolicy メソッドに対して PATCH リクエストを作成します。
リクエストの本文に、デフォルトのゴミ箱の期間(日数)を指定する rules オブジェクトを含めます。
プロジェクトの保持ポリシーを追加または変更するには:
PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy { "rules": { "default": { "standardSnapshots": { "retentionDurationDays": DEFAULT_RETENTION_PERIOD_DAYS } } } }以下を対応する値に置き換えます。
PROJECT_ID: プロジェクト ID(例:dev-project)。DEFAULT_RETENTION_PERIOD_DAYS: デフォルトの保持期間(日数)。0~7の値を指定します。ごみ箱を無効にするには、0を指定します。
組織の保持ポリシーを追加または変更するには、前の例のように
PATCHリクエストを行いますが、次の URL を使用します。PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/
リクエスト本文は、前の例と同じです。
ORGANIZATION_IDは組織の ID に置き換えます。例:123456789012。プロジェクトまたは組織のデフォルトの保持ルールを削除するには、同様の
PATCHリクエストを行いますが、defaultルールにnullを指定します。たとえば、組織のデフォルトの保持ルールを削除するには:
PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/ { "rules": { "default": null } }ORGANIZATION_IDは、組織の ID に置き換えます。
タグの保持ポリシーを設定または削除する
特定のタグを持つ標準スナップショットに特定の保持期間を設定するには、プロジェクト レベルまたは組織レベルでタグベースのルールを設定します。タグベースのルールは、プロジェクトまたは組織のデフォルト ルールをオーバーライドし、次の特性を持ちます。
- 組織レベルまたはプロジェクト レベルのタグベースのルールは、それぞれ、そのタグを持つ組織またはプロジェクト内のすべての標準スナップショットに適用されます。
プロジェクト レベルのタグルールは、プロジェクト レベルのルールの保持期間が長い場合にのみ、組織レベルのタグルールをオーバーライドします。
たとえば、保持期間が 2 日間の組織レベルのタグルールは、保持期間が 1 日間のプロジェクト レベルのタグルールをオーバーライドします。
詳細については、ごみ箱の保持ポリシー内のルールの階層をご覧ください。
gcloud CLI または REST を使用できます。
gcloud CLI
タグの保持ポリシー ルールを設定するには、gcloud beta compute snapshot-recycle-bin-policy update コマンドを使用します。--set-rule フラグを使用してタグの名前を指定し、--standard-snapshots-retention-duration-days フラグを使用してタグのゴミ箱の保持期間(日数)を指定します。
gcloud beta compute snapshot-recycle-bin-policy update \ --set-rule=TAG_NAMESPACED_NAME \ --standard-snapshots-retention-duration-days=RETENTION_PERIOD_DAYS \ --organization=ORGANIZATION_ID
以下を対応する値に置き換えます。
TAG_NAMESPACED_NAME: 値を含むタグの名前空間付きの名前。たとえば、my-project-id/tag-key/tag-valueやmy-organization-id/tag-key/tag-valueです。RETENTION_PERIOD_DAYS: 保持期間(日数)。0~7の範囲で指定します。このタグのスナップショットのごみ箱を無効にするには、0を指定します。ORGANIZATION_ID: 省略可。 ルールが適用される組織の ID。例:123456789012。組織 ID またはプロジェクト ID のいずれかを指定する必要があります。両方を指定することはできません。
プロジェクトのデフォルトの保持ポリシーを設定するには、上記のコマンドで --organization フラグを --project=<var>PROJECT_ID</var> に置き換えます。ここで、PROJECT_ID はプロジェクトの ID です。
タグの保持ポリシー ルールを削除するには、同じコマンドを使用しますが、--set-rule ではなく --remove-rule=TAG_NAMESPACED_NAME を指定します。たとえば、組織のタグベースのルールを削除するには:
gcloud beta compute snapshot-recycle-bin-policy update \ --organization=ORGANIZATION_ID \ --remove-rule=TAG_NAMESPACED_NAME
REST
タグの保持ポリシー ルールを設定するには、snapshotRecycleBinPolicy メソッドに PATCH リクエストを送信します。リクエストの本文に、タグの名前と保持期間(日数)を指定する rules オブジェクトを含めます。
- プロジェクト内のタグの保持ポリシー ルールを設定または更新するには:
PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy/
{
"rules": {
"TAG_NAMESPACED_NAME_1": {
"standardSnapshots": {
"retentionDurationDays": RETENTION_PERIOD_DAYS
}
}
}
}
以下を対応する値に置き換えます。
PROJECT_ID: プロジェクトの ID。TAG_NAMESPACED_NAME: 値を含むタグの名前空間付きの名前。たとえば、my-project-id/env/prodやmy-organization-id/env/buildです。RETENTION_PERIOD_DAYS: 保持期間(日数)。0~7の範囲で指定します。このタグが付いたスナップショットのごみ箱を無効にするには、0を指定します。組織内のタグの保持ポリシー ルールを設定または更新するには、前の例のように
PATCHリクエストを送信しますが、次の URL を使用します。
PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/
ORGANIZATION_ID は、組織の ID に置き換えます。リクエストの本文は、前の例で説明したとおりです。
- タグの保持ポリシー ルールを削除するには、前の例のように
PATCHリクエストを作成しますが、タグベースのルールにはnullを指定します。たとえば、プロジェクト内のタグベースのルールの保持ポリシー ルールを削除するには:
PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
{
"rules": {
"TAG_NAMESPACED_NAME_1": null
}
}
プロジェクトまたは組織のごみ箱の保持ポリシーを表示する
プロジェクトまたは組織にごみ箱のカスタムルールがあるかどうかを確認する、タグベースのルールを表示する、ごみ箱が無効になっているかどうかを確認するには、プロジェクトまたは組織のごみ箱の保持ポリシーでルールを表示します。
プロジェクトまたは組織のごみ箱の保持ポリシーのルールを表示するには、gcloud CLI または REST を使用します。
gcloud CLI
タグベースのルールなど、プロジェクトまたは組織のごみ箱の保持ポリシーを表示するには、gcloud beta compute snapshot-recycle-bin-policy describe コマンドを使用します。
組織のごみ箱の保持ポリシーを表示するには:
gcloud beta compute snapshot-recycle-bin-policy describe \ --organization=ORGANIZATION_ID
ORGANIZATION_IDは、組織の ID に置き換えます。プロジェクトのごみ箱の保持ポリシーを表示するには:
gcloud beta compute snapshot-recycle-bin-policy describe \ --project=PROJECT_ID
PROJECT_IDをそのプロジェクトの ID に置き換えます。
出力は、次のようなルール オブジェクトのリストです。3 日間のシステム デフォルト ルールが出力に含まれます。
rules:
default:
standardSnapshots:
retentionDurationDays: '2'
database-project/Testing-tag-key/build:
standardSnapshots:
retentionDurationDays: '0'
database-project/Testing-tag-key/critical:
standardSnapshots:
retentionDurationDays: '5'
systemRules:
default:
standardSnapshots:
retentionDurationDays: '3'
各ルールの retentionDurationDays フィールドには、ルールの保持期間が日数で示されます。この例では、プロジェクト database-project に 3 つのルールがあります。
- タグ
Testing-tag-key/criticalが付いているすべてのスナップショットの 5 日間のルール。 - タグ
Testing-tag-key/buildが付いているすべてのスナップショットを直ちに削除します。 - プロジェクト内の他のすべてのスナップショットのデフォルトの保持期間は 2 日間です。
REST
タグベースのルールを含む、プロジェクトまたは組織のすべての保持ポリシー ルールを表示するには、snapshotRecycleBinPolicy.get メソッドに対する GET リクエストを作成します。
組織の保持ポリシーを表示するには:
GET https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy
ORGANIZATION_IDは、組織の ID に置き換えます。プロジェクトの保持ポリシーを表示するには:
GET https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
PROJECT_IDは、プロジェクトの ID に置き換えます。
レスポンスは次の例のようになります。3 日間のシステムのデフォルト ルールが出力に含まれます。
{
"rules": {
"default": {
"standardSnapshots": {
"retentionDurationDays": "2"
}
},
"database-project/Testing-tag-key/build": {
"standardSnapshots": {
"retentionDurationDays": "0"
}
},
"database-project/Testing-tag-key/critical": {
"standardSnapshots": {
"retentionDurationDays": "5"
}
},
"systemRules": {
"default": {
"standardSnapshots": {
"retentionDurationDays": "3"
}
}
}
}
}
各ルールの retentionDurationDays フィールドには、ルールの保持期間が日数で示されます。この例では、プロジェクト database-project に 3 つのルールがあります。
- タグ
Testing-tag-key/criticalが付いているすべてのスナップショットの 5 日間のルール。 - タグ
Testing-tag-key/buildが付いているすべてのスナップショットを直ちに削除します。 - プロジェクト内の他のすべてのスナップショットのデフォルトの保持期間は 2 日間です。
保持期間がゼロの場合、Compute Engine はスナップショットが削除された直後に完全に消去します。それ以外の場合、保持期間は、Compute Engine がスナップショットを完全に消去する前に、ごみ箱に保持する期間を示します。
タグのゴミ箱の保持期間を表示する
タグの保持ポリシーを表示するには、タグが定義されているプロジェクトまたは組織の保持ポリシーを取得します。
特定のスナップショットのごみ箱の保持期間を確認する
標準スナップショットが削除された場合にゴミ箱に保持されるかどうか、また保持される期間を確認するには、保持期間を確認します。保持期間が 0 の場合、スナップショットは削除後すぐに完全に消去されます。それ以外の場合、保持期間は、スナップショットが削除された場合にごみ箱に保持される期間を示します。
特定のスナップショットの保持期間を確認するには、Cloud de Confiance コンソール、gcloud CLI、または REST を使用します。
Cloud de Confiance コンソール
- Cloud de Confiance コンソールで、[スナップショット] ページに移動します。
[スナップショット] タブに、プロジェクト内のスナップショットの一覧が表示されます。
[名前] 列で、標準スナップショットの名前をクリックします。選択したスナップショットの [スナップショットの詳細] ページが表示されます。
[ゴミ箱の保持期間] プロパティには、スナップショットのゴミ箱の保持期間のスナップショットが表示されます。
gcloud CLI
特定のスナップショットの保持期間を表示するには、gcloud beta compute snapshots get-effective-recycle-bin-rule コマンドを使用します。
gcloud beta compute snapshots get-effective-recycle-bin-rule \ SNAPSHOT_NAME \ --project=PROJECT_ID
以下を対応する値に置き換えます。
PROJECT_ID: スナップショットを含むプロジェクトの ID。SNAPSHOT_NAME: スナップショットの名前。
出力は次のようになります。
retentionDurationDays: '5'
retentionDurationDays フィールドは、スナップショットのごみ箱の保持期間(日数)を示します。
REST
特定のスナップショットの保持期間を表示するには、getEffectiveRecycleBinRule メソッドに対する GET リクエストを作成します。
GET https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME/getEffectiveRecycleBinRule
以下を対応する値に置き換えます。
PROJECT_ID: スナップショットを含むプロジェクトの ID。SNAPSHOT_NAME: スナップショットの名前。
レスポンスは次の例のようになります。
{
"retentionDurationDays": "5"
}
retentionDurationDays フィールドは、スナップショットのごみ箱の保持期間(日数)を示します。
保持期間がゼロの場合、Compute Engine はスナップショットが削除された直後に完全に消去します。それ以外の場合、保持期間は、Compute Engine がスナップショットを完全に消去する前に、ごみ箱に保持する期間を示します。
保持ポリシーのどのルールがスナップショットに適用されるかを判断するには、スナップショットのタグをプロジェクトと組織の保持ポリシーのタグとデフォルト ルールと比較します。
標準スナップショットの保持期間を変更するには、次のいずれかのオプションを選択します。
- スナップショットのタグの 1 つにタグベースのルールを作成する
- 適切なタグベースのルールがすでに存在する場合は、リソースにタグを追加するの手順に沿って、そのタグをスナップショットに追加します。
- プロジェクトまたは組織のデフォルトのごみ箱保持ルールを変更します。ただし、この変更はプロジェクトまたは組織内の他のすべての標準スナップショットに適用されます。
次のステップ
- ごみ箱からスナップショットを復元する
- 標準スナップショットのタグを管理するには、リソースにタグを追加するをご覧ください。