{S3}Amazon S3 サーバーアクセスログを有効にします。

https://qiita.com/qiita-kurara/items/c3f3ecef24e91ff1460c

バケットのログ記録ステータスの変更がログファイルの配信に反映されるまでには時間がかかります。
たとえば、バケットのログを有効にする場合、その後数時間に行われるリクエストは記録されることもあれば、されないこともあります。


AES256 (SSE-S3) が選択されている場合にのみ、ターゲットバケットに対してデフォルトのバケット暗号化を使用できます。
SSE-KMS 暗号化はサポートされていません。


bucket123-1 -> ログ送信元バケット

bucket123-2 -> ログ送信先バケット

-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

 

-- 2. S3 バケットを作成する

aws s3 mb s3://bucket123-1
aws s3 mb s3://bucket123-2


aws s3 ls


-- 3. S3 サーバーアクセスログの有効化

-- Amazon S3 のアクセス許可を付与

aws s3api put-bucket-acl \
--bucket bucket123-2 \
--grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery \
--grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery

aws s3api get-bucket-acl \
--bucket bucket123-2

 

-- ログ記録ポリシーを適用

vim a.json


{
  "LoggingEnabled": {
      "TargetBucket": "bucket123-2",
      "TargetPrefix": "bucket123-1/"
   }
}


aws s3api put-bucket-logging --bucket bucket123-1 --bucket-logging-status file://a.json

aws s3api get-bucket-logging --bucket bucket123-1

 

-- 4. テストファイルのアップロード

echo test01 > test01.txt
echo test02 > test02.txt

aws s3api put-object --bucket bucket123-1 --key test01.txt --body test01.txt
aws s3api put-object --bucket bucket123-1 --key test02.txt --body test02.txt

aws s3 ls s3://bucket123-1 --recursive


-- 5. 動作確認

aws s3api head-object --bucket bucket123-1 --key test01.txt
aws s3api head-object --bucket bucket123-1 --key test02.txt


ロギングを有効化後数時間待つ


aws s3 ls s3://bucket123-2 --recursive


aws s3 cp s3://bucket123-2/bucket123-1/2021-11-17-17-11-27-B1F2B4D46FCDCB88 -
aws s3 cp s3://bucket123-2/bucket123-1/2021-11-18-11-36-39-75CA00E488928DC5 -


-- 6. クリーンアップ

-- バケットの削除
aws s3 ls
aws s3 rb s3://bucket123-1 --force
aws s3 rb s3://bucket123-2 --force