安全性 - AWS 上的虚拟等候室

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

安全性

当您在 AWS 基础架构上构建系统时,安全责任由您和共同承担 AWS。这种共享模式减轻了您的运营负担,因为您可以 AWS 操作、管理和控制组件,包括主机操作系统、虚拟化层和服务运行设施的物理安全。有关 AWS 安全的更多信息,请访问AWS 云安全

Elasticache (Redis OSS) 在私有 VPC 内被分配了一个网络接口。与 Elasticache (Redis OSS) 交互的 Lambda 函数也被分配在 VPC 内的网络接口。所有其他资源在共享网络空间中都具有 AWS 网络连接。带有与其他 AWS 服务交互的 VPC 接口的 Lambda 函数使用 VPC 终端节点连接到这些服务。

用于创建和验证 JSON 网络令牌的公钥和私钥是在部署时生成的,并存储在 Secrets Manager 中。用于连接 Elasticache (Redis OSS) 的密码也是在部署时生成的,并存储在 Secrets Manager 中。无法通过任何解决方案 API 访问私钥和 Elasticache (Redis OSS) 密码。

必须通过访问公共 API CloudFront。该解决方案为 API Gateway 生成一个 API 密钥,该密钥用作中自定义标头的值 CloudFront。x-api-key CloudFront 发出原始请求时包含此标头。有关更多详情,请参阅《Amazon CloudFront 开发者指南》中的向源请求添加自定义标头

私 APIs 有配置为需要 AWS IAM 授权才能调用。该解决方案创建具有适当权限ProtectedAPIGroup的 IAM 用户组来调用私有用户 APIs。添加到该群组的 IAM 用户有权调用私有 APIs。

附加到解决方案创建的各种资源的角色和权限中使用的 IAM 策略仅授予执行必要任务所需的权限。

对于解决方案生成的 S3 存储桶、SQS 队列和 SNS 主题等资源,将尽可能激活静态加密和传输期间的加密。

监控

核心 API 堆栈包括多个 CloudWatch 警报,可以在解决方案运行时监控这些警报以检测问题。堆栈会针对 Lambda 函数错误和限制条件创建警报,ALARM如果在一分钟内出现错误或限制条件,则该堆栈会OK将警报状态从更改为。

该堆栈还会为每个 API Gateway 部署为 4XX 和 5XX 状态代码创建警报。ALARM如果在一分钟内从 OK API 返回了 4XX 或 5XX 状态码,则警报的状态将从变为。

这些警报在没有错误或限制一分钟后恢复到OK状态。

IAM 角色

AWS Identity and Access Management (IAM) 角色允许客户向 AWS 云上的服务和用户分配精细的访问策略和权限。此解决方案创建 IAM 角色,这些角色向解决方案的 AWS Lambda 功能授予创建区域资源的访问权限。

Amazon CloudFront

virtual-waiting-room-on-aws.template CloudFormation 模板创建了等候室 APIs 的核心公共和私有内容,还为公共 API 部署了 CloudFront 发行版。 CloudFront 缓存来自公共 API 的响应,从而减少 API Gateway 和执行工作的 Lambda 函数的负载。

该解决方案还有一个可选的等候室模板示例,用于部署托管在亚马逊简单存储服务 (Amazon S3) 存储桶中的简单 Web 应用程序。为了帮助减少延迟和提高安全性,部署了带有原始访问身份的 Amazon CloudFront 分配,该身份是提供对解决方案网站存储桶内容的公开访问权限的 CloudFront 用户。有关更多信息,请参阅《亚马逊 CloudFront 开发者指南》中的使用源站访问身份限制对 Amazon S3 内容的访问。

安全组

在此解决方案中创建的 VPC 安全组旨在控制和隔离流向 Elasticache (Redis OSS) 的网络流量。需要与 Elasticache(Redis OSS)通信的 Lambda 与 Elasticache(Redis OSS)位于同一个安全组中。我们建议您在部署启动并运行后查看安全组并根据需要进一步限制访问权限。