安全性

作用:

  • (1)安全责任共担模式中,AWS 负责运营、管理和控制从主机操作系统和虚拟层的组件到服务运营所处设施的物理安全性组件,可以减轻客户的运营负担。

  • (2) 这些工具和技术很重要,因为它们有助于实现防止财务损失或履行监管义务等目标。

  • (3) 利用安全性最佳实践保护客户的信息和系统(包括数据的机密性和完整性),管理用户权限以及建立控制措施以检测安全事件。

安全责任共担模式:

  • AWS 负责云"本身"的安全性

  • 客户 负责云"内部"的安全性

alt text

安全性的七大设计原则:

1.实施强大的身份验证基础:

  • 采用最低权限原则,并对与 AWS 资源的每次交互都授予适当的授权,以强制执行职责分离。集中进行身份管理,旨在消除对长期静态凭证的依赖。

  • 当您开始致力于实施严谨的身份管理时,请使用以下 AWS 服务:

    • AWS Identity and Access Management (IAM)

    • AWS Identity Center(AWS Single Sign-On 的接替版本)

    • AWS Directory Service

    • Amazon Cognito

    • AWS Organizations

    • AWS Resource Access Manager (AWS RAM)

alt text

2.实施可追踪性:

  • 实时监控、提醒和审计对环境的操作和更改。将日志和指标集合与系统集成,以自动调查并采取措施。

    • 使用发现性控制可让您了解您的账户活动,但这只是其中的一半。您肯定还有其他目的,即在超过阈值时发出警报和根据这些警报执行操作。如果没有指定的手动或自动操作,则没有必要触发警报。

    • 发现性控制提供特定事件的事后可见性。确保您构建一个可以在整个架构中实现可追踪性的环境。在所有 AWS 区域中设置 CloudTrail。配置 VPC 流日志以及所有现有组件(从负载均衡器到数据库)的日志记录。
      提示:AWS CloudTrail 是一项服务,它支持对 AWS 账户进行监管、合规性检查、操作审核和风险审核。

    • 可以使用 AWS Config 自动执行特定检查,以从日志中提取特定事件。在事件发生后通过自动化(而不是手动操作)进行上报。
      提示:AWS Config 是一项服务,它可以帮助您评估、审计和评价您的 AWS 资源配置。

  • 使用发现性控制来识别问题,并基于事件使用以下 AWS 发现性控制服务执行操作:

alt text

3.在所有层应用安全性:

  • 采用具备多种安全控制的深度防御方法。确保在基础设施的多个层充分利用安全性(例如,网络边缘、VPC、负载均衡、每个实例和计算服务、操作系统、应用程序和代码)。

  • 尽可能使用 Amazon CloudFront 来帮助缓解分布式拒绝服务 (DDoS) 攻击。这还可以包括 AWS Well-Architected Framework 集成。在您的 VPC 中,使用 Application Load Balancer 缩小攻击面,一直到应用程序层。使用网络访问控制列表(网络 ACL)和安全组添加适当的权限。
    提示:Amazon CloudFront 是 AWS 提供的一项内容分发网络(CDN)服务,旨在加快全球用户对静态和动态 Web 内容的访问速度。

alt text

4.自动应用安全最佳实践:

  • 基于自动化软件的安全机制能够提高您更快速、更经济高效地进行安全扩缩的能力。创建安全的架构,包括在版本控制模板中作为代码定义和管理的控制的实现。

  • 请考虑运行持续合规性机制,例如 AWS Config。AWS Config 提供的记录包含您在某个合规状态保持了多长时间、您何时产生了偏差以及具体发生了什么情况。通过即时访问证据,审计情况会变得更易于管理。通过组合使用近乎实时的通知和适当的补救措施来解决问题。

alt text

5.保护传输中的数据和静态数据:

  • 将您的数据分为多个敏感度等级,并在适当时使用加密、令牌化和访问控制等机制。

  • 数据分类提供了一种根据敏感度等级对企业数据进行分类的方法。加密通过使未经授权的访问无法理解数据来保护数据。这些工具和技术有助于防止财务损失、遵从监管义务等,其重要程度可见一斑。

  • 在 AWS 中,以下实践有助于保护数据:

    • 作为 AWS 客户,您可以完全掌控自己的数据。

    • AWS 使您可以更轻松地加密数据和管理密钥,包括定期密钥轮换,这可以由 AWS 自动执行或由您自己维护。

  • 以下 AWS 数据保护服务可帮助实施此设计原则:

alt text

