问题描述
我正在将数据从AWS IoT核心发送到Kinesis数据流。数据流最终将设备数据转储到名为dtmu-mock-bucket-1
的S3存储桶中。 Kinesis传递流使用KinesisFirehoseServiceRole-s3_bucket_pol-us-east-2-1600375360569
角色(具有对S3的完全访问权限)。
因此,如果未指定S3策略,则将数据写入存储桶。当使用"Effect":"Allow"
和Principal:arn:aws:iam::247590354562:role/service-role/KinesisFirehoseServiceRole-s3_bucket_pol-us-east-2-1600375360569
定义存储桶策略时,一切也按预期进行。
但是,当存储桶策略如下时,我会遇到问题。基本上NotPrincipal
不能按预期工作。即使在NotPrincipal
中将Kinesis角色作为例外,S3存储桶仍会通过以下策略拒绝所有来源(我的控制台用户和kinesis角色)的PUT
{
"Version": "2012-10-17","Id": "MYBUCKETPOLICY","Statement": [
{
"Sid": "KinesisDeny","Effect": "Deny","NotPrincipal": {
"AWS": [
"arn:aws:iam::247590354562:role/service-role/KinesisFirehoseServiceRole-s3_bucket_pol-us-east-2-1600375360569","arn:aws:iam::247590354562:root"
]
},"Action": [
"s3:PutObject","s3:PutObjectAcl"
],"Resource": [
"arn:aws:s3:::dtmu-mock-bucket-1/*","arn:aws:s3:::dtmu-mock-bucket-1"
]
}
]
}
即使针对目标S3存储桶采用了上述策略,是否有任何有关kinesis传递流日志为何显示S3访问被禁止的指针?基本上,我希望S3存储桶策略取代为dtmu-mock-bucket-1
存储桶分配给用户的IAM角色。只有运动学应该能够PUT
{@ 1}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)