~~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}}