实施可观测性以实现 Lambda 安全性和合规性 - AWS Lambda

实施可观测性以实现 Lambda 安全性和合规性

AWS Config 是查找和修复不合规的 AWS 无服务器资源的有用工具。您对无服务器资源所做的每一次更改都会记录在 AWS Config 中。此外,AWS Config 还允许您将配置快照数据存储在 S3 上。您可以使用 Amazon Athena 和 Amazon QuickSight 制作控制面板并查看 AWS Config 数据。在 使用 AWS Config 检测不合规的 Lambda 部署和配置 中,我们讨论了如何可视化特定配置(如 Lambda 层)。本主题将扩展这些概念。

Lambda 配置的可见性

您可以使用查询来拉取重要的配置,例如 AWS 账户 ID、区域、AWS X-Ray 跟踪配置、VPC 配置、内存大小、运行时系统和标签。您可以通过下面的查询示例来从 Athena 中拉取这些信息:

WITH unnested AS ( SELECT item.awsaccountid AS account_id, item.awsregion AS region, item.configuration AS lambda_configuration, item.resourceid AS resourceid, item.resourcename AS resourcename, item.configuration AS configuration, json_parse(item.configuration) AS lambda_json FROM default.aws_config_configuration_snapshot, UNNEST(configurationitems) as t(item) WHERE "dt" = 'latest' AND item.resourcetype = 'AWS::Lambda::Function' ) SELECT DISTINCT account_id, tags, region as Region, resourcename as FunctionName, json_extract_scalar(lambda_json, '$.memorySize') AS memory_size, json_extract_scalar(lambda_json, '$.timeout') AS timeout, json_extract_scalar(lambda_json, '$.runtime') AS version json_extract_scalar(lambda_json, '$.vpcConfig.SubnetIds') AS vpcConfig json_extract_scalar(lambda_json, '$.tracingConfig.mode') AS tracingConfig FROM unnested

您可以使用查询来构建 Amazon QuickSight 控制面板并可视化数据。要聚合 AWS 资源配置数据,在 Athena 中创建表,以及根据来自 Athena 的数据构建 Amazon QuickSight 控制面板,请参阅 AWS Cloud Operations and Management Blog 上的 Visualizing AWS Config data using Athena and Amazon QuickSight。值得注意的是,此查询还会检索函数的标签信息。这样就可以更深入地了解您的工作负载和环境,尤其是在您使用自定义标签的情况下。

Query results in Amazon QuickSight dashboard

有关您可以执行的操作的更多信息,请参阅本主题后面的 处理可观测性调查发现 部分。

Lambda 合规性的可见性

通过 AWS Config 生成的数据,您可以创建组织级别的控制面板来监控合规性。这样就可以对以下内容实现一致的跟踪和监控:

  • 按合规性分数列出的合规包

  • 按不合规资源列出的规则

  • 合规性状态

AWS Config console dashboard

检查每条规则,找出该规则的不合规资源。例如,如果您的组织要求所有 Lambda 函数都必须与 VPC 关联,并且您已经部署了用于识别合规性的 AWS Config 规则,则可以在上面的列表中选择 lambda-inside-vpc 规则。

View non-compliant resources in AWS Config console

有关您可以执行的操作的更多信息,请下面的 处理可观测性调查发现 部分。

使用 Security Hub 查看 Lambda 函数边界的可见性

Diagram of example AWS Security Hub inputs for Lambda, such as resource policy, runtime, and code

为确保包括 Lambda 在内的 AWS 服务的安全使用,AWS 引入了基础安全最佳实践 v1.0.0。这套最佳实践为保护 AWS 环境中的资源和数据提供了明确的指导原则,强调了保持强大安全态势的重要性。AWS Security Hub 提供了一个统一的安全性和合规性中心,从而对此进行了补充。它汇总、组织并优先处理来自多个 AWS 服务的安全调查发现,如 Amazon Inspector、AWS Identity and Access Management Access Analyzer 和 Amazon GuardDuty。

