Security Hub 控件适用于 Amazon Lambda - Amazon Security Hub
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Security Hub 控件适用于 Amazon Lambda

这些 Amazon Security Hub 控制措施评估 Amazon Lambda 服务和资源。这些控件可能并非全部可用 Amazon Web Services 区域。有关更多信息,请参阅 按地区划分的控件可用性

[Lambda.1] Lambda 函数策略应禁止公共访问

相关要求: NIST.800-53.r5 AC-21、、 NIST.800-53.r5 AC-3 (7)、(21) NIST.800-53.r5 AC-3、、、(11)、(16) NIST.800-53.r5 AC-4、 NIST.800-53.r5 AC-4 (20)、(21) NIST.800-53.r5 AC-6、(3) NIST.800-53.r5 SC-7、 NIST.800-53.r5 SC-7 (4)、 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 (9)、PCI DSS v3.2.1/1.2.1、 NIST.800-53.r5 SC-7 PCI DSS v3.2.1/1.3.1、 NIST.800-53.r5 SC-7 PCI DSS v3.2.1/1.3.2、PCI DSS v3.2.1/1.3.4、PCI DSS v3.2.1/1.3.4、PCI DSS v3.2.1/1.3.4 2.1/7.2.1,PCI DSS v4.0.1/7.2.1 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7

类别:保护 > 安全网络配置

严重性:严重

资源类型:AWS::Lambda::Function

Amazon Config 规则:lambda-function-public-access-prohibited

计划类型:已触发变更

参数:

此控件检查 Lambda 函数基于资源的策略是否禁止您账户之外的公开访问。如果允许公共访问,则控制失败。如果从 Amazon S3 调用 Lambda 函数,并且该策略不包含限制公共访问的条件,则控制也会失败,例如 AWS:SourceAccount。我们建议在存储桶策略中使用 AWS:SourceAccount 与其他 S3 条件以获得更精细的访问权限。

注意

此控件不评估使用通配符或变量的策略条件。要生成PASSED结果,Lambda 函数的策略条件必须仅使用固定值,即不包含通配符或策略变量的值。有关策略变量的信息,请参阅Amazon Identity and Access Management 用户指南中的变量和标签

Lambda 函数不应公开访问,因为这可能会导致意外访问函数代码。

修复

要修复此问题,您必须更新函数的基于资源的策略以移除权限或添加 AWS:SourceAccount 条件。您只能通过 Lambda API 或更新基于资源的策略。 Amazon CLI

首先,请在 Lambda 控制台上查看基于资源的策略。确定具有公开策略的 Principal 字段值的策略声明,例如 "*"{ "AWS": "*" }

您无法从控制台编辑策略。要移除函数的权限,请从 Amazon CLI中运行 remove-permission 命令。

$ aws lambda remove-permission --function-name <function-name> --statement-id <statement-id>

<function-name> 替换为 Lambda 函数的名称,<statement-id> 替换为要删除的语句的语句 ID (Sid)。

[Lambda.2] Lambda 函数应使用受支持的运行时系统

相关要求: NIST.800-53.r5 CA-9(1)、nist.800-53.r5 CM-2、nist.800-53.r5 SI-2、nist.800-53.r5 SI-2 (2)、nist.800-53.r5 SI-2 (4)、nist.800-53.r5 SI-2 (5)、PCI DSS v4.0.1/12.3.4

类别:保护 > 安全开发

严重性:

资源类型:AWS::Lambda::Function

Amazon Config 规则:lambda-function-settings-check

计划类型:已触发变更

参数:

  • runtimedotnet8, java21, java17, java11, java8.al2, nodejs22.x, nodejs20.x, nodejs18.x, python3.13, python3.12, python3.11, python3.10, python3.9, ruby3.4, ruby3.3, ruby3.2(不可自定义)

此控件检查 Amazon Lambda 函数运行时设置是否与每种语言中为支持的运行时设置的预期值相匹配。如果 Lambda 函数不使用支持的运行时,则控件将失败,如参数部分所述。Security Hub 会忽略包类型为 Image 的函数。

Lambda 运行时系统是围绕操作系统、编程语言和需要维护和安全更新的软件库的组合构建的。护和安全更新的操作系统、编程语言和软件库的组合构建的。当安全更新不再支持某个运行时组件时,Lambda 将弃用该运行时系统。虽然您无法创建使用已弃用运行时的函数,但该函数仍可用于处理调用事件。我们建议确保 Lambda 函数处于最新状态,并且不使用已弃用的运行时环境。有关支持的运行时列表,请参阅《Amazon Lambda 开发人员指南》中的 Lambda 运行时

修复

有关支持的运行时和弃用计划的更多信息,请参阅Amazon Lambda 开发人员指南中的运行时系统弃用策略。将运行时迁移到最新版本时,请遵循语言发布者的语法和指导。我们还建议应用运行时更新,以便在运行时版本不兼容的极少数情况下帮助降低对工作负载造成影响的风险。

