CloudFront 標準アクセスログ
ちょっとどんな感じなのかな?と思って試してみただけです。
CloudFront の設定
標準ログ記録を「オン」にし、ログ保存用のバケットを選択すると以下のエラーが出ます。
外部アカウント c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0
からの許可必要のようです。
「Enable ACLs」 にてACLを有効にする事でログをオンにできました。
S3バケットのACL設定について確認してみると、以下の通り 外部アカウント
が追加されてます。
バケットの ACL
ディストリビューションを作成または更新してロギングを有効にすると、CloudFront はこれらのアクセス許可を使用してバケットの ACL を更新し、awslogsdelivery アカウントに FULL_CONTROL のアクセス許可を付与します。awslogsdelivery アカウントはログファイルをバケットに書き込みます。アカウントに ACL を更新するために必要なアクセス許可がない場合、ディストリビューションの作成または更新は失敗します。
とあり、 awslogsdelivery
のアカウントIDが c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0
です。
が、「ACL有効化」は推奨されてないようです..バケットポリシーで制御するのが良いと思いますが、まだできないのでしょうか・・
標準ログファイル配信のタイミング
- ディストリビューションの標準ログを 1 時間に最大で数回配信
- アクセスログの出力が確実に行われるのは、ログ記録が有効になって約 4 時間後から。
- この時間以前にも少しのアクセスログを取得できる場合もある
実際のログを見てみた
- 各カラム詳細はこちら
- アムステルダムのエッジロケーションから .env に GET リクエストが・・
- .env に対するGETなのでサーバー環境設定を取ろうとしているようです。
-
x-edge-location
にあるAMS1-P1
がアムステルダムです。 - POST アクセスもみられますね。
date | time | x-edge-location | sc-bytes | c-ip | cs-method | cs(Host) | cs-uri-stem | sc-status | cs(Referer) | cs(User-Agent) | cs-uri-query | cs(Cookie) | x-edge-result-type | x-edge-request-id | x-host-header | cs-protocol | cs-bytes | time-taken | x-forwarded-for | ssl-protocol | ssl-cipher | x-edge-response-result-type | cs-protocol-version | fle-status | fle-encrypted-fields | c-port | time-to-first-byte | x-edge-detailed-result-type | sc-content-type | sc-content-len | sc-range-start | sc-range-end |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2022/11/20 | 3:42:45 | AMS1-P1 | 682 | 109.206.243.95 | GET | xxx.cloudfront.net | /.env | 403 | - | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/81.0.4044.129%20Safari/537.36 | - | - | Error | xx | xxxx.xxx | http | 226 | 0.001 | - | - | - | Error | HTTP/1.1 | - | - | 44376 | 0.001 | ClientGeoBlocked | text/html | 212 | - | - |
2022/11/20 | 3:42:45 | AMS1-P1 | 677 | 109.206.243.95 | POST | xxx.cloudfront.net | / | 403 | - | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/81.0.4044.129%20Safari/537.36 | - | - | Error | xx | xxxx.xxx | http | 292 | 0.001 | - | - | - | Error | HTTP/1.1 | - | - | 44378 | 0.001 | InvalidRequestMethod | text/html | 212 | - | - |
まとめ
- 雰囲気がわかった
- Athena でいい感じにクエリしてみる
- バケットポリシーで制御できるのか調べます