对于我当前的用例,我正在使用 Kinesis 交付流/firehose 来流式传输 Firewall Manager 日志。所以目前的设置是 Kinesis 在账户 A(与防火墙管理器相同的账户)中,并将日志流式传输到账户 B 中的 S3 存储桶中。下面是附加到 Kinesis 角色的当前 IAM 策略(能够成功发送数据到 S3)。还向目标存储桶添加了存储桶策略,以允许 Kinesis 角色在 S3 存储桶上执行以下操作:
data "aws_iam_policy_document" "firehose_policy" {
statement {
actions = ["logs:PutLogEvents"]
resources = ["arn:aws:logs:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:log-group:/aws/kinesisfirehose/aws-waf-logs-*"]
}
statement {
actions = [
"s3:AbortMultipartUpload",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:PutObject",
"s3:PutObjectAcl"
]
resources = [
"arn:aws:s3:::<name of destination bucket>",
"arn:aws:s3:::<name of destination bucket>/*"
]
}
}
但是现在有一个额外的要求,即使用 CMK 在 Kinesis firehose 上启用服务器端加密。在 AWS 上看到了这个文档,但是我并不完全理解它并提出以下问题:https://docs.aws.amazon.com/streams/latest/dev/permissions-user-key-KMS.html
创建 KMS CMK 后,我可以问一下我需要添加到密钥策略(如果需要)和 kinesis firehose 流角色的权限是什么吗?