亚马逊 Well-A ElastiCache rchitected 镜头安全支柱 - 亚马逊 ElastiCache (Redis OSS)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 Well-A ElastiCache rchitected 镜头安全支柱

安全支柱侧重于保护信息和系统。关键主题包括数据的机密性和完整性、识别和管理谁能通过基于权限的管理做什么、保护系统以及建立用以检测安全事件的控制措施。

SEC 1:您正在采取哪些措施来控制对ElastiCache 数据的授权访问?

问题级简介:所有 ElastiCache集群均设计为可从 VPC 中的亚马逊弹性计算云实例、无服务器函数 (Amazon Lambda) 或容器(亚马逊弹性容器服务)进行访问。最常遇到的情况是从同一个亚马逊虚拟私有云(Amazon Virtual Private Cloud)中的亚马逊弹性计算云实例访问 ElastiCache 集群。必须先授权 Amazon EC2 实例对集群的访问权限,然后您才能从 Amazon EC2 实例连接到集群。要访问在 VPC 中运行的 ElastiCache 集群,必须向该集群授予网络入口权限。

问题级优势:通过 VPC 安全组控制进入集群的网络入口。安全组充当 Amazon EC2 实例的虚拟防火墙,用于控制传入和传出流量。入站规则控制传入到实例的流量,出站规则控制从实例传出的流量。如果是 ElastiCache,启动集群时,需要关联安全组。这样可以确保组成集群的所有节点都有入站和出站流量规则。此外,还配置为 ElastiCache 仅在私有子网上部署,因此只能通过 VPC 的私有网络访问私有子网。

  • [必需] 与您的集群关联的安全组控制进入集群的网络入口以及对集群的访问权限。默认情况下,安全组不会定义任何入站规则,因此也不会定义任何入站路径 ElastiCache。要启用此功能,请在安全组上配置入站规则,指定源 IP 地址/范围、TCP 类型流量和 ElastiCache 集群端口(例如 ElastiCache (Redis OSS)的默认端口 6379)。虽然可以允许非常广泛的入口来源,比如 VPC 中的所有资源 (0.0.0.0/0),但建议在定义入站规则时尽可能精细,例如仅授权对在与特定安全组关联的 Amazon Amazon EC2 实例上运行的 Redis OSS 客户端进行入站访问。

    [资源]:

  • [必需]Amazon Identity and Access Management 策略可以分配给允许其访问 ElastiCache 数据的 Amazon Lambda 职能。要启用此功能,请创建具有该AWSLambdaVPCAccessExecutionRole权限的 IAM 执行角色,然后将该角色分配给该 Amazon Lambda 函数。

    [资源]:配置 Lambda 函数以在亚马逊 VPC ElastiCache 中访问亚马逊:教程:配置 Lambda 函数以在亚马逊 VPC 中 ElastiCache 访问亚马逊

SEC 2:除了基于网络的 ElastiCache控制之外,您的应用程序是否需要额外的授权?

问题级简介:在需要在单个客户端级别限制或控制对 ElastiCache (Redis OSS) 集群的访问的情况下,建议通过 ElastiCache (Redis OSS) AUTH 命令进行身份验证。ElastiCache (Redis OSS) 身份验证令牌以及可选的用户和用户组管理,允许 ElastiCache (Redis OSS) 在允许客户端运行命令和访问密钥之前要求输入密码,从而提高数据平面安全性。

问题级别的好处:为了帮助保护您的数据安全, ElastiCache (Redis OSS) 提供了防止未经授权访问您的数据的机制。这包括在执行授权命令之前,强制客户端使用基于角色的访问控制 (RBAC) AUTH 或 AUTH 令牌(密码)进行 ElastiCache 连接。

SEC 3:是否存在无意中执行命令从而导致数据丢失或故障的风险?

问题级简介:有许多 Redis OSS 命令如果错误执行或由恶意行为者执行,可能会对操作产生不利影响。从性能和数据安全的角度来看,这些命令可能会产生意想不到的后果。例如,开发人员可能会在开发环境中定期调用 FLUSHALL 命令,并且由于错误,可能会无意中尝试在生产系统上调用此命令,从而导致数据意外丢失。

问题级别的好处:从 ElastiCache (Redis OSS) 5.0.3 开始,您可以重命名某些可能会干扰工作负载的命令。重命名命令有助于防止无意中在集群上执行这些命令。

SEC 4:如何确保静态数据加密 ElastiCache

问题级简介:虽然 ElastiCache (Redis OSS)是内存中的数据存储,但可以加密任何可能作为集群标准操作一部分保存(存储中)的数据。这包括写入 Amazon S3 的计划备份和手动备份,以及在执行同步和交换操作后保存到磁盘存储中的数据。m6g 和 R6g 系列中的实例类型还会始终开启内存加密。

问题级别的好处:ElastiCache (Redis OSS)提供可选的静态加密,以提高数据安全性。

  • [必需] 只有在创建群集(复制组)后,才能在 ElastiCache 群集(复制组)上启用静态加密。无法修改现有集群以开始加密静态数据。默认情况下, ElastiCache 将提供和管理静态加密中使用的密钥。

    [资源]:

  • [最佳] 利用当数据在内存中时对数据进行加密的 Amazon EC2 实例类型(例如 m6g 或 R6g)。如果可能,请考虑管理自己的静态加密密钥。对于更严格的数据安全环境,可以使用 Amazon Key Management Service (KMS) 来自行管理客户主密钥 (CMK)。通过与 ElastiCache 集成 Amazon Key Management Service,您可以创建、拥有和管理用于加密您的 ElastiCache (Redis OSS) 集群静态数据的密钥。

    [资源]:

SEC 5:如何加密传输中的数据? ElastiCache

问题级简介:防止数据在传输过程中被泄露是常见的要求。它表示分布式系统组件内的数据,以及应用程序客户端和群集节点之间的数据。 ElastiCache (Redis OSS) 支持这一要求,它允许对客户端和集群之间以及集群节点本身之间传输的数据进行加密。m6g 和 R6g 系列中的实例类型还会始终开启内存加密。

问题级别的好处:Amazon ElastiCache 传输中加密是一项可选功能,当数据从一个位置传输到另一个位置时,它允许您在最脆弱的地方提高数据的安全性。

  • [必需] 创建后,只能在 ElastiCache (Redis OSS) 集群(复制组)上启用传输中加密。请注意,由于加密/解密数据需要额外的处理,因此,实施传输中加密将会对性能有一些影响。要了解其影响,建议在启用前后对工作负载进行基准测试encryption-in-transit。

    [资源]:

SEC 6:如何限制对控制面板资源的访问?

问题级简介:IAM 策略和 ARN 为(Redis OSS)启用了精细的访问控制 ElastiCache ,从而允许更严格的控制来管理(Redis OSS)集群 ElastiCache 的创建、修改和删除。

问题级别的好处:Amazon ElastiCache 资源(例如复制组、节点等)的管理可以仅限于基于 IAM 策略的具有特定权限的 Amazon 账户,从而提高了资源的安全性和可靠性。

SEC 7:如何检测和响应安全事件?

问题级简介:ElastiCache在启用 RBAC 的情况下部署时,会导出 CloudWatch 指标以通知用户安全事件。这些指标有助于识别连接的 RBAC 用户未获授权进行身份验证、访问密钥或运行命令的失败尝试。

此外, Amazon 产品和服务资源通过自动部署和记录所有操作和修改以供日后审查/审计,从而帮助保护您的总体工作负载。

问题级优势:通过监控事件,可以让您的组织能够根据您的要求、策略和过程做出响应。自动监控和响应这些安全事件可增强您的整体安全态势。