【发布时间】:2019-08-04 13:43:00
【问题描述】:
我有一个充当静态网站的 S3 存储桶,我正在使用 API Gateway 向它分配流量。我知道 CloudFront 在这里是一个更好的选择,但请不要推荐它。这不是一个选项,由于我不会进入的原因。
我正在通过配置 {proxy+} 资源来完成我的解决方案。下图:
我只想允许从 API Gateway 代理资源访问 S3 网站。 有没有办法可以为代理资源提供执行角色,类似于您可以提供资源的执行角色以运行 lambda 函数?下面的 Lambda 执行角色示例:
代理资源的集成请求部分似乎没有执行角色:
或者有没有一种方法可以为整个 API Gateway 分配一个角色,为其提供访问 S3 存储桶的权限?
我尝试过的其他事情:
-
编辑存储桶策略以仅允许来自 API 网关服务的流量:
{ “版本”:“2012-10-17”, "Id": "apiGatewayOnly", “陈述”: [ { "Sid": "apiGW", “效果”:“允许”, “主要的”: { “服务”:[“api-gateway-amazonaws.com”] }, "动作": "s3:GetObject", "资源": "http://test-proxy-bucket-01.s3-website.us-east-2.amazonaws.com/*" } ] }
-
编辑存储桶策略以仅允许来自 API Gateway 的 URL 的流量:
{ “版本”:“2012-10-17”, "Id": "http 引用策略示例", “陈述”: [ { "Sid": "允许获取来自 www.example.com 和 example.com 的请求。", “效果”:“允许”, “校长”:“”, "动作": "s3:GetObject", "资源": "http://test-proxy-bucket-01.s3-website.us-east-2.amazonaws.com/", “健康)状况”: { “类似字符串”:{ “aws:推荐人”:[ "https://xxxxxxx.execute-api.us-east-2.amazonaws.com/prod/", "http://xxxxxxxx.execute-api.us-east-2.amazonaws.com/prod" ] } } } ] }
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-api-gateway