Azure Container Registry の論理的な削除ポリシーを使って削除された成果物を回復する (プレビュー)
Azure Container Registry (ACR) を使用すると、論理的な削除ポリシーを有効にして、設定された保持期間に誤って削除された成果物を回復できます。
論理的な削除ポリシーの側面
論理的な削除ポリシーはいつでも有効または無効にできます。 ACR で論理的な削除ポリシーを有効にすると、削除された成果物は、保持期間を設定された論理的に削除された成果物として管理されます。 これにより、論理的に削除された成果物を一覧表示、フィルター処理、復元できます。
保持期間
論理的に削除された成果物の既定の保持期間は 7 日間ですが、保持期間の値は 1 から 90 日間に設定できます。 アイテム保持ポリシーの値は設定、更新、変更できます。 論理的に削除された成果物は、保持期間が完了すると期限切れになります。
自動消去
自動削除は 24 時間ごとに実行され、論理的に削除された成果物を完全に削除する前に、保持日数の現在の値が常に考慮されます。 たとえば、成果物を論理的に削除してから 5 日後に、保持日数の値を 7 日から 14 日に変更した場合、成果物は最初の論理的な削除から 14 日後になって期限切れになります。
可用性と料金の情報
この機能は、すべてのサービス レベル (SKU とも呼ばれます) で使用できます。 レジストリ サービス レベルについては、Azure Container Registry のサービス レベルに関するページをご覧ください。
注意
論理的に削除された成果物は、ストレージのアクティブな SKU の価格に従って課金されます。
プレビューの制限事項
重要
論理的な削除ポリシーは現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
- 現在、ACR では、論理的に削除された成果物の手動削除はサポートされていません。
- 論理的な削除ポリシーでは、geo レプリケートされたレジストリはサポートされていません。
- ACR では、アイテム保持ポリシーと論理的な削除ポリシーの両方を有効にすることはできません。 「タグなしマニフェストの保持ポリシーの設定」を参照してください。
前提条件
- ユーザーが論理的な削除操作を実行するには、次のアクセス許可 (レジストリ レベル) が必要です。
権限 | 説明 |
---|---|
Microsoft.ContainerRegistry/registries/deleted/read | 論理的に削除された成果物を一覧表示する |
Microsoft.ContainerRegistry/registries/deleted/restore/action | 論理的に削除された成果物を復元する |
この記事のサンプル コマンドは、Azure Cloud Shell または Azure CLI のローカル インストールを使用して実行できます。 これをローカルで使用したい場合は、バージョン 2.0.74 以降が必要です。
az --version
を実行してバージョンを確認します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。Azure portal にサインインします。
レジストリの論理的な削除ポリシーを有効にする - CLI
保持期間を 1 日から 90 日に設定して、特定
MyRegistry
の ACR の論理的な削除ポリシーを更新します。az acr config soft-delete update -r MyRegistry --days 7 --status <enabled/disabled>
特定
MyRegistry
の ACR に対して構成された論理的な削除ポリシーを表示します。az acr config soft-delete show -r MyRegistry
論理的な削除の成果物を一覧表示する - CLI
この az acr repository list-deleted
コマンドを使用すると、論理的に削除されたリポジトリのフェッチと一覧表示が可能になります。 詳細については、--help
をご使用ください。
特定の
MyRegistry
ACR 内の論理的に削除されたリポジトリを一覧表示します。az acr repository list-deleted -n MyRegistry
この az acr manifest list-deleted
コマンドを使用すると、論理的な削除マニフェストのフェッチと一覧表示が可能になります。
特定の
MyRegistry
ACR 内のhello-world
リポジトリの論理的に削除されたマニフェストを一覧表示します。az acr manifest list-deleted -r MyRegistry -n hello-world
この az acr manifest list-deleted-tags
コマンドを使用すると、論理的な削除タグのフェッチと一覧表示が可能になります。
特定の
MyRegistry
ACR 内のhello-world
リポジトリの論理的に削除されたタグを一覧表示します。az acr manifest list-deleted-tags -r MyRegistry -n hello-world
hello-world
特定latest
のMyRegistry
ACR 内のリポジトリの論理的に削除されたタグを一覧表示します。az acr manifest list-deleted-tags -r MyRegistry -n hello-world:latest
論理的に削除された成果物を復元する - CLI
az acr manifest restore
コマンドは、タグとダイジェストによって 1 つのイメージを復元します。
特定の
MyRegistry
ACR のhello-world
タグとダイジェストsha256:abc123
によってリポジトリlatest
のイメージを復元します。az acr manifest restore -r MyRegistry -n hello-world:latest -d sha256:abc123
特定の ACR 内の
latest
タグによってMyRegistry
、hello-world
リポジトリの最後に削除されたマニフェストを復元します。az acr manifest restore -r MyRegistry -n hello-world:latest
強制復元では、リポジトリ内の同じ名前の既存のタグが上書きされます。 強制復元中に論理的な削除ポリシーが有効になっている場合。 上書きされたタグは論理的に削除されます。 特定の引数を使用して復元を --force, -f
強制できます。
hello-world
特定のlatest
ACR のタグとダイジェストによってsha256:abc123
リポジトリMyRegistry
のイメージを復元します。az acr manifest restore -r MyRegistry -n hello-world:latest -d sha256:abc123 -f
重要
マニフェスト リストを復元しても、基になる論理的に削除されたマニフェストは再帰的に復元されません。 論理的に削除された ORAS アーティファクトを復元する場合、サブジェクトを復元しても参照元チェーンは再帰的に復元されません。 また、最初にサブジェクトを復元する必要があり、次に参照元マニフェストのみが復元を許可されます。 それ以外の場合は、例外がスローされます。
レジストリの論理的な削除ポリシーを有効にする - ポータル
Azure portal でレジストリの論理的な削除ポリシーを有効にすることもできます。
- 自分の Azure コンテナー レジストリに移動します。
- [概要] タブで、 論理的な削除 (プレビュー) の状態を確認します。
- [状態] が [無効] の場合は、[更新] を選択します。
- [論理的な削除を有効にする] チェック ボックスをオンにします。
- 論理的に削除された成果物を保持する日数を
0
日から90
日の間で選びます。 - [保存] を選択して変更を保存します。
論理的に削除された成果物を復元する - ポータル
- 自分の Azure コンテナー レジストリに移動します。
- [メニュー] セクションで、[サービスの選択] と [リポジトリの選択] を選択します。
- リポジトリで、任意のリポジトリを選択します。
- [削除された成果物の管理] を選ぶと、論理的に削除されたすべての成果物が表示されます。
Note
論理的な削除ポリシーを有効にし、マニフェストのタグ解除や成果物の削除などのアクションを実行すると、リテンション期間の日数が経過する前に、マネージド削除成果物でこれらのタグと成果物を見つけることができます。
- 復元する必要がある削除された成果物をフィルター処理します。
- 成果物を選び、右側の列の [復元] を選びます。
- [成果物の復元] ウィンドウが表示されます。
- 復元するタグを選択します。ここでは、追加のタグを選択して回復するオプションがあります。
- [復元] を選びます。
論理的に削除されたリポジトリからの復元 - ポータル
- 自分の Azure Container Registry に移動します。
- [メニュー]セクションの [サービス] を選択し、
- [サービス] タブの [リポジトリ] を選択します。
- [リポジトリ] タブで、[削除されたリポジトリの管理] を選びます。
- 論理的に削除されたリポジトリで 削除されたリポジトリをフィルター処理します (プレビュー)。
- 削除されたリポジトリを選択し、[削除された成果物の管理] で 削除された成果物をフィルター処理します。
- 成果物を選び、右側の列の [復元] を選びます。
- [成果物の復元] ウィンドウが表示されます。
- 復元するタグを選びます。ここでは、他のタグを選んで回復するオプションがあります。
- [復元] を選びます。
重要
ソース リソースとターゲット リソースの両方で論理的に削除されたイメージのインポートがブロックされます。 論理的に削除されたリポジトリにイメージをプッシュすると、論理的に削除されたリポジトリが復元されます。 論理的に削除されたイメージと同じマニフェスト ダイジェストを共有するイメージをプッシュすることはできません。 代わりに、論理的に削除されたイメージを復元します。
次のステップ
- Azure Container Registry のイメージとリポジトリを削除する方法を確認します。