【AWS】S3の意図しない削除を防止する

IT

記事概要

  • 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
  • 今回は
    • バケットそのもの
    • バケット内のオブジェクト全て
      の削除を禁止した

コメント

タイトルとURLをコピーしました