当前位置: 首页 > 知识库问答 >
问题:

AWS API网关错误:API网关没有将提供的角色作为S3代理的权限

海典
2023-03-14

也有类似的问题,但它们都有我尝试过的答案。我不确定我可能做错了什么,但任何帮助都将不胜感激。

方法执行测试产生的错误;提交请求:

Execution log for request test-request
Mon Oct 16 10:13:47 UTC 2017 : Starting execution for request: test-invoke-request
Mon Oct 16 10:13:47 UTC 2017 : HTTP Method: PUT, Resource Path: /pop-data-xmlz/test.xml
Mon Oct 16 10:13:47 UTC 2017 : Method request path: {item=test.xml, folder=pop-data-xmlz}
Mon Oct 16 10:13:47 UTC 2017 : Method request query string: {}
Mon Oct 16 10:13:47 UTC 2017 : Method request headers: {Content-Type=application/xml}
Mon Oct 16 10:13:47 UTC 2017 : Method request body before transformations: <test>
test string
</test>
Mon Oct 16 10:13:47 UTC 2017 : Request validation succeeded for content type application/json
Mon Oct 16 10:13:47 UTC 2017 : Execution failed due to configuration error: API Gateway does not have permission to assume the provided role
Mon Oct 16 10:13:47 UTC 2017 : Method completed with status: 500

我正在学习S3的API网关教程(http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html)以及尝试执行PUT请求。

API网关位于us-东-1,S3存储桶位于us-东-2。

创建的角色:APIGatewayProxyCustom

共有1个答案

暴博远
2023-03-14

要解决此问题,请转到IAM中角色的定义,并选择信任关系选项卡。从这里编辑策略,并为主体服务添加apigateway.amazonaws.com,如下所示。

这将授予API网关除现有Lambda权限外,还可以担任运行函数的角色。

{
   "Version": "2012-10-17",
   "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
            "Service": ["apigateway.amazonaws.com","lambda.amazonaws.com"]
        },
        "Action": "sts:AssumeRole"
      }
    ]
}
 类似资料:
  • 我有一个充当静态网站的S3 bucket,我正在使用API网关向它分发流量。我知道CloudFront在这里是一个更好的选择,但请不要建议它。这不是一个选择,由于原因我不想说。 我正在通过配置{proxy+}资源来完成我的解决方案。下图: 我想只允许从API网关代理资源访问S3网站。是否有一种方法可以为代理资源提供一个执行角色,类似于如何为资源提供一个执行角色来运行lambda函数?Lambda执

  • null 我倾向于认为它是第一个,但在这种情况下,nginx不会是应用程序的入口...(这是个问题吗?)

  • 问题内容: 我正在尝试使用AWS Lambda建立一个hello world示例,并通过api网关为其提供服务。我单击了“创建Lambda函数”,这将设置api通道并选择了Blank Function选项。我添加了在AWS网关入门指南中找到的lambda函数: 问题是,当我向它发出GET请求时,它返回了502响应。并且日志显示“由于配置错误,执行失败:Lambda代理响应格式错误”。 问题答案:

  • 我试图用AWS lambda建立一个hello world示例,并通过api网关为其服务。我点击了“创建一个Lambda函数”,它设置了api网关,并选择了空白函数选项。我添加了在AWS网关入门指南上找到的lambda函数: 问题是,当我向它发出GET请求时,它返回502响应。日志上写着“由于配置错误执行失败:Lambda代理响应不正确”。

  • 我用无服务器创建了一个lambda函数。我用lambda控制台测试了lambda函数,它工作得很好。但是,在转换之前,我得到了endpoint响应体:null和执行失败,原因是配置错误:当我试图为该函数调用APIendpoint时,错误的Lambda代理响应。 并且调用了查询字符串参数的endpoint:。 我不知道为什么我的函数已经以这里的格式返回了响应,但仍然得到了格式错误的Lambda代理响