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

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

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

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

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

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

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

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

    [资源]:

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

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

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

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

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

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

    [资源]:

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

    [资源]:修改现有 ElastiCache (RedisOSS) 集群上的AUTH令牌

SEC3:是否存在无意中执行命令导致数据丢失或失败的风险?

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

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

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

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

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

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

    [资源]:

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

    [资源]:

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

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

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

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

    [资源]:

SEC6:如何限制对控制平面资源的访问?

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

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

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

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

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

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