AWS WAF のログを Kinesis Firehose を使って別のアカウントに保存したい時の CloudFormation Templete です
2020.06.29
クロスアカウントでのログ収集
監査目的などで、1つのアカウントに全て集約したい!という時にハマったところがあるのでメモを残しておきます
説明資料と問題点
何が問題だったかというと、「コンソールから別アカウントのS3を指定できない」ということでした。
設定した後のIAMロールもS3のバケットポリシーに書いてあげないといけないし。
CloudFormation 書いちゃおう!ということで書いてみました。
CloudFormation Templete がこちら
ロググループとかの名前の部分とかを入力に集約するべきな気がするけど、とりあえず使えるのでおっけー
(GitHubが具合悪そうなので、あとでリンク追加)
出力のところに今回のCloudFormationで作成したIAMロールのARNが出力されるので、そちらを保存したいアカウントでS3のバケットポリシーに追記しましょう。
バケットポリシーの追加
以下のXXXXXXXXXXXX には 適用した環境でのAWSアカウント12桁IDが入ります
arnごと出力されるはずなので、そちらをコピペしてください
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Kinesis Firehose to S3",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::XXXXXXXXXXXX:role/FirehoseToCrossAccountS3Role"
]
},
"Action": [
"s3:AbortMultipartUpload",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
参考リンク
以上、オープンレポートでした
技術的なことで調べたり勉強したことを残していきます。日報をブログでやってみています
きっとゆるめに脱線することもあると思いますが、ゆるめに見守っていただければと思います。
参考にさせてもらったみんなのアウトプットに最大限のリスペクトと感謝を。
そして、この記事が誰かの役に立つことを願って
1