【发布时间】:2019-05-01 12:38:12
【问题描述】:
如何使用无服务器框架设置跨账户自定义授权?如果使用 sls 框架配置的自定义授权器与需要授权的函数位于同一 AWS 账户中,则它可以正常工作。
我现在拥有的是已部署授权功能的组织根帐户。在作为组织成员的第二个帐户上,我部署了一个无服务器服务,其中包含需要从根帐户授权的端点。
是否可以在 serverless.yml 中配置类似这样的内容,将部署在成员帐户上(111111111111 是根帐号):
hello:
handler: api/hello.handler
events:
- http:
path: hello
method: get
cors: true
authorizer: arn:aws:lambda:eu-west-1:111111111111:function:authorizer
我试过了,收到以下错误:
发生错误:AuthorizerApiGatewayAuthorizer - 的策略 Lambda 函数必须明确授权方法或自定义 具有 SourceArn 条件的授权方,用于跨账户集成 (服务:AmazonApiGateway;状态代码:400;错误代码: 错误请求异常;
...根据AWS docs,这是有道理的。这些文档解释了如何使用 API Gateway 控制台手动执行此操作,这正是我现在所做的(根中的授权者,成员帐户中的授权者 - 通过 API 网关手动连接,与文档中描述的相同)。
随着服务和组织成员帐户数量的增加,我需要一个更好的解决方案。
是否可以使用无服务器框架配置并使其工作?
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway serverless-framework