在 AWS 共享责任模型内运营
在 AWS 云中运行时,AWS 和您(AWS 客户)对您在云中存储和处理的数据的安全性负有共同责任。
您可能听过这样的口头禅:“AWS 负责云的安全。您负责云中的安全。”虽然这是一个方便的概括,但它并不完全准确,您很快就会看到。
确实,AWS 对其服务和运行 AWS 云的基础设施的安全负责。这包括计算和存储硬件、网络基础设施、运行 AWS 云服务的软件以及其数据中心的物理安全。
实际上,您对“云中的安全”负全部责任这一概念意味着您对使用 AWS 创建的资源的安全负全部责任。然而,情况并非总是如此。当谈到云中的安全时,责任范围会根据您使用的服务而变化。
在本指南中,您将了解在 AWS 云中安全存储数据和处理工作负载的一些实际注意事项。
身份和访问管理
让我们首先简要概述一下 AWS 如何控制对其服务的访问。
创建 AWS 账户时,您首先会拥有一个在账户中拥有无限权限的根用户。并且您要对在根用户的支持下完成的所有操作负责。换句话说,从一开始,您就对 AWS 资源的安全性负有绝对的责任。
需要注意的是,您有责任保护根用户凭证,AWS 建议除非绝对必要,否则不要使用根用户凭证。相反,您应该使用身份和访问管理 (IAM) 服务来创建 IAM 身份或具有更有限权限的主体,并使用它们与 AWS 进行交互。
您可以控制账户中 IAM 主体的访问权限。实现此目的的一种方法是使用基于身份的策略,这些策略可以精细地定义主体对 AWS 资源采取的操作。AWS 为各种常见场景提供托管策略,并定期更新这些策略以涵盖新服务和功能。您还可以制定自己的自定义策略。无论哪种方式,归根结底,您都有责任定义 IAM 主体的权限。
这一责任不仅仅局限于基于身份的策略。一些 AWS 云服务使用基于资源的策略来控制对资源的访问。简单存储服务 (S3) 存储桶策略是基于资源的策略的一个显著示例,它们通常用于授予对存储在 S3 中的文件的公开、只读访问权限。正如您所料,您完全负责配置基于资源的策略。
端点
无论您使用根用户还是 IAM 用户,您都可以使用通过 HTTPS 保护的公共或私有服务终端节点访问 AWS。最知名的公共终端节点之一是 Amazon 的对象存储服务 Simple Storage Service (S3)。例如,[https://s3.us-east-2.amazonaws.com] 是 US-East-2 区域的公共终端节点。AWS 对这些终端节点的安全性负全部责任。
顺便说一句,当您使用基于 Web 的管理控制台来管理您的 AWS 时,您仍然使用服务端点与 AWS 云服务进行交互,但管理控制台会代表您处理此交互。
现在您已经了解了共享责任模型如何应用于访问 AWS,接下来是时候深入了解它如何应用于您在核心 AWS 云服务下创建的各种资源。
弹性计算云
亚马逊的旗舰计算机服务是弹性计算云 (EC2)。EC2 是亚马逊的基础设施即服务产品,可让您创建称为实例的虚拟机。与本地虚拟化平台一样,EC2 基础设施包括虚拟机管理程序、块存储、预构建的虚拟机模板和网络基础设施。
在 EC2 中,AWS 负责以下方面的安全:
- 运行 EC2 实例的 Xen 和 Nitro 虚拟机管理程序。
- 这些虚拟机管理程序运行的物理硬件。
- 弹性块存储 (EBS) 存储系统,用于存储实例用于持久存储的 EBS 卷。
- 支撑虚拟私有云 (VPC) 虚拟网络基础设施的物理网络基础设施。这包括与互联网、其他区域和边缘位置以及 Direct Connect 位置的网络连接。
您负责以下安全:
- 在您的实例上运行的软件,包括操作系统和应用程序安全更新。
- 安全组和网络访问控制列表 (NACL)。安全组控制对实例和弹性负载均衡器的访问。NACL 控制对 VPC 内各个子网的访问。
- VPC 内的网络架构。在每个区域中,AWS 都提供了一个预配置的默认 VPC。您可以按原样使用默认 VPC,但这不是必须的。您可以重新配置它,或者只是从头开始创建一个新的自定义 VPC。无论哪种方式,您都应确保 VPC 是安全的。
拉姆达
AWS Lambda 服务提供函数即服务,通常称为“无服务器计算”。Lambda 抽象了底层计算基础设施,让您主要关注代码和执行代码所需的运行时。
您只需使用受支持的编程语言之一编写函数,选择要使用的运行时,并配置触发器来执行函数即可。Lambda 会处理其余部分。Lambda 为 C#、PowerShell、Go、Java、Node.js、Python 和 Ruby 提供运行时。您还可以提供自己的自定义运行时。
对于 Lambda,AWS 负责以下方面的安全:
- 底层计算、存储和网络基础设施。
- 他们提供的运行时。
您负责以下安全:
- 您在 Lambda 上运行的代码
- 您提供的任何自定义运行时
简单存储服务
AWS 简单存储服务 (S3) 是亚马逊的对象存储服务,通常称为“互联网存储”。S3 用作平面文件系统,提供两种访问控制方法:访问控制列表 (ACL) 和存储桶策略。
在大多数情况下,ACL 是一种传统的访问控制机制,用于控制对单个文件的访问。但它们并未被弃用,并且仍然可能很危险,因此您需要确保正确配置它们。为方便起见,AWS 提供了预配置的 ACL,称为预装 ACL。
如前所述,存储桶策略是基于资源的策略,是控制对 S3 中文件的访问的推荐机制。毋庸置疑,您要对这些配置的安全隐患负责。
假设您正确配置了 ACL 或存储桶策略,AWS 负责执行这些策略。AWS 认真对待这一责任,并实施了一项名为“阻止公共访问”的功能,该功能可删除任何授予匿名、未经身份验证的文件访问权限的 ACL 或存储桶策略。您必须明确禁用此功能才能授予对存储桶中文件的公共访问权限。
关系数据库服务
AWS 关系数据库服务 (RDS) 为各种流行的数据库引擎提供托管关系数据库,包括 MySQL、MariaDB、PostgreSQL、Microsoft SQL Server 和 Oracle。您可以选择实例和存储类来获得所需的处理能力、内存和性能。RDS 会创建一个数据库实例并允许您访问在其上运行的数据库引擎。
RDS 负责操作系统和数据库引擎的维护和修补。您可以通过配置安全组来控制对数据库实例的网络访问。您还负责设置数据库用户并管理他们的权限。
结论
AWS 是服务提供商,而不是顾问或实施者。AWS 绝不负责确保您的配置、应用程序或架构的安全。AWS 确实提供了Trusted Advisor等工具来提供具体建议,但您运行的应用程序以及如何配置 AWS 资源最终由您负责。
如果您不确定自己适合共享责任模型的哪个部分,只需问自己:“根用户可以控制这一点吗?”如果答案是肯定的,那么您就要对任何事物的安全负责。然后,主要考虑因素将从“我负责什么?”转变为“我如何保护我的 AWS 资源?”下一步是学习如何在 AWS 环境的各个级别应用安全性。为此,请查看我的课程《AWS 上的安全性架构》!
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~