gpt4 book ai didi

amazon-s3 - 拒绝访问用户代理以访问 AWS S3 中的存储桶

转载 作者:行者123 更新时间:2023-12-02 15:21:39 25 4
gpt4 key购买 nike

在我的 S3 日志中,我看到来自 NSPlayer 的多个请求,所有请求如下所示:

[29/Feb/2016:23:07:27 +0000] 188.71.221.62 - 07231C9924A44C67 REST.GET.OBJECT 16639/tracks/7ed00e05502aeb383d8a1abde2.mp3

"GET /bucket/16639/tracks/7ed00e05502aeb383d8a1abde2.mp3 HTTP/1.1" 200 - 4122705 5639543 6305 58

"http://m.xxxxxxw.com /" "NSPlayer/12.00.9651.0000 WMFSDK/12.00.9651.0000" -

我想拒绝访问此用户代理,并且我已经编写了存储桶策略和用户策略来拒绝访问。但是,访问仍然没有被拒绝。你能帮我弄清楚为什么会这样吗?

这是存储桶策略:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmtxxxxxxxxx0",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxx3:user/bucket"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*",
"Condition": {
"StringNotLike": {
"aws:UserAgent": "NSPlayer"
}
}
}
]
}

请告诉我如何解决这个问题!

最佳答案

这是我从亚马逊收到的回复:

您几乎拥有正确的存储桶策略来阻止来自该用户代理的访问。棘手的部分是您允许通过公共(public)读取 ACL 访问单个对象,因此您不能在存储桶上使用限制性“允许”语句。您需要明确拒绝该用户代理执行 GET 请求。

例子:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*",
"Condition": {
"StringLike": {
"aws:UserAgent": "*NSPlayer*"
}
}
}
]
}

如果 NSPlayer 在 UserAgent 字符串中,上述策略将阻止从任何地方访问存储桶。

此外,仅供引用,存储桶策略优先于用户策略。

关于amazon-s3 - 拒绝访问用户代理以访问 AWS S3 中的存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35739337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com