S3 作为 AWS CloudFront 源真的安全吗?可以从哪几方面着手提高数据的安全性?这就需要咱们用点子智慧~
身为伊克罗德的解决方案架构师专业团队一员,编号007,今天在这里和大家分享我的经验。通常在我初次配置CloudFront时,会需要配置以下几个步骤:
步骤一:将内容上传到 Amazon S3,然后授予对象权限,必须允许公开读取存储桶和文件,文件必须授予公共读取访问权限。
步骤二:创建 CloudFront 分配
数据安全可能面临威胁
进行到这一步,我有一个疑问,当首次将 Amazon S3 存储桶设置为 CloudFront 分配的源时,将授予每个人读取我存储桶中的文件的权限。这样,任何人都可以通过 CloudFront 或使用 Amazon S3 URL 访问文件。
尽管 CloudFront 不会公开 Amazon S3 URL,但如果应用程序从 Amazon S3 中直接提供任何文件,或有人泄露了 Amazon S3 中的特定文件的直接链接,则用户可能会拥有这些 URL,这将是一个灾难!
如何提高数据的安全性?
消除数据安全疑虑
因此我疯狂寻找答案时,终于找到更好的方法来提高信息的安全:
1.创建一个称为源访问身份(OAI)的特殊 CloudFront 用户,并将该用户与您的分配相关联。
2.配置 S3 存储桶权限,以便 CloudFront 能够使用 OAI 访问存储桶中的文件并将这些文件提供给您的用户。确保用户无法使用 S3 存储桶的直接 URL 访问该存储桶中的文件。
以下是具体步骤:
一、创建 OAI 并将其添加到您的分配
限制存储桶访问 中选择“是”。
如果已有要使用的 OAI,请选择使用现有身份。然后在您的身份列表中选择 OAI;
如果没有OAI,选择创建新的身份。
※注:授予对存储桶的读取权限 选择“是”,CloudFront 将更新存储桶权限,以授予指定的 OAI 读取存储桶中文件的权限;
如果希望手动更新 S3 存储桶的权限,请选择 “否”。
此处我们将选择“否”,手动更新存储桶的权限。
二、授予 OAI 读取 Amazon S3 存储桶中文件的权限
要在 Amazon S3 存储桶策略中将 OAI 指定为 Principal,使用 OAI 的 Amazon 资源名称 (ARN),其中包括 OAI 的 ID。例如:
此处已替换为 OAI 的 ID。
三、向 OAI 授予权限
要向 OAI 授予对 Amazon S3 存储桶中对象的访问权限,例如,s3:GetObject 权限允许 OAI 读取存储桶中的对象。
例:允许 OAI 读取指定存储桶 (s3:GetObject) 中的对象
※注:标红地方请注意替换。
四、更新 Amazon S3 对象 ACL
在 Amazon S3 控制台中使用 Amazon S3 对象的权限,更新对象ACL。使用 ACL 向 OAI 授予访问权限时,您必须使用其 Amazon S3 规范用户 ID 来指定 OAI。
至此,执行完这些步骤后,用户只能通过 CloudFront 访问您的文件,而无法直接从 S3 存储桶访问您的文件。
现在中国区也支持这个功能啦,快去用起来吧!
伊克罗德,您的云端合作伙伴
伊克罗德是 AWS 的核心级咨询合作伙伴(APN Premier Consulting Partner),致力于以云端优势引领企业实现数字转型。作为 AWS 最高等级的咨询合作伙伴,已经荣获AWS多项资质认证,包括IoT、Data and Analytics、Migration、MSP、Amazon Aurora、WAF、CDN等。
成立六年,伊克罗德已经拥有非常成熟的技术团队,独立专责的 SAP/Oracle 团队、数据分析(Big Data) 团队、机器学习 (AI/ML) 团队、以及 AWS 培训团队。服务的客户横跨媒体、金融、制造、游戏、零售、教育等产业。伊克罗德致力于向客户提供可靠、全方位的服务。