【问题标题】:Amazon S3 files access policy based on IP Address基于 IP 地址的 Amazon S3 文件访问策略
【发布时间】:2012-07-12 13:05:46
【问题描述】:

有没有办法根据客户端 IP 地址限制对存储在 Amazon S3 中的文件的访问?

我有一个文件存储在那里,应该只能通过特定的 IP 地址访问。如何做到这一点?

【问题讨论】:

    标签: amazon-web-services security amazon-s3 policy


    【解决方案1】:

    是的,虽然我自己没有使用过。

    S3 支持使用“访问策略语言”对存储桶和其中的对象进行精细控制。有特定的白名单和黑名单 IP 声明可用。但是,您必须编写 APL 语句并上传它们。

    http://docs.amazonwebservices.com/AmazonS3/latest/dev/AccessPolicyLanguage.html

    这里有 2 个条件部分示例:

    白名单

    "Condition" :  {
           "IpAddress" : {
              "aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
          }
    }
    

    黑名单

    "Condition" :  {
           "NotIpAddress" : {
              "aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
          }
    }
    

    【讨论】:

    • 我没有在特定于 IP 的文档政策中找到。你能提供它的 JSON 示例吗?
    • 我用 IP 条件的例子修改了我的答案。
    • 它不起作用...我试过了,资源仍然可以访问:{ "Version": "2008-10-17", "Id": "S3PolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": { "AWS": "" }, "Action": "s3:", "Resource": "arn:aws:s3:::byBucketName", "条件": { "NotIpAddress": { "aws:SourceIp": "0.0.0.0/0" }, "IpAddress": { "aws:SourceIp": "192.168 .143.188/32" } } } ] }
    • 你不需要结合白名单+黑名单afaik。它不像防火墙链。只是白名单,因为这是我认为你所追求的。
    • @timpeterson 这表示提供的 IP 地址中的 32 位中有多少位应被视为子网掩码。在这些情况下,由于这些规则匹配地址的前 3 个八位字节(即 192.168.176),系统将仅使用地址的网络部分(前 24 位)来确定是允许还是禁止客户。这也可能有所帮助:ripe.net/internet-coordination/press-centre/…
    【解决方案2】:

    Amazon 在其 S3 文档的“存储桶策略示例”下对此进行了描述,地址为 Restricting Access to Specific IP Addresses

    此语句中的条件标识 54.240.143.* 允许的 IP 地址范围,但有一个例外:54.240.143.188。

    {
      "Version": "2012-10-17",
      "Id": "S3PolicyId1",
      "Statement": [
        {
          "Sid": "IPAllow",
          "Effect": "Allow",
          "Principal": "*",
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::examplebucket/*",
          "Condition": {
             "IpAddress": {"aws:SourceIp": ["54.240.143.0/24", "1.2.3.4/32" ]},
             "NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"} 
          } 
        } 
      ]
    }
    

    您可以在 AWS S3 控制台中添加类似的内容。选择您的存储桶,单击属性选项卡,然后单击权限。单击“添加存储桶策略”并将其粘贴到弹出对话框的表单中。

    我修改了 Amazon 的示例,以显示如何通过提供 JSON 数组而不是字符串来将多个 IP 范围包含在策略中。 “1.2.3.4/32”的“aws:SourceIp”条目表示单个 IP 地址 1.2.3.4 也被授予访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 2013-08-05
      • 1970-01-01
      • 2015-10-19
      • 2019-10-30
      相关资源
      最近更新 更多