限制访问S3托管网站而不将ips列入白名单

时间:2017-07-06 14:45:28

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

我们在AWS S3上托管了一个网站,我们打算仅由有限的一群人访问。现在,我们白色列出了允许的IP,如Restrict access to website hosted on S3中所述。

但是,一些必须访问此网站的人没有静态ips,这迫使我们不断更新AWS政策上列入白名单的ips。

我很确定像客户端证书这样的东西应该可行,但我不知道如何在AIM策略方面实现它。任何其他(更简单的)替代方案不依赖于IP是静态的吗?我猜测在这种情况下向AWS添加ssh密钥不会有任何好处,对吧?

1 个答案:

答案 0 :(得分:1)

一种替代方法是设置基于用户的访问控制。您可以使用以下AWS服务来执行此操作。

  • AWS Cognito UserPools
  • AWS API Gateway
  • AWS S3

步骤如下

  1. 创建AWS Cognito UserPool
  2. 使用经过身份验证的IAM角色在那里创建用户,以允许API网关执行。
  3. 使用Cognito Login SDK
  4. 在S3中创建公共登录页面
  5. 设置API网关并传递给S3 AWS Service,并添加Cognito UserPool授权程序,创建需要的IAM角色(检查this示例)
  6. 设置完成后,用户应该可以通过API网关登录和访问S3。