在 CloudFront 的账户之间共享 S3 存储桶

Posted

技术标签:

【中文标题】在 CloudFront 的账户之间共享 S3 存储桶【英文标题】:Sharing S3 Bucket between Accounts for CloudFront 【发布时间】:2019-06-10 23:11:33 【问题描述】:

我有两个 AWS 账户。每个账户都有一个 S3 存储桶和暴露 S3 存储桶内容的 CloudFront。

我想摆脱 CORS 问题。 为此,我需要使用一个 CloudFront 来提供所有内容。

如何将 account2 中的 S3 存储桶的权限授予 account1 中的 CloudFront?

【问题讨论】:

存储桶是公开的吗?您目前如何授予对 CloudFront 的访问权限? (例如原始访问身份?) 没有由于安全原因不公开的存储桶 【参考方案1】:

如果存储桶是可公开访问的,这是可能的,当您创建源时,存储桶不会出现在下拉列表中,但您可以使用名称作为 bucket.s3.region.amazonaws.com。

也可以使用原始访问身份。首先使用您自己的存储桶由 CloudFront 自动创建存储桶策略,您应该能够在 CloudTrail 中看到 IAM 身份,您可以将相同的策略复制到另一个帐户 S3 存储桶上,OAI 应该可以工作。

【讨论】:

见:Restricting Access to Amazon S3 Content by Using an Origin Access Identity - Amazon CloudFront

以上是关于在 CloudFront 的账户之间共享 S3 存储桶的主要内容,如果未能解决你的问题,请参考以下文章

Amazon S3 和 Cloudfront 上的 Node.js 服务器

从浏览器缓存提供图像时,AWS S3 + CloudFront 会出现 CORS 错误

CloudFront / S3 ETag:CloudFront 是不是可以在 CF TTL 过期之前发送更新的 S3 对象?

无法使 HTTPS 在 CloudFront 和 Elastic BeanStalk 之间工作

S3 / Cloudfront 下载限制

Cloudfront 域名无法使用 S3、Cloudfront 和 Route 53 将 HTTP 重定向到 HTTPS