如果您在 AWS 组织中启用了 Security Hub、Amazon Inspector、IAM Access Analyzer 和 GuardDuty,则 Security Hub 会自动汇总来自这些服务的调查发现。例如,让我们来看一下 Amazon Inspector。通过 Security Hub,您可以有效地识别 Lambda 函数中的代码和程序包漏洞。在 Security Hub 控制台中,导航到底部标有来自 AWS 集成的最新调查发现的部分。在这里,您可以查看和分析来自各种集成的 AWS 服务的调查发现。

Security Hub console "Latest findings from AWS integrations" section

要查看详细信息,请选择第二列中的查看调查发现链接。这将显示按产品(例如 Amazon Inspector)筛选的调查发现列表。要将搜索范围限制为 Lambda 函数,请将 ResourceType 设置为 AwsLambdaFunction。这将显示 Amazon Inspector 与 Lambda 函数相关的调查发现。

Filter for Amazon Inspector results related to Lambda functions

对于 GuardDuty,您可以识别可疑的网络流量模式。此类异常情况可能表明您的 Lambda 函数中存在潜在的恶意代码。

通过 IAM Access Analyzer,您可以检查策略,尤其是那些带有向外部实体授予函数访问权限的条件语句的策略。此外,IAM Access Analyzer 还会评估在使用 Lambda API 中 AddPermission 操作时与 EventSourceToken 一起设置的权限。

处理可观测性调查发现

鉴于 Lambda 函数的可配置范围很广,而且要求各不相同,因此标准化的自动化补救解决方案可能无法适用于所有情况。此外,在不同的环境中,变更的实施方式也有所不同。如果您遇到任何看似不合规的配置,请考虑以下指导原则:

  1. 标记策略

    我们建议实施全面的标记策略。每个 Lambda 函数都应使用关键信息进行标记,例如以下信息:

    • 所有者:负责该函数的人员或团队。

    • 环境:生产、暂存、开发或沙盒。

    • 应用程序:此函数所属的更广泛上下文(如果适用)。

  2. 所有者外联活动

    与其自动进行重大更改(例如 VPC 配置调整),不如主动联系不合规函数(通过所有者标签标识)的所有者,方便其拥有足够时间执行以下任一操作:

    • 调整 Lambda 函数上的不合规配置。

    • 提供解释并申请例外情况,或完善合规标准。

  3. 维护配置管理数据库(CMDB)

    虽然标签可以提供即时上下文,但通过维护集中式 CMDB,可以提供更深入的见解。CMDB 可以保存有关每个 Lambda 函数、其依赖关系和其他关键元数据的更精细的信息。CMDB 是审计、合规性检查和识别函数所有者的宝贵资源。

随着无服务器基础设施状况的不断演变,采取积极主动的监控态度至关重要。通过 AWS Config、Security Hub 和 Amazon Inspector 等工具,可以快速识别出潜在的异常或不合规配置。但是,仅靠工具并不能确保完全合规或使用最佳配置。将这些工具与有据可查的流程和最佳实践相结合至关重要。

  • 反馈环路:确保采取补救措施后会有反馈环路。这意味着要定期重访不合规资源,以确认其是否已更新,或是否在存在相同问题的情况下继续运行。

  • 文档:务必记录观察结果、采取的行动以及批准的任何例外情况。适当的文档不仅有助于审计,而且还有助于改进流程,从而在将来提高合规性和安全性。

  • 培训和意识:确保所有利益相关者(特别是 Lambda 函数所有者),定期接受培训,并了解最佳实践、组织策略和合规要求。定期举办研讨会、网络研讨会或培训课程,对确保每个人就安全性和合规性保持一致意见大有裨益。

总而言之,尽管工具和技术为检测和标记潜在问题提供了强大功能,但人的因素(理解、沟通、培训和文档)仍然至关重要。它们共同构成了强大的组合,可确保您的 Lambda 函数和更广泛的基础设施保持合规性、安全性并根据您的业务需求进行优化。