我有aws example.com的域名,目前我有记录集,所以当用户访问example.com时,它提供来自S3(使用angular)和后端api(Lambda和API gate方式)的静态网站。而且我没有登录过程,因为网站的目的是面向公众。
我可以在方法上使用apikey来授权http调用,但我仍然需要将它保存在某个地方的js代码中,我不想这样做。而且我不确定IAM角色在这种情况下如何帮助我。
有什么方法可以让api允许来自特定域的呼叫?
答案 0 :(得分:1)
您可以在AWS Cognito Federated Identities中使用为未经身份验证的用户定义的IAM角色。 AWS document将指导将IAM角色分配给未经身份验证的用户。
然后,您可以在API网关中为任何特定API的资源启用“AWS_IAM”Authorizer选项。
此question在实现IAM角色方面具有类似的方法 - 基于访问API,其中实现使用外部联合身份(Google)而不是未经身份验证的用户身份。
答案 1 :(得分:0)
最不痛苦的方式可能是使用AWS Signature V4 - 遗憾的是,对于没有内置auth系统的网站,没有很好的答案。有一天他们会让我们在VPC内部停放API网关,但那一天不是今天。