AWS Amplify CLI CloudFront S3 限制

Posted

技术标签:

【中文标题】AWS Amplify CLI CloudFront S3 限制【英文标题】:AWS Amplify CLI CloudFront S3 Restrictions 【发布时间】:2020-08-22 15:37:25 【问题描述】:

使用 AWS S3 和 CloudFront 托管站点时,可以使用 restrict access to content that you serve from Amazon S3 buckets。

我想将对 S3 上资产的访问限制为我的 Amplify 应用 (CDN)。

是否可以使用 AWS Amplify 实现相同的限制?部署我的 AWS Amplify 应用程序后,我看不到 CloudFront 分配。文档指出:“AWS Amplify 控制台利用 Amazon CloudFront 全球边缘网络在全球范围内分发您的 Web 应用程序”(FAQ, Hosting)。

【问题讨论】:

【参考方案1】:

在研究如何使用 Amplify 应用程序的原始访问身份限制对 CloudFront 的 S3 访问时,我意识到two approaches of hosting an Amplify App 的一个重要区别:

使用 AWS Amplify 控制台,或 使用 S3 和 CloudFront(产品阶段)

过去,我只使用 Amplify 控制台将 associate a custom domain 发送到我的应用程序。我不明白为什么我找不到 Amplify Console Hosting FAQ 所指的 CloudFront 分配。

AWS 托管 CloudFront 分发

我了解到,通过 Amplify 控制台将 Route 53 托管 custom domain 添加到我的 Amplify 应用程序后,AWS 托管 CloudFront 分配会自动创建。此 CloudFront 分配在您的账户中不可见,也无法由您直接管理。当我看到 Route53 中的别名记录指向添加自定义域后不在我的账户中的 CloudFront 分配时,我首先注意到了这一点。

自定义域优先

似乎一旦您通过 Amplify 控制台添加自定义域,然后到 add hosting with the Amplify CLI 不会使 AWS 托管 CloudFront 分配无效

哪个更好?

我没有在文档中找到任何关于哪种托管策略更好的指导。我假设使用 Amplify 自定义域的一个优势可能是 AWS 托管 CloudFront 分配是使用您的应用程序的最佳设置创建的。这种方式也意味着 Amplify 可以有效地处理缓存失效。

【讨论】:

以上是关于AWS Amplify CLI CloudFront S3 限制的主要内容,如果未能解决你的问题,请参考以下文章

AWS- Amplify - Appsync:使用 CLI 从 Android 应用程序更改云资源时,正确的工作流程是啥?

如何使用 AWS/Amplify CLI 部署现有 Amplify 应用程序的新版本而无需用户交互?

AWS Amplify CLI CloudFront S3 限制

AWS Amplify CLI:将资源推送到云时出错

来自 Lambda 的 AWS Cognito adminCreateUser,使用 Amplify CLI 创建

AWS Amplify CLI 生成的 GraphQL 突变中的 $condition 输入参数是啥?