経緯
VPCにエンドポイントを作成して、S3にアクセスする設定にしたものの、本当にエンドポイント経由でアクセスされているか確認したかったので、検証してみました。
確認する方法は、
- S3のサーバーアクセスログ
- CloudTrailのデータイベントの記録
がありますが、今回はCloudTrailで検証していきます。
CloudTrailの設定は省略させていただきます。(データイベントの記録を有効化してください)
※CloudTrailコンソールのイベント履歴には、データイベントは記録されませんので、S3バケットに保存しているログで確認ください。
確認
EC2インスタンスからS3へファイルのアップロード
下記のコマンドを実行して、S3にファイルをアップロードします。
aws s3 cp test.txt s3://bucketname/
暫くして、CloudTrailのログを確認します。
sourceIPAddressがEC2インスタンスのプライベートIPアドレスとなっている事が確認できました。
eventVersion: "1.08",
userIdentity: {},
eventTime: "2021-06-19T05:09:24Z",
eventSource: "s3.amazonaws.com",
eventName: "PutObject",
awsRegion: "ap-northeast-1",
sourceIPAddress: "10.0.0.236",
userAgent: "[aws-cli/1.18.147 Python/2.7.18 Linux/4.14.232-176.381.amzn2.x86_64 botocore/1.18.6]",
requestParameters: {
bucketName: "bucketname",
Host: "bucketname.s3.ap-northeast-1.amazonaws.com",
key: "test.txt"
},
responseElements: {
x-amz-server-side-encryption: "aws:kms",
x-amz-server-side-encryption-aws-kms-key-id: "arn:aws:kms:ap-northeast-1:xxxxxxxx:key/xxxxxxxx"
},