[Lambda.3] Lambda 函数应位于 VPC 中

相关要求:PCI DSS v3.2.1/1.2.1、PCI DSS v3.2.1/1.3.1、PCI DSS v3.2.1/1.3.2、PCI DSS v3.2.1/1.3.4、 NIST.800-53.r5 AC-2 1、、 NIST.800-53.r5 AC-3(7)、、(21)、、(11)、(16)、(20)、(21) NIST.800-53.r5 AC-3、(20)、(21)、(3) NIST.800-53.r5 AC-4、 NIST.800-53.r5 AC-4(4) NIST.800-53.r5 AC-6、 NIST.800-53.r5 SC-7(9) NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7

类别:保护 > 安全网络配置

严重性:

资源类型:AWS::Lambda::Function

Amazon Config 规则:lambda-inside-vpc

计划类型:已触发变更

参数:

此控件可检查 Lambda 函数是否部署在虚拟私有云(VPC)中。如果 Lambda 函数未部署在 VPC 中,则此控件将失败。Security Hub 不会评估 VPC 子网路由配置来确定可公开访问性。您可能会看到 Lambda @Edge 资源的失败的调查发现。

在 VPC 中部署资源可增强安全性和对网络配置的控制。此类部署还提供了跨多个可用区的可扩展性和高容错能力。您可以自定义 VPC 部署以满足不同的应用程序要求。

修复

要将现有函数配置为连接到您的 VPC 中的私有子网,请参阅 Amazon Lambda 开发人员指南中的配置 VPC 访问权限。我们建议至少选择两个私有子网以实现高可用性,并至少选择一个满足功能连接要求的安全组。

[Lambda.5] VPC Lambda 函数应在多个可用区内运行

相关要求: NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36、 NIST.800-53.r5 SC-5 (2)、nist.800-53.r5 SI-13 (5)

类别:恢复 > 弹性 > 高可用性

严重性:

资源类型:AWS::Lambda::Function

Amazon Config 规则:lambda-vpc-multi-az-check

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值

availabilityZones

可用区的最小数量

枚举

2, 3, 4, 5, 6

2

此控件检查连接到虚拟私有云 (VPC) 的 Amazon Lambda 功能是否至少在指定数量的可用区 (AZs) 中运行。如果函数的运行次数不超过指定数量,则控件将失败 AZs。除非您为最小数量提供自定义参数值 AZs,否则 Security Hub 将使用默认值 2 AZs。

跨多个资源部署 AZs 是确保架构内高可用性 Amazon 的最佳实践。可用性是机密性、完整性和可用性三合一安全模型的核心支柱。连接到 VPC 的所有 Lambda 函数都应具有多可用区部署,以确保单个区域的故障不会导致操作完全中断。

修复

如果您将函数配置为连接到账户中的 VPC,请指定多个子网 AZs 以确保高可用性。有关说明,请参阅 Amazon Lambda 开发人员指南》中的配置 VPC 访问权限

Lambda 会自动 AZs 以多个形式运行其他函数,以确保在单个区域发生服务中断时,Lambda 可用于处理事件。

[Lambda.6] 应标记 Lambda 函数

类别:识别 > 清单 > 标记

严重性:

资源类型:Amazon::Lambda::Function

Amazon Config 规则:tagged-lambda-function(自定义 Security Hub 规则)

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值
requiredTagKeys 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 StringList (最多 6 件商品) 1—6 个符合要求Amazon 的标签密钥。 No default value

此控件检查 Amazon Lambda 函数是否具有参数中定义的特定键的标签requiredTagKeys。如果函数没有任何标签键或未在 requiredTagKeys 参数中指定所有键,则此控件将失败。如果未提供 requiredTagKeys 参数,则此控件仅检查是否存在标签键,如果该函数未使用任何键进行标记,则此控件将失败。自动应用并以 aws: 为开头的系统标签会被忽略。

标签是您分配给 Amazon 资源的标签,它由密钥和可选值组成。您可以创建标签,以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时,可以将基于属性的访问权限控制(ABAC)作为授权策略实施,该策略根据标签来定义权限。您可以向 IAM 实体(用户或角色)和 Amazon 资源附加标签。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息,请参阅 ABAC 有什么用 Amazon? 在 IAM 用户指南中。

注意

请勿在标签中添加个人身份信息(PII)或者其他机密或敏感信息。许多人都可以访问标签 Amazon Web Services 服务,包括 Amazon Billing。有关更多标记最佳做法,请参阅中的为Amazon 资源添加标签Amazon Web Services 一般参考

修复

要向 Lambda 函数添加标签,请参阅《Amazon Lambda 开发人员指南》中的在 Lambda 函数上使用标签