{Glacier}Amazon S3 Glacier ボールトロック

 

https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/vault-lock.html

https://qiita.com/miyuki_samitani/items/2896d28eb3378a20513b

Amazon S3 Glacier ボールトアクセスポリシーは、ボールトに対する権限を管理するのに使用できるリソースベースのポリシーです。
ボールトロックポリシーは、ロック可能なボールトアクセスポリシーです。

InProgress 状態では、ロック ID の有効期限が切れるまでの 24 時間にボールトロックポリシーを検証することができます。

 


-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

-- 1.2 jqインストール
sudo yum -y install jq


-- 2. ボールトを作成

aws glacier create-vault \
--account-id 999999999999 \
--vault-name vault01


aws glacier describe-vault \
--account-id 999999999999 \
--vault-name vault01

 


-- 3. ボールトロックを開始

 

aws glacier initiate-vault-lock \
--account-id 999999999999 \
--vault-name vault01 \
--policy '{"Policy":"{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"deny-based-on-archive-age\",\"Principal\":\"*\",\"Effect\":\"Deny\",\"Action\":\"glacier:DeleteArchive\",\"Resource\":[\"arn:aws:glacier:ap-northeast-1:999999999999:vaults/vault01\"],\"Condition\":{\"NumericLessThan\":{\"glacier:ArchiveAgeInDays\":\"1\"}}}]}"}'

 

ロック ID を記録


aws glacier get-vault-lock \
--account-id 999999999999 \
--vault-name vault01


-- 4. ボールトロックを中止

aws glacier get-vault-lock \
--account-id 999999999999 \
--vault-name vault01


aws glacier abort-vault-lock \
--account-id 999999999999 \
--vault-name vault01

 

-- 5. ボールトロックを完了

aws glacier get-vault-lock \
--account-id 999999999999 \
--vault-name vault01


aws glacier complete-vault-lock \
--account-id 999999999999 \
--vault-name vault01 \
--lock-id xxxxxxxxxxxxxxxxxxxxxxxx

 


-- 6. クリーンアップ


-- ボールトを削除

S3 Glacier では、最後にインベントリを計算した時点でボールト内にアーカイブがなく、
また、最後にインベントリを計算してからボールトへの書き込みがない場合にのみ、
ボールトを削除できます。


aws glacier delete-vault \
--account-id 999999999999 \
--vault-name vault01

aws glacier list-vaults \
--account-id 999999999999