Amazon web services bucket策略中的条件仅允许特定服务
我正在寻找一个bucket策略,其中我有一个完整帐户的特定主体ID“arn:aws:iam::000000000000:root”,该帐户允许写入我的bucket 我现在想要实现一个条件,该条件只会使消防软管作为一种服务能够写入我的水桶 我目前的想法是:Amazon web services bucket策略中的条件仅允许特定服务,amazon-web-services,amazon-s3,bucket,Amazon Web Services,Amazon S3,Bucket,我正在寻找一个bucket策略,其中我有一个完整帐户的特定主体ID“arn:aws:iam::000000000000:root”,该帐户允许写入我的bucket 我现在想要实现一个条件,该条件只会使消防软管作为一种服务能够写入我的水桶 我目前的想法是: { "Sid": "AllowWriteViaFirehose", "Effect": "Allow", "Principal": {
{
"Sid": "AllowWriteViaFirehose",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::000000000000:root"
},
"Action": "s3:Put*",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
#*#
}
}
而#*#应为具体条件。
我已经试过一些方法,比如:
{“IpAddress”:{“aws:SourceIp”:“firehose.amazonaws.com”}
我认为请求将来自AWS的firehose端点。但似乎并非如此:-/
“条件”:{“StringLike”:{“aws:PrincipalArn”:“*Firehose*”}}
我认为这是可行的,因为firehose用于编写文件的角色应该包含一个会话名称,其中包含类似“firehose”的内容。但它不起作用
你知道怎么让它工作吗
谢谢
Ben不要创建存储桶策略 相反,将所需权限分配给IAM角色,并将该角色分配给您的Kinesis Firehose
请参阅:此答案适用于目标S3存储桶位于不同帐户中的情况 从中,方法是:
aws firehose update-destination --delivery-stream-name MyDeliveryStreamName --current-delivery-stream-version-id 1 --destination-id destinationId-000000000001 --extended-s3-destination-update file://MyFileName.json
MyFileName.json看起来如下所示:
{
"BucketARN": "arn:aws:s3:::MyBucketname",
"Prefix": ""
}
您可以通过主体:“service”:“firehouse.amazonaws.com”来识别Kinesis Firehose服务。请看下面的示例-
https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3
这不起作用。服务主体肯定是一个很好的方法,但只会启用整个服务,而不受来自哪个帐户的任何限制。请记住,这是一个两个帐户的设置。这绝对是一个更好的方法。但这不起作用,因为kinesis fh在另一个帐户中。