具有公共/私有访问权限的 Appsync 身份验证,无需 AWS Cognito

Posted

技术标签:

【中文标题】具有公共/私有访问权限的 Appsync 身份验证,无需 AWS Cognito【英文标题】:Appsync authentification with public / private access without AWS Incognito 【发布时间】:2021-12-08 08:49:54 【问题描述】:

在这里,我很难理解如何在不使用 AWS 隐身池的情况下保护我的 Amplify / Appsync 应用程序。

我现在使用 API 密钥从我的公共应用程序和安全的后台进行连接。但我仍然想保护我的应用和用户不调用某些查询、突变等。

我知道Amplify 允许使用@auth 模式,但我该如何使用它? 知道我会从我的公共应用程序直接调用 graphql 并从我的后台从我的 lambdas 调用 nodejs graphql,它会如何工作。

非常欢迎您在这里提供任何指导,在此先感谢您的帮助!

【问题讨论】:

【参考方案1】:

好的,所以我想出了如何在这里做事,以防它可能对其他人有所帮助。

首先,我们可以在没有 AWS cognito 的情况下使用 IAM。

我不得不:

将 IAM 设置为我的 Appsync 应用程序(AWS 服务)的默认授权 在 schema graphql 上设置规则: 如:

所以现在我可以使用前端的 API 密钥和来自我的 AWS Lam 的 IAM

【讨论】:

以上是关于具有公共/私有访问权限的 Appsync 身份验证,无需 AWS Cognito的主要内容,如果未能解决你的问题,请参考以下文章

私有的嵌套类(内部或静态)是不是可能具有具有公共访问权限的方法?

如何使用 python 调用具有 Cognito 身份验证的 AppSync 突变?

权限被拒绝:只有经过身份验证的用户才能访问此私有项目

如何建立从GAE(具有公共访问权限)到私有GKE集群的安全连接。

如何允许 cognito 身份验证的用户获得对 s3 存储桶的公共访问权限

具有公共访问权限的 Web 应用程序的 Google OAuth 2.0 刷新令牌