gpt4 book ai didi

amazon-web-services - 通过 IP 限制对 S3 存储桶的访问而不影响 IAM 凭证

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

我在 AWS 上有以下用例:

  • 用于“托管”AngularJS 中构建的仅限内部的 Web 应用程序的存储桶
  • Auto Scaling 组中的服务器池,可以修改存储桶的内容

  • 为了确保存储桶内容仅在内部提供,我使用了以下存储桶策略来限制对我们静态 IP 的访问:
    {
    "Statement": [
    {
    "Effect": "Deny",
    "Principal": {
    "AWS": "*"
    },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::mybucket.myhost.com/*",
    "Condition": {
    "NotIpAddress": {
    "aws:SourceIp": [
    "x.x.x.x/32"
    ]
    }
    }
    }
    ]
    }

    这在阻止我们办公室外的任何人通过 HTTP 访问存储桶方面非常有效。完美的。

    但是,Auto Scaling 组中的服务器(使用 IAM 角色对存储桶拥有完全权限)无法访问存储桶。似乎 S3 存储桶策略优先。我无法将他们的 IP 添加到存储桶策略,因为它是一个扩展组,并且他们的 IP 会定期更改。

    我尝试了一些解决方案,但没有任何乐趣:
  • 使用我的 IAM 角色的 ARN 作为原则,指定带有“允许”的第二条语句
  • 尝试寻找允许 EC2 安全组完全访问的方法,但找不到选项
  • 尝试寻找使 IAM 角色优先于存储桶策略的方法

  • 我觉得这应该很简单,但我现在感到沮丧:(

    最佳答案

    我意识到我存储桶中的所有对象都有公开读取 ACL。我删除了公共(public)读取 ACL,因此对象默认为“拒绝”。然后,我能够使用这样的策略来允许访问我们的办公室 IP 和我们的 Auto Scaling EC2 服务器,它们由它们的 IAM 角色标识:

    {
    "Statement": [
    {
    "Effect": "Allow",
    "Principal": {
    "AWS": "*"
    },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::mybucket.myhost.com/*",
    "Condition": {
    "IpAddress": {
    "aws:SourceIp": [
    "x.x.x.x/32"
    ]
    }
    }
    },
    {
    "Effect": "Allow",
    "Principal": {
    "AWS": "arn:aws:iam::xxxxxxxxxxxx:role/xxxxxx"
    },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::mybucket.myhost.com/*"
    }
    ]
    }

    关于amazon-web-services - 通过 IP 限制对 S3 存储桶的访问而不影响 IAM 凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26337712/

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