如何允许从 "owner" 下载 S3,同时限制存储桶策略中的引荐来源网址

How to allow S3 downloads from "owner" while restricting referers in Bucket Policy

我在我的网站上为产品下载存储桶设置了以下存储桶策略。它非常适合 http 流量。但是,此策略还阻止我直接从 S3 控制台或从 S3Hub 等第三方 S3 客户端下载。

如何添加或更改此策略,以便能够以登录所有者身份与我的文件 "normally" 交互,但仍然限制 http 流量如下?

{
    "Version": "2012-10-17",
    "Id": "http referer policy example",
    "Statement": [
        {
            "Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::downloads.example.net/*",
            "Condition": {
                "StringNotLike": {
                    "aws:Referer": [
                        "https://example16.herokuapp.com/*",
                        "http://localhost*",
                        "https://www.example.net/*",
                        "http://stage.example.net/*",
                        "https://stage.example.net/*",
                        "http://www.example.net/*"
                    ]
                }
            }
        }
    ]
}

删除:

"Principal": "*",

替换为:

"NotPrincipal": { "AWS": "Your-AWS-account-ID" },

该政策应仅适用于未经与您的帐户关联的凭据授权的请求。

请注意,由于其逻辑反转的安全隐患,NotPrincipal 应该只与 Deny 政策一起使用,而不应与 Allow 政策一起使用,只有少数例外。