質問: アクセスコントロールリスト (ACL) の概要 AWS::CloudTrail::Trail ※以下公式ドキュメントより抜粋 ``` - Sid: AWSCloudTrailWrite Effect: Allow Principal: Service: cloudtrail.amazonaws.com Action: s3:PutObject Resource: !Sub arn:aws:s3:::${S3PaBucketlogs}/AWSLogs/${AWS::AccountId}/* Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control ```
回答: ここで言っている「バケットの所有者」とはユーザではなくAWSアカウントを指しているのかと思います。 これは当該アカウントのCloudTrailがS3にPutObjectするためのバケットポリシーを定義しているのであって、CloudTrailが何を記録するかについて設定するものではないです。 `bucket-owner-full-control` のACLはS3に上げられたオブジェクトに対する権限を定義した既定ACLで、それに沿った権限でS3にオブジェクトが保存される、ということでしょう。 なので、CloudTrailそのものの挙動には関係ありません。 CloudTrailについての設定をしているのはサンプルだとこの部分です。 何をどう記録するかはここの部分をドキュメントを読みながらいじれば良さそうです。 ``` myTrail: DependsOn: - BucketPolicy - TopicPolicy Type: AWS::CloudTrail::Trail Properties: S3BucketName: Ref: S3Bucket SnsTopicName: Fn::GetAtt: - Topic - TopicName IsLogging: true IsMultiRegionTrail: true ``` 参考 AWS S3 をマルチアカウントで使う時の注意 どちらかというとCloudFormationのドキュメントではなくCloudTrailのドキュメントを見たほうがいいかなと CloudTrail の Amazon S3 バケットのポリシー おまけ ちなみにですが、CloudTrailをオンにするStackSetsはAWSがサンプルを用意してくれています。 CloudFormationのコンソールから StackSets→StackSetsの作成 で サンプルテンプレートを使用 から参照するか、 AWS CloudFormation StackSets サンプルテンプレート にリンクがあるのでそこからダウンロードできます。