【问题标题】:Cannot download S3 bucket contents even though bucket policy allows this ip address即使存储桶策略允许此 IP 地址,也无法下载 S3 存储桶内容
【发布时间】:2018-05-20 15:59:45
【问题描述】:

我正在尝试使用我的一个使用 curl 和 wget 的 ec2 实例从我的 S3 存储桶下载文件。我最初将存储桶策略设置为

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "HelpGetObject",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": ["arn:aws:s3:::name_of_bucket/*"],
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": [
                    "10.152.0.0/15",
                    "10.154.0.0/17",
                    "10.154.128.0/17"
                ]
            }
        }
    }
]
}

然后我转到我的实例,该实例的 IP 地址为 10-152-17-111,并使用和不使用引号进行 wget/curl

wget https://s3.amazonaws.com/name_of_bucket/my_file.tar.gz

这给了我一个 403 卷曲https://s3.amazonaws.com/name_of_bucket/my_file.tar.gz

这给了我一个 403

现在我更改了我的策略,以便所有 s3 操作都可用并且包含我的特定 IP 地址

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "HelpGetObject",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::name_of_bucket",
            "arn:aws:s3:::name_of_bucket/*"
        ],
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": [
                    "10.152.0.0/15",
                    "10.154.0.0/17",
                    "10.154.128.0/17",
                    "10.152.17.111/32"
                ]
            }
        }
    }
]
}

然后我运行了相同的命令,再次加引号和不加引号:

wget https://s3.amazonaws.com/name_of_bucket/my_file.tar.gz

返回 403

curl https://s3.amazonaws.com/name_of_bucket/my_file.tar.gz

返回 403

我不知道下一步该做什么,我只想从我的 s3 存储桶中下载我的文件。我应该有权限,但没有任何工作。

【问题讨论】:

    标签: amazon-s3


    【解决方案1】:

    在您的 s3 存储桶策略中,您提供了10/8 范围内的允许 IP。但是您要访问的 s3 端点不在您的私有 10/8 网络上;他们有公共 IP,您的请求将被视为来自您的公共 IP,而不是您的私有 IP。

    https://wtfismyip.com/text 是确定您的公共 IP 的一种方法。显然,这将根据您所在的网络而改变,并且也将适用于该网络上的任何其他人,这是基于 IP 的权限不是授予 S3 访问权限的常见方式的两个原因。如果您的 s3 内容确实是公开的并且不是机密的,您可以考虑在上传时将public-read ACL 附加到对象本身;那么桶策略是无关紧要的。

    tl;dr:将您的公共 IP,而不是您的私有 IP。

    【讨论】:

    • 将其更改为公共 IP 地址有效。我不敢相信我错过了,谢谢!
    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2021-01-19
    • 2023-03-31
    • 2018-05-21
    • 2011-09-10
    • 1970-01-01
    相关资源
    最近更新 更多