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

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

Amazon ElastiCache Well-Architected Lens 安全支柱

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

SEC 1:您在控制对 ElastiCache 数据的授权访问方面采取了哪些举措?

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

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

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

    [资源]:

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

    [资源]:配置 Lambda 函数以访问 Amazon VPC 中的 Amazon ElastiCache:教程:配置 Lambda 函数以访问 Amazon VPC 中的 Amazon ElastiCache

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

问题级简介:对于需要在单个客户端级别限制或控制对 ElastiCache for Redis 集群的访问权限的场景中,建议通过 ElastiCache for Redis AUTH 命令进行身份验证。ElastiCache for Redis 身份验证令牌以及可选的用户和用户组管理,让 ElastiCache for Redis 在允许客户端运行命令和访问密钥之前需要密码,进而提高数据面板的安全性。

问题级优势:为了保护您的数据安全,ElastiCache for Redis 提供了旨在防止未经授权访问您数据的机制。这些机制包括强制实施基于角色的访问控制(RBAC)AUTH 或 AUTH 令牌(密码),供客户端在执行授权命令之前连接到 ElastiCache。

  • [最佳] 对于 ElastiCache for Redis 6.x 及更高版本,通过定义用户组、用户和访问字符串来定义身份验证和授权控制。将用户分配给用户组,然后将用户组分配给集群。要使用 RBAC,必须在创建集群时将其选中,并且必须启用传输中加密。确保您使用的是支持 TLS 的 Redis 客户端,以便能够利用 RBAC。

    [资源]:

  • [最佳] 对于 6.x 之前的 ElastiCache for Redis 版本,除了为 ElastiCache for Redis AUTH 设置强令牌/密码和维持严格的密码策略外,最佳实践是轮换密码/令牌。在任何给定时间,ElastiCache 最多可管理两(2)个身份验证令牌。您也可以修改集群以明确要求使用身份验证令牌。

    [资源]:修改现有 ElastiCache for Redis 集群上的 AUTH 令牌

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

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

问题级优势:从 ElastiCache 上的 ElastiCache for Redis 5.0.3 开始,您可以重命名某些可能会中断工作负载的命令。重命名命令有助于防止无意中在集群上执行这些命令。

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

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

问题级优势:ElastiCache for Redis 提供可选的静态加密,以提高数据安全性。

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

    [资源]:

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

    [资源]:

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

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

问题级简介:Amazon ElastiCache 传输中加密是一项可选功能,您可以通过该功能在数据最脆弱的时候(从一个位置传输到另一个位置时)提高数据的安全性。

  • [必需] 只有在创建 ElastiCache for Redis 集群(复制组)时才能在该集群上启用传输中加密。请注意,由于加密/解密数据需要额外的处理,因此,实施传输中加密将会对性能有一些影响。要了解具体会有什么影响,建议在启用传输中加密之前和之后分别对您的工作负载进行基准测试。

    [资源]:

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

问题级简介:IAM policy 和 ARN 为 ElastiCache for Redis 提供了精细的访问控制,允许通过更严格的控制来管理 ElastiCache for Redis 集群的创建、修改和删除。

问题级优势:可以将 Amazon ElastiCache 资源(例如复制组、节点等)的管理限制为根据 IAM policy 拥有特定权限的 Amazon 账户,从而提高资源的安全性和可靠性。

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

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

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

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