6.使人员远离数据:

  • 借助多种机制和工具,减少或杜绝直接访问或手动处理数据的需求。

    • 降低处理敏感数据时数据被误处理或修改以及人为错误的风险。

    • 降低因无意的更改而损坏原始数据源的几率。

  • 在以下示例中,应用程序基于用户请求创建并提供故障排查 PDF。Amazon DocumentDB(兼容 MongoDB)存储库安全地向 Lambda 函数提供文档。其他键值数据存储在 Amazon DynamoDB 表中。只有 Lambda 有权访问数据集(在文档和 DynamoDB 存储库中)以创建 PDF。
    提示:Amazon DocumentDB 是 AWS 提供的一种高性能、可扩展且完全托管的 NoSQL 文档数据库服务,与 MongoDB 兼容。

  • 在本例中,使人员远离数据这一信息是指不需要直接访问数据源的人员。相反,使用特定权限调用 Lambda 来创建易读的 PDF。然后,将 PDF 传递到故障单应用程序。 无需人员手动在这些数据库存储库中访问您的文档和日志。

alt text

7.做好应对安全事件的准备:

  • 制定符合您企业需求的事故管理与调查策略和流程,做好事故应对准备。运行事件响应模拟并使用自动化工具来提高检测、调查和恢复的速度。

  • 在事件响应之前做好安全性事件应对准备。您应该做好防患于未然的准备。通过实际试用,您可以模拟常见的安全性场景。

  • 利用以下工具自动执行事件检测和响应:

    • Amazon Detective

    • AWS Config规则

    • AWS Lambda

问题1

  • 应在基础设施的哪一层应用安全性?

    • 网络边缘

    • VPC

    • 负载均衡器

    • 计算实例

    • 以上均是

云安全性的七个最佳实践领域:

1.安全性基础:

  • AWS 响应滥用和泄露事件

    • 滥用活动是指 AWS 客户的实例或其他资源的恶意、攻击性、非法或可能损害其他互联网网站的行为。AWS 与您合作,从您的 AWS 资源中检测和解决可疑和恶意活动。您资源中的意外或可疑行为可能表明您的 AWS 资源已泄露,这表明您的业务存在潜在风险。

  • 监管

    • 安全监管作为整体方法的一部分,旨在通过定义策略和控制目标来支持业务目标,以帮助管理风险。通过遵循安全控制目标的分层方法实现风险管理,每一层都建立在前一层的基础之上。了解 AWS 责任共担模型是基础层。这些知识清楚地说明了您在客户方面的责任以及您从 AWS 获得哪些益处。AWS Artifact(opens in a new tab) 是一项有优势的资源,让您能够按需访问 AWS 的安全性与合规性报告和选择线上协议。
      提示:AWS Artifact 是 AWS 提供的一个自助服务门户,它允许客户按需访问 AWS 安全性和合规性文档,

  • AWS 账户管理和分离

    • 基于功能、合规性要求或通用控制集合,在单独的账户和组账户中组织工作负载,而不是镜像企业的报告结构。在 AWS 中,账户是一道严格界限。例如,我们强烈推荐账户级分离方式,用以隔离生产工作负载和开发测试工作负载。

      • 集中管理账户:AWS Organizations 可自动创建和管理 AWS 账户,并在创建这些账户后对其进行控制。

      • 集中设置控制:通过仅允许适当级别的特定服务、区域和服务操作来控制您的 AWS 账户可以执行的操作。

  • 安全地运营工作负载

    • 安全地运营工作负载覆盖了工作负载的整个生命周期,从设计、构建、运行到持续改进,无一例外。为了安全地运营您的工作负载,您必须将至关重要的最佳实践应用于各个安全领域。将您在企业和工作负载级别卓越运营中设置的要求和流程应用到所有领域。随时了解最新的 AWS 和行业建议以及威胁信息,有利于威胁模型和控制目标的演进。实现安全流程、测试和验证自动化,可扩大安全运营的规模。

2.身份和访问管理:

  • 如要使用 AWS 服务,您必须为您的用户和应用程序开放您的 AWS 账户资源的访问权限。随着您在 AWS 上运行的工作负载越来越多,您需要稳健的身份管理和授权机制,确保只有适当人员在相应条件下才能获得对应资源的访问权限。

  • 身份管理

    • 及安全运营 AWS 工作负载时,您需要管理的身份分为两类(人员身份和机器身份)。

  • 最佳实践包括:

    • 设置严格的登录机制

    • 使用临时凭证

    • 安全地存储和使用密钥

    • 借助集中式身份提供商

    • 定期审计和轮换凭证

    • 利用用户组和属性

  • 权限管理

    • 管理权限,控制需访问 AWS 和工作负载的人员和机器的身份信息的访问权限。权限用于控制谁可以访问哪些内容以及可以在什么情况下访问。设置特定人员身份和机器身份的相关权限,开放对特定资源的相关服务操作的访问。另外,设定取得权限必须满足的条件。例如,您可以允许开发人员创建新的 Lambda 函数,但仅用于某个特定区域。

  • 最佳实践包括:

    • 定义访问要求

    • 授权最低权限访问机制

    • 制定紧急访问流程

    • 持续减少授权

    • 制定企业权限防护机制

    • 基于生命周期管理访问

    • 分析公共和跨账户访问

    • 安全地在企业内部共享资源

    • 安全地和第三方共享资源

