投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。
参考
目的
S3のバージョニングを有効にして削除したオブジェクトを復元してみます
手順
S3バケットでバージョニングを有効にする
プロパティ>バージョニングの有効化
テスト用のファイルをアップロード
AWSTemplateFormatVersion: '2010-09-09'
Resources:
SecurityGroupB:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupB
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '443'
ToPort: '443'
CidrIp: 0.0.0.0/0
SecurityGroupC:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: 172.0.0.0/32
編集して再度アップロード
AWSTemplateFormatVersion: '2010-09-09'
Resources:
SecurityGroupB:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupB
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '80'
ToPort: '80'
CidrIp: 0.0.0.0/0
SecurityGroupC:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: 172.0.0.0/32
バージョンを表示すると最新バージョンと古いバージョンが表示される
バージョンを非表示して、オブジェクトを削除する。
S3は、オブジェクトがバージョニングが有効なバケット内にあったため、そのオブジェクトは削除されず、削除マーカーを挿入し、オブジェクトを削除したものとみなします。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/DeleteMarker.html
ここでは、復元したいので、削除マーカーがついたオブジェクトを選択し削除します
バージョンを非表示にすると削除されたオブジェクトが復元できています
復元したオブジェクトは、修正後のファイルなので、一番古いものにリストアするには、再度バージョンを表示し、最新バージョンのオブジェクトを表示して削除します。
バージョンを非表示にオブジェクトをダウンロードして中身を確認すると最初の状態のファイルにリストアされています
AWSTemplateFormatVersion: '2010-09-09'
Resources:
SecurityGroupB:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupB
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '443'
ToPort: '443'
CidrIp: 0.0.0.0/0
SecurityGroupC:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: 172.0.0.0/32