具有Cognito和Amplify的AWS API Gateway身份验证

时间:2019-05-15 20:00:00

标签: amazon-web-services aws-api-gateway amazon-cognito amazon-iam serverless

试图引导我使用CloudFormation和多个无服务器服务来部署相当复杂的应用程序。

我在一个AWS帐户/区域中拥有以下内容:

  • API网关-普通用户(api.project.com)的自定义域(公共)
  • API网关-管理员用户(api.admin.project.com)的自定义域(admin)
  • API网关-每个自定义域包含大约5-6个服务(正确的术语是API),每个服务可能具有2-5个功能
  • 公共用户的认知用户池
  • 管理员用户的Cognito用户池

大概可以看到我要去的地方,公共用户只能访问公共API,而管理员用户只能访问管理API。似乎很简单。

在部署方面,我有一个独立的CloudFormation堆栈,该堆栈为我设置了Cognito用户池,IAM角色等。最重要的是,我需要锁定的部分是授权的IAM角色的这一部分

- Effect: Allow
  Action: execute-api:Invoke
  Resource: "*"

一旦部署了该堆栈,我便部署了许多无服务器服务,这些服务在API网关中创建了相关的ID。

如果我手动将此角色编辑为以下内容

- Effect: Allow
  Action": "execute-api:Invoke",
  Resource": "arn:aws:execute-api:eu-west-2:*:gyablli82h/*"

它成功锁定了特定的API。

我的问题是,如何在不预先部署服务的情况下以正确的角色部署第一个CloudFormation堆栈?因为他们需要创建用于IAM角色的API ID。

0 个答案:

没有答案