3.检测:

  • 检测分为两部分,检测意外或不必要的配置更改和检测意外行为。第一部分可以在应用程序交付生命周期中的多个位置进行。使用基础设施即代码(例如,CloudFormation 模板),可以在部署工作负载之前,通过在 CI/CD 管道或源代码控制中实施检查,查明不需要的配置。然后,当您将工作负载部署到非生产环境和生产环境中时,可以使用本机 AWS、开源或 AWS 合作伙伴工具检查配置。
    提示:CI/CD 管道,即持续集成和持续交付管道,是一种软件开发实践,它通过自动化的方式来构建、测试和部署代码,以提高软件开发的效率和质量。

  • 最佳实践包括:

    • 配置服务和应用程序日志记录

    • 集中分析日志、调查结果和指标

    • 自动响应事件

    • 实施可操作的安全事件

4.基础设施保护:

  • 基础设施保护包括采取最佳实践和履行组织或监管义务所需的控制方法,如深度防御。此类方法对于在云中成功地持续运营至关重要。

  • 网络保护:

    • 包括您的职工和客户在内的用户分布在不同地点。在传统模式中,拥有您的网络访问权限的任何人和任何事物均可信任,您需要从这种模式中脱离出来。您遵循在各层级采取安全性措施的原则,就代表您应用了零信任(opens in a new tab)的方法。零信任安全是一种模型,应用程序组件或微服务之间彼此分离,互不信任。

  • 最佳实践包括:

    • 创建网络层

    • 控制所有层的流量

    • 自动执行网络保护

    • 实施检查和保护

  • 计算保护:

    • 计算资源包括 EC2 实例、容器、AWS Lambda 函数、数据库服务、IoT 设备等。每一类计算资源都需要不同的保护方式。不过,这些保护方式也有许多共同的策略,包括深度防御、漏洞管理、减少攻击面、配置和运营自动化以及实现远程操作等。这一节将为您介绍保护关键服务的计算资源的通用指南。对于您使用的每一项 AWS 服务,了解服务文档中的具体安全性建议都是很重要的。

  • 最佳实践包括:

    • 执行漏洞管理

    • 减少攻击面

    • 实施托管服务

    • 自动执行计算保护

    • 实现远程操作

    • 验证软件完整性

5.数据保护:

  • 在构建任何工作负载前,均应落实安全性相关的基础实践。例如,数据分类提供一种方法来基于敏感性级别对数据进行分类,而加密通过使未经授权的访问无法理解数据来保护数据。

  • 最佳实践包括:

    • 识别工作负载中的数据

    • 定义数据保护控制

    • 自动识别和分类

    • 定义数据生命周期管理

  • 保护静态数据

    • 静态数据是指您在工作负载的任何持续时间内保留在非易失性存储中的任何数据。包括数据库存储、对象存储、数据库、存档、IoT 设备以及任何其他能留存数据的存储介质。执行加密和适当的访问控制时,保护静态数据可降低未授权访问的风险。

  • 加密和令牌化是两种重要但不同的数据保护方案。

  • 最佳实践包括:

    • 实施密钥和证书管理

    • 强制执行传输中加密

    • 自动检测意外数据访问

    • 验证网络通信

  • 保护传输中的数据

    • 传输中的数据是指从一个系统传输到另一个系统的任何数据。这包括工作负载中资源之间的通信以及其他服务与终端用户之间的通信。通过为传输中的数据提供适当水平的保护,可以保护工作负载数据的保密性和完整性。

  • 最佳实践包括:

    • 实施密钥和证书管理

    • 强制执行传输中加密

    • 自动检测意外数据访问

    • 验证网络通信

6.事件响应:

  • 即使您的企业拥有成熟的预防性和检测性控制措施,也仍应实施机制来响应安全事件并减轻其潜在影响。您的准备工作会极大地影响您的团队在事件发生期间有效运行,对问题进行隔离、包含并进行取证,将运营恢复到已知良好状态的能力。应在安全事件发生之前准备好工具和访问权限,然后通过实际试用来定期练习如何响应事件,有助于确保能够恢复,同时最大限度地减少业务中断。

    • 云响应设计目标

    • 培训

    • 准备

    • 模拟

    • 迭代

7.应用程序安全:

  • 应用程序安全性 (AppSec) 描述了如何设计、构建和测试开发的工作负载的安全属性的整个过程。您的企业中应该有经过适当培训的人员,了解构建和发布基础设施的安全属性,并使用自动化方式来识别安全问题。

  • 将应用程序安全测试作为软件开发生命周期 (SDLC) 和发布后流程的常规部分,有助于确保您拥有一个结构化的机制来识别、修复应用程序安全问题,并在生产环境中避免出现此类问题。

  • 最佳实践包括:

    • 开展应用程序安全性培训

    • 自动测试整个开发和发布的生命周期

    • 定期执行渗透测试

    • 人工代码审查

    • 集中管理软件包和依赖项的服务

    • 以编程方式部署软件

    • 定期评估管道的安全性属性

    • 构建一个在工作负载团队中嵌入安全所有权的程序

作者:张祉杰