gpt4 book ai didi

amazon-web-services - 用于限制对 Cloudflare IP 地址的访问的 S3 存储桶策略

转载 作者:行者123 更新时间:2023-12-04 03:40:17 27 4
gpt4 key购买 nike

我将使用 Cloudflare 作为我的 S3 网站存储桶的代理,以确保用户无法使用存储桶 URL 直接访问该网站。

  • 我使用自定义域为静态网站托管设置了一个 S3 存储桶:www.mydomain.com并上传了我的 index.html文件。
  • 我有一个 CNAMEwww.mydomain.com 记录-> www.mydomain.com.s3-website-us-west-1.amazonaws.com和 Cloudflare Proxy启用。

  • 问题:我正在尝试将存储桶策略应用于 Deny访问我的网站存储桶,除非请求来自 Cloudflare IP addresses 的范围.我正在关注 official AWS docs这样做,但每次我尝试访问我的网站时,我都会收到 Forbidden 403 AccessDenied错误。
    这是我的存储桶策略:
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "CloudflareGetObject",
    "Effect": "Deny",
    "NotPrincipal": {
    "AWS": [
    "arn:aws:iam::ACCOUNT_ID:user/Administrator",
    "arn:aws:iam::ACCOUNT_ID:root"
    ]
    },
    "Action": "s3:GetObject",
    "Resource": [
    "arn:aws:s3:::www.mydomain.com/*",
    "arn:aws:s3:::www.mydomain.com"
    ],
    "Condition": {
    "NotIpAddress": {
    "aws:SourceIp": [
    "2c0f:f248::/32",
    "2a06:98c0::/29",
    "2803:f800::/32",
    "2606:4700::/32",
    "2405:b500::/32",
    "2405:8100::/32",
    "2400:cb00::/32",
    "198.41.128.0/17",
    "197.234.240.0/22",
    "190.93.240.0/20",
    "188.114.96.0/20",
    "173.245.48.0/20",
    "172.64.0.0/13",
    "162.158.0.0/15",
    "141.101.64.0/18",
    "131.0.72.0/22",
    "108.162.192.0/18",
    "104.16.0.0/12",
    "103.31.4.0/22",
    "103.22.200.0/22",
    "103.21.244.0/22"
    ]
    }
    }
    }
    ]
    }

    最佳答案

    默认情况下,AWS 拒绝所有请求。 Source
    您的策略本身不会授予管理员 [或任何其他用户] 的访问权限,它只是从明确拒绝的主体列表中省略了他。为了允许他访问资源,另一个政策声明 必须使用 "Effect": "Allow"明确允许访问。 Source
    现在,我们必须创建两个策略声明:- 第一个是允许,第二个是拒绝。那么,最好只有一个“允许”特定 IP 的策略。
    最好不要将简单的事情复杂化,例如将 Deny 与 Not Principal 和 NotIPAddress 一起使用。甚至 AWS 说:

    Very few scenarios require the use of NotPrincipal, and we recommend that you explore other authorization options before you decide to use NotPrincipal. Source


    现在,问题来了 如何将 Cloudflare IP 列入白名单??? .
    让我们用一个简单的方法。以下是政策。替换您的存储桶名称和 Cloudflare Ip。我已经测试过了,它正在运行。
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "AllowCloudFlareIP",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:getObject",
    "Resource": [
    "arn:aws:s3:::my-poc-bucket",
    "arn:aws:s3:::my-poc-bucket/*"
    ],
    "Condition": {
    "IpAddress": {
    "aws:SourceIp": [
    "IP1/32",
    "IP2/32"
    ]
    }
    }
    }
    ]
    }

    关于amazon-web-services - 用于限制对 Cloudflare IP 地址的访问的 S3 存储桶策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66181725/

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