我有一个充当静态网站的S3 bucket,我正在使用API网关向它分发流量。我知道CloudFront在这里是一个更好的选择,但请不要建议它。这不是一个选择,由于原因我不想说。
我正在通过配置{proxy+}资源来完成我的解决方案。下图:
我想只允许从API网关代理资源访问S3网站。是否有一种方法可以为代理资源提供一个执行角色,类似于如何为资源提供一个执行角色来运行lambda函数?Lambda执行角色示例如下:
代理资源的集成请求部分似乎没有执行角色:
或者有没有一种方法我可以为整个API网关分配一个角色,为它提供访问S3 bucket的权限?
我尝试过的其他事情:
>
编辑桶策略以仅允许来自API网关服务的流量:
{“版本”:“2012-10-17”,“ID”:“APIGatewayonly”,“语句”:[{“SID”:“APIGW”,“Effect”:“Allow”,“主体”:{“Service”:[“API-Gateway-Amazonaws.com”]},“Action”:“S3:GetObject”,“Resource”:“http://test-proxy-bucket-01.s3-website.us-east-2.amazonaws.com/*”}]}
编辑bucket策略以仅允许来自API网关URL的流量:
{“版本”:“2012-10-17”,“ID”:“HTTP引用策略示例”,“语句”:[{“SID”:“允许从www.example.com和example.com发出的get请求”,“Effect”:“允许”,“Principal”:“”,“Action”:“S3:GetObject”,“Resource”:“http://test-proxy-bucket-01.s3-website.us-east-2.amazonaws.com/”,“Condition”:{“StringLike”:{“AWS:referer”:[“
apigateway.amazonaws.com
详见单据。
也有类似的问题,但它们都有我尝试过的答案。我不确定我可能做错了什么,但任何帮助都将不胜感激。 方法执行测试产生的错误;提交请求: 我正在学习S3的API网关教程(http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html)以及尝试执行PUT请求。 API网
我试图弄清楚如何从运行在VPC中的lambda访问Api网关服务Api(也称为“管理Amazon Api网关”)。不,我不是试图在私有API中调用资源方法(我知道如何创建VPC接口endpoint),只是调用AWS服务方法(,FWIW,使用Python boto3客户机)。希望这是有意义的,很难清楚地表达这与如此多的“API”重载在这里。当前的尝试以超时失败,所以我认为这是与VPC相关的,但我不确
我的VPC中有Public和Pvt子网。我在Pvt子网上有一些运行在EC2上的服务,需要通过外部/移动资源访问。我如何做到这一点-是VPCLink和NLB的方式来做到这一点,还是任何其他方式,创建一些访问点在公共子网(??)。Lambda似乎是答案(现在AWS中几乎所有的东西)--甚至不确定那种访问对于Pvt子网中的资源是如何工作的。 同样,同一个Pvt子网可以访问外部资源(在AWS之外)-我如何
我们有一个位于S3上的静态web站点。 从页面中,我们执行一个jquery ajax post到AWS api Gateway/lambda函数。 我不确定选项是如何工作的,但当我们启用“Chrome allow cross origin插件”时,所有工作都很好(我们得到了JSON响应), 当插件被禁用时,我们得到错误“Request header field access-control-all
null 我倾向于认为它是第一个,但在这种情况下,nginx不会是应用程序的入口...(这是个问题吗?)
我有一个aws lambda函数,它返回以下响应: 但是我在前端角度应用程序中得到以下误差。 CORS策略阻止从来源“HTTP://127.0.0.1:8080”访问位于“https://xxxxxxxxx.execute-api.us-east-1.amazonaws.com/dev/price”的XMLHttpRequest:对飞行前请求的响应没有通过访问控制检查:它没有HTTP ok状态。