Amazon S3 サーバーアクセスログの有効化時、自動で作成されるバケットポリシーを確認してみた

Amazon S3 サーバーアクセスログの有効化時、自動で作成されるバケットポリシーを確認してみた

2025.07.15

はじめに

Amazon S3 サーバーアクセスログの有効化すると自動で作成されるバケットポリシーがありましたので
AWS マネジメントコンソールと AWS CLI を利用して試してみました。

先に結論から

  1. Amazon S3 サーバーアクセスログを有効時、ポリシーが作成される
  2. GUI 利用時はポリシーが自動で作成される

確認してみた

AWS マネジメントコンソール Ver

  1. アップロードに利用するバケットとログが保存されるバケット2つを作成します。
    1

2.__「プロパティ」__タブを確認します。
2

3.__「サーバーアクセスのログ記録」「編集」__を選択します。
3

4.サーバーアクセスのログを有効にします。
4

5.送信先のバケットを指定し、設定します。
5

7

6.ログの保存バケットのポリシーを確認すると自動でポリシーが作成されたことを確認できます。
8

AWS CLI Ver

  1. アップロードに利用するバケットとログが保存されるバケット2つを作成します。
    スクリーンショット 2025-07-15 午前10.48.26
aws s3api create-bucket \
  --bucket log-source-bucket-test200 \
  --region ap-northeast-1 \
  --create-bucket-configuration LocationConstraint=ap-northeast-1
aws s3api create-bucket \
  --bucket log-destination-bucket-test200 \
  --region ap-northeast-1 \
  --create-bucket-configuration LocationConstraint=ap-northeast-1
  1. サーバーアクセスのログを有効化します。
    スクリーンショット 2025-07-15 午前10.50.00
aws s3api put-bucket-logging \
  --bucket log-source-bucket \
  --bucket-logging-status '{
    "LoggingEnabled": {
      "TargetBucket": "log-destination-bucket",
      "TargetPrefix": "access-logs/"
    }
  }'

有効化されたか確認してみましょう
スクリーンショット 2025-07-15 午前10.50.27

aws s3api get-bucket-policy --bucket log-destination-bucket

バケットポリシーが存在しません、というエラーメッセージが出力されました。
ポリシーを確認してみます。確認の結果ポリシーが作成されなかったことが確認できました。
スクリーンショット 2025-07-15 午後12.33.54

それでは手動でバケットポリシーを作成します。(vi 利用しました)
スクリーンショット 2025-07-15 午前10.57.27

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "リソース名",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "アカウント"
                }
            }
        }
    ]
}

スクリーンショット 2025-07-15 午前10.57.37
(cat コマンドで保存されているかを確認します。)

確認できましたのでポリシーを適用してみます。

aws s3api put-bucket-policy \
  --bucket log-destination-bucket-test200 \
  --policy file://policy.json

上記の手順でポリシーの作成を完了しました。

スクリーンショット 2025-07-15 午前11.16.58
ログの記録まで確認できました。

最後に

最後にもう一度今回のサーバーアクセスのログを有効化時自動で作成されるバケットポリシーに関してまとめてみます。

  1. サーバーアクセスのログを記録するため自動で作成されるポリシーが存在する
  2. AWS マネジメントコンソールでは対象のポリシーが自動作成される
  3. CLI の環境ではポリシーを手動で設定する必要がある

今回のブログのまとめは以上になります。

参考資料

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/enable-server-access-logging.html

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイト をぜひご覧ください

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.