AWS API Gateway错误:API Gateway无权承担提供的角色作为S3代理

Kurt Campher:

有类似的问题,但它们有我尝试过的答案。我不确定自己可能做错了什么,但会有所帮助。

测试细节: 在此处输入图片说明

方法执行测试中的错误;放置请求:

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

我正在关注API Gateway To S3教程(http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html),并尝试执行PUT请求。

API网关位于us-east-1中,而S3存储桶位于us-east-2中。

创建的角色:APIGatewayProxyCustom

附加了一个策略(pop-date-ingest),该策略允许对S3存储桶进行PUT请求。 在此处输入图片说明

角色具有信任关系集: 在此处输入图片说明

Vijayanath Viswanathan:

要解决此问题,请在IAM中转到“角色”的定义,然后选择“ 信任关系”选项卡。从此处编辑策略,并为Principal Service添加apigateway.amazonaws.com如下所示。

除了现有的Lambda权限外,这还将使API Gateway能够承担角色来运行您的功能。

{
   "Version": "2012-10-17",
   "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
            "Service": ["apigateway.amazonaws.com","lambda.amazonaws.com"]
        },
        "Action": "sts:AssumeRole"
      }
    ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章