首页 文章

安全的Amazon Gateway API只能从S3存储桶中的内容访问

提问于
浏览
1

我有一个暴露于公共互联网的API,我是通过亚马逊的Gateway API服务创建的 . API调用触发查询后端数据库的Lambda函数 . 我创建的API由S3静态网页用于获取数据 .

我想保护我的API,以便只有我的S3存储桶(index.html)的内容才有权访问我的API . 我想阻止人们直接查询我的API并使用curl请求等来抓取数据 . 我已经阅读了一些关于IAM角色,Cognito和Lambda权限模型的内容,但我不确定使用所有这些不同的工具来保护我的API .

保护我的API的最佳方法是什么,以便只有我的S3存储桶中的内容才有权访问我的API?

1 回答

  • 6

    那么你无法真正授权S3访问API,因为S3不访问你的API - S3将html(js / css和其他静态资产)传递给访问你网站的用户的客户端(网络浏览器) . 然后,从客户端调用您的API .

    另外,亚马逊强制要求API网关公开(有意义但你不能在VPC背后有API)

    我建议你仔细阅读Security and Authorization of the FAQ

    你可以做什么:

    • 签署对API网关的请求,但它需要有其他东西生成html代码给客户端(据我所知,S3本身不能做到 but I like to be wrong

    • Amazon API Gateway可以生成客户端SSL证书,以验证后端的请求

    • 设置了一些限制(见下文)

    如果您害怕滥用,也可以阅读常见问题解答

    问:如何解决或阻止API威胁或滥用? Amazon API Gateway支持API中每个方法的限制设置 . 您可以为REST API中的每种方法设置标准速率限制和每秒突发速率限制 . 此外,Amazon API Gateway可自动保护您的后端系统免受分布式拒绝服务(DDoS)攻击,无论是使用伪造请求(第7层)还是SYN Flood(第3层)攻击 .

相关问题