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

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

2025.07.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

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 テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイト をぜひご覧ください


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事