~~NOCACHE~~ ## S3バケットにログを配信する KinesisDataFirehoseを中継してS3バケットにログを配信する設定手順を記載します。 ### KinesisDataFirehoseの設定手順 --> Create delivery stream^# --> New delivery stream# 以下の設定をし[Next]をクリックします。 ・Delivery stream name:配信ストリームの名前を指定します。※下記のように用途によって名前に制約がある場合があります。 https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/file-access-auditing.html#faa-log-destinations ・Source:[Direct PUT or other sources]を選択します。 https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/encryption.html {{:Aws:KinesisDataFirehose:pasted:20210820-160347.png? direct 600x0}} <-- --> Process records# 以下の設定をし[Next]をクリックします。 ・Data transformation:Disabled ※ログのデータ変換を行う場合は[Enabled]を選択し、変換処理用のLambda関数を選択します。 ・Record format conversion:Disabled ※JSON形式のソースレコードを、Glueで定義されたテーブルのスキーマで変換する場合は[Enabled]を選択します。 {{:Aws:KinesisDataFirehose:pasted:20210820-162123.png? direct 600x0}} <-- --> Choose a destination# 以下の設定をし[Next]をクリックします。 ・Destination:Amazon S3 ・S3 bucket:配信するS3バケットを選択します。 ・S3 prefix:必要に応じてプレフィックスを設定します。 https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/s3-prefixes.html ・S3 error prefix:必要に応じてエラー時のプレフィックスを設定します。 https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/s3-prefixes.html#prefix-rules {{:Aws:KinesisDataFirehose:pasted:20210820-162544.png? direct 600x0}} <-- --> Configure settings# 以下の設定をし[Next]をクリックします。 ■S3 buffer conditions ・Destination:Amazon S3 https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/create-configure.html#buffer ・Buffer size:5MB(デフォルト) ・Buffer interval:300Seconds(デフォルト) ■S3 compression and encryption https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/create-configure.html#compression-encryption ・S3 compression:Zip ・S3 encryption:Disabled ※暗号化する場合はKMSキーを選択します。 ■Error logging https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/monitoring-with-cloudwatch-logs.html ・Error logging:Enabled ※データ配信が失敗した場合の、CloudWatchLogsへの記録を無効にする場合は[Disabled]を選択します。 ■Tags 必要に応じて設定します。 ■Permissions ・IAM role:IAMロールを指定します。 ※カスタムロールを作成する場合は下記を参考にしてください。 --> カスタムロール^ ・信頼関係:firehose.amazonaws.com ・カスタムポリシー { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": [ "arn:aws:glue:ap-northeast-1:[アカウントID]:catalog", "arn:aws:glue:ap-northeast-1:[アカウントID]:database/%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%", "arn:aws:glue:ap-northeast-1:[アカウントID]:table/%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%/%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::[配信するS3バケット]", "arn:aws:s3:::[配信するS3バケット]/*" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "arn:aws:lambda:ap-northeast-1:[アカウントID]:function:%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%" }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:ap-northeast-1:[アカウントID]:key/%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.ap-northeast-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%/*" ] } } }, { "Sid": "", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:ap-northeast-1:[アカウントID]:log-group:/aws/kinesisfirehose/aws-fsx-stream:log-stream:*" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:ap-northeast-1:[アカウントID]:stream/%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:ap-northeast-1:[アカウントID]:key/%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%" ], "Condition": { "StringEquals": { "kms:ViaService": "kinesis.ap-northeast-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:kinesis:arn": "arn:aws:kinesis:ap-northeast-1:[アカウントID]:stream/%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%" } } } ] } <-- {{:Aws:KinesisDataFirehose:pasted:20210820-164610.png? direct 600x0}} <-- --> Review# 確認画面で問題なければ[Create delivery stream]をクリックします。 {{:Aws:KinesisDataFirehose:pasted:20210820-164927.png? direct 600x0}} <-- <-- {{tag>AWS KinesisDataFirehose}}