[英]Kinesis Firehose writes to S3 cloud watch subscription filter but the files are not readable
[英]Kinesis firehose writes to S3 but access denied
这一切都很好。 我可以下载它写入 S3 的数据,我可以查询它。
出于某种原因,如果我尝试下载或查询他们写入 S3 的任何内容,我会收到“访问被拒绝”。
我从我自己的 firehose(在第三个不同的帐户中)将数据发送到 S3 存储桶,我可以看到很好。 只有来自他们的 Firehose 的 Parquet 格式数据才会被拒绝访问。
故障排除
我比较了我的 firehose 的 object 和他们的 firehose 的 object 之间的对象级权限:(每个都来自不同的账户,进入我的 S3 存储桶所在的账户)。
这些是我可以正常阅读的 S3 对象。
受赠人:Object 所有者(外部帐户)规范 ID:4aXXXXXXedc8fd
Object :读
Object ACL :读、写
受赠人:您的 AWS 账户规范 ID:c43XXXXXXXX97958
Object :读
Object ACL :读、写
这些是我被拒绝访问的对象。
它们具有完全相同的权限,显然 object 所有者帐户 ID 是不同的,因为它是从不同帐户的 firehose 中写入的。
受赠人:Object 所有者(外部帐户)规范 ID:2efXXXXXXd5e2d
Object :读
Object ACL :读、写
受赠人:您的 AWS 账户规范 ID:c43XXXXXXXX97958
Object :读
Object ACL :读、写
问题:
为什么我在其他团队的 Firehose 创建的 S3 对象上收到“访问被拒绝”?
对象级权限看起来是一样的。
我们应用了两个修复程序,并且有效
Firehose 使用的目标帐户中的角色需要授予 S3:PutObjectAcl。 这是早期检查过的,但在重新检查后它已经消失了,所以它被添加回来了。
我们在发送帐户中关闭了 KMS 加密。 这是使用目标帐户无法访问的密钥。 这可以通过向写入数据的角色添加权限来解决,但为了调试,我们剥离了所有内容以使其作为基线工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.