記事概要
- S3のバケットを意図せず削除してしまう事故を防止したい
- バケット内のオブジェクトを削除の禁止するバケットポリシーを方法を調べたのでmemo
サンプル
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": [
"arn:aws:s3:::【バケット名】"
"arn:aws:s3:::【バケット名】/*"
]
}
]
}
設定方法
①S3の削除を禁止したいバケットを選択
②タブ「アクセス許可」をクリック
③バケットポリシーの編集をクリック
④下記ポリシーを入力
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": [
"arn:aws:s3:::【バケット名】"
"arn:aws:s3:::【バケット名】/*"
]
}
]
}
解説
Version
- バケットポリシーのバージョン
- 他のバージョンや省略も可能
- 削除のような基本的な機能であれば、
"2012-10-17"
で問題ない
Effect
- 今回は「禁止」したいので
Deny
- 許可したい時は
Allow
Principal
- IAMユーザー・ロールを指定することができる
- 今回は全てのユーザー・ロールに対して行うので、
*
Action
- 何を禁止にするか
- 今回はオブジェクトの削除、過去バージョンのオブジェクトの削除を禁止に
- バージョン管理が無効の場合は
s3.DeleteObject
のみでOK
- バージョン管理が無効の場合は
Resource
- 対象のリソースを指定
- prefixを指定したい場合は
【バケット名】/【プレフィックス名】/*
とすればOK - 今回は
- バケットそのもの
- バケット内のオブジェクト全て
の削除を禁止した
コメント