安全控制:数据保护
数据保护涵盖对静态数据保护、传输中和授权访问机制的控制,包括使用访问控制、加密、密钥管理和证书管理发现、分类、保护和监视敏感数据资产。
DP-1:发现、分类和标记敏感数据
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
3.2、3.7、3.13 | RA-2、SC-28 | A3.2 |
安全原则:根据定义的敏感数据范围建立和维护敏感数据的清单。 使用工具发现、分类和标记范围内的敏感数据。
Azure 指南:使用 Microsoft Purview 等工具,将以前的 Azure Purview 和 Microsoft 365 合规性解决方案与 Azure SQL 数据发现和分类相结合,集中扫描、分类和标记驻留在 Azure、本地、Microsoft 365 和其他位置的敏感数据。
Azure 实现和其他上下文:
AWS 指南:将数据从各种源复制到 S3 存储存储桶,并使用 AWS Macie 扫描、分类和标记存储在存储桶中的敏感数据。 AWS Macie 可以根据自定义数据标识符规则检测敏感数据,例如安全凭据、财务信息、PHI 和 PII 数据或其他数据模式。
还可以使用 Azure Purview 多云扫描连接器扫描、分类和标记驻留在 S3 存储存储桶中的敏感数据。
注意:还可以使用 AWS 市场中的第三方企业解决方案进行数据发现分类和标记。
AWS 实现和其他上下文:
GCP 指南:使用 Google 云数据丢失防护等工具集中扫描、分类和标记驻留在 GCP 和本地环境中的敏感数据。
此外,使用 Google Cloud 数据目录利用云数据丢失防护(DLP)扫描的结果来识别定义的标记模板的敏感数据。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):
DP-2:监视针对敏感数据的异常情况和威胁
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
3.13 | AC-4、SI-4 | A3.2 |
安全原则:监视敏感数据的异常情况,例如未经授权将数据传输到企业可见性和控制范围之外的位置。 这通常涉及监视那些可能意味着未经授权的数据外泄的异常活动(大型或异常传输)。
Azure 指南:使用 Azure 信息保护(AIP)监视已分类和标记的数据。
使用 Microsoft Defender for Storage、Microsoft Defender for SQL、Microsoft Defender for open-source 关系数据库,Microsoft Defender for Cosmos DB 来提醒异常传输可能指示未经授权传输敏感数据的信息。
注意:如果需要符合数据丢失防护(DLP),可以使用基于主机的 DLP 解决方案从Azure 市场或 Microsoft 365 DLP 解决方案强制实施检测和/或预防控制,以防止数据外泄。
Azure 实现和其他上下文:
- 启用 Azure Defender for SQL
- 启用 Azure Defender for Storage
- 启用 Microsoft Defender for Azure Cosmos DB
- 为开源关系数据库启用 Microsoft Defender 并响应警报
AWS 指南:使用 AWS Macie 监视已分类和标记的数据,并使用 GuardDuty 检测某些资源(S3、EC2 或 Kubernetes 或 IAM 资源)上的异常活动。 可以使用 EventBridge 对发现和警报进行会审、分析和跟踪,并将其转发到 Microsoft Sentinel 或安全中心进行事件聚合和跟踪。
还可以将 AWS 帐户连接到 Microsoft Defender for Cloud 进行合规性检查、容器安全性和终结点安全功能。
注意:如果需要符合数据丢失防护(DLP),可以从 AWS 市场使用基于主机的 DLP 解决方案。
AWS 实现和其他上下文:
GCP 指南:使用 Google Cloud Security 命令中心/事件威胁检测/异常情况检测来警报有关可能指示未经授权传输敏感数据信息的信息的异常传输。
还可以将 GCP 帐户连接到 Microsoft Defender for Cloud 进行合规性检查、容器安全性和终结点安全功能。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):
DP-3:加密传输中的敏感数据
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
3.10 | SC-8 | 3.5、3.6、4.1 |
安全原则:使用加密保护传输中的数据免受“带外”攻击(如流量捕获),以确保攻击者无法轻松读取或修改数据。
设置网络边界和服务范围,并在网络内部和外部强制实施传输中数据加密。 虽然这对于专用网络上的流量来说是可选的,但对于外部和公共网络上的流量来说,这是至关重要的。
Azure 指南:在内置传输加密功能的本机数据的服务(如 Azure 存储)中强制实施安全传输。
通过确保连接到 Azure 资源的任何客户端都使用传输层安全性 (TLS) v1.2 或更高版本,对 Web 应用程序工作负载和服务强制实施 HTTPS。 对于 VM 的远程管理,请使用 SSH(适用于 Linux)或 RDP/TLS(适用于 Windows),而不是使用未加密的协议。
若要远程管理 Azure 虚拟机,请使用 SSH(适用于 Linux)或 RDP/TLS(for Windows),而不是未加密的协议。 对于安全文件传输,请在 Azure 存储 Blob、App 服务 应用和函数应用中使用 SFTP/FTPS 服务,而不是使用常规 FTP 服务。
注意:为在 Azure 数据中心之间传输的所有 Azure 流量启用传输中数据加密。 默认情况下,大多数 Azure 服务上都启用了 TLS v1.2 或更高版本。 某些服务(如Azure 存储和应用程序网关)可以在服务器端强制实施 TLS v1.2 或更高版本。
Azure 实现和其他上下文:
AWS 指南:在内置传输加密功能的本机数据的服务(例如 Amazon S3、RDS 和 CloudFront)中强制实施安全传输。
通过确保连接到 AWS 资源的任何客户端都使用 TLS v1.2 或更高版本,强制实施 HTTPS(例如在 AWS Elastic 负载均衡器 中)用于工作负荷 Web 应用程序和服务(服务器端或客户端或客户端或两者)。
对于 EC2 实例的远程管理,请使用 SSH(适用于 Linux)或 RDP/TLS(for Windows),而不是未加密的协议。 对于安全文件传输,请使用 AWS 传输 SFTP 或 FTPS 服务,而不是常规 FTP 服务。
注意:AWS 数据中心之间的所有网络流量在物理层以透明方式加密。 使用支持的 Amazon EC2 实例类型时,在网络层上对等互连的 VPN 和对等互连的 VPN 之间的所有流量都以透明方式加密。 默认情况下,大多数 AWS 服务上都启用了 TLS v1.2 或更高版本。 AWS 负载均衡器等某些服务可以在服务器端强制实施 TLS v1.2 或更高版本。
AWS 实现和其他上下文:
GCP 指南:在内置传输加密功能的本机数据等服务(例如 Google 云存储)中强制实施安全传输。
为 Web 应用程序工作负载和服务强制实施 HTTPS,确保连接到 GCP 资源的任何客户端都使用传输层安全性 (TLS) v1.2 或更高版本。
对于远程管理,Google 云计算引擎使用 SSH(适用于 Linux)或 RDP/TLS(for Windows),而不是未加密的协议。 对于安全文件传输,请使用 Google Cloud Big Query 或 Cloud App Engine 等服务中的 SFTP/FTPS 服务,而不是常规 FTP 服务。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):
DP-4:默认启用静态数据加密
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
3.11 | SC-28 | 3.4、3.5 |
安全原则:为了补充访问控制,应保护静态数据免受“带外”攻击(例如使用加密访问基础存储)。 这有助于确保攻击者无法轻松读取或修改数据。
Azure 指南:许多 Azure 服务默认使用服务管理的密钥在基础结构层启用静态数据加密。 这些服务管理的密钥是代表客户生成的,每两年自动轮换一次。
在技术上可行且默认未启用的情况下,可以在 Azure 服务或存储级别、文件级别或数据库级别的 VM 中启用静态数据加密。
Azure 实现和其他上下文:
AWS 指南:许多 AWS 服务默认使用 AWS 托管的客户主密钥在基础结构/平台层启用静态数据加密。 这些 AWS 托管的客户主密钥是代表客户生成的,每三年自动轮换一次。
在技术上可行且默认未启用的情况下,可以在 AWS 服务或存储级别、文件级别或数据库级别的 VM 中启用静态数据加密。
AWS 实现和其他上下文:
GCP 指南:许多 Google Cloud 产品和服务默认使用服务管理的密钥在基础结构层启用静态加密。 这些服务托管密钥是代表客户生成的,并自动轮换。
在技术上可行且默认未启用的情况下,可以在 GCP 服务或存储级别、文件级别或数据库级别的 VM 中启用静态数据加密。
注意:有关更多详细信息,请参阅文档“Google 云服务的加密粒度”。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):
DP-5:需要时在静态数据加密中使用客户管理的密钥选项
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
3.11 | SC-12、SC-28 | 3.4、3.5、3.6 |
安全原则:如果需要符合法规,请定义需要客户管理的密钥选项的用例和服务范围。 在服务中使用客户管理的密钥启用和实现静态数据加密。
Azure 指南:Azure 还提供了一个加密选项,它使用由你自己管理的密钥(客户管理的密钥)为大多数服务提供加密选项。
Azure 密钥库标准、高级和托管 HSM 原生与许多 Azure 服务集成,用于客户管理的密钥用例。 可以使用 Azure 密钥库生成密钥或自带密钥。
但是,使用客户管理的密钥选项需要额外的操作工作量来管理密钥生命周期。 这可能包括加密密钥生成、轮换、撤销和访问控制等。
Azure 实现和其他上下文:
AWS 指南:AWS 还提供了一个加密选项,使用由自己管理的密钥(存储在 AWS 密钥管理服务 中的客户主密钥)为某些服务提供加密选项。
AWS 密钥管理服务(KMS)与许多 AWS 服务本机集成,适用于客户管理的客户主密钥用例。 可以使用 AWS 密钥管理服务 (KMS) 生成主密钥或自带密钥。
但是,使用客户管理的密钥选项需要额外的操作努力来管理密钥生命周期。 这可能包括加密密钥生成、轮换、撤销和访问控制等。
AWS 实现和其他上下文:
GCP 指南:Google Cloud 为大多数服务使用自己管理的密钥(客户管理的密钥)提供加密选项。
Google Cloud 密钥管理服务(Cloud KMS)与许多 GCP 服务本机集成,用于客户管理的加密密钥。 可以使用云 KMS 创建和管理这些密钥,并将密钥存储为软件密钥、HSM 群集或外部密钥。 可以使用云 KMS 生成密钥或提供自己的密钥(客户提供的加密密钥)。
但是,使用客户管理的密钥选项需要额外的操作努力来管理密钥生命周期。 这可能包括加密密钥生成、轮换、撤销和访问控制等。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):
DP-6:使用安全密钥管理流程
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
空值 | IA-5、SC-12、SC-28 | 3.6 |
安全原则:记录和实施企业加密密钥管理标准、流程和过程,以控制密钥生命周期。 如果需要在服务中使用客户管理的密钥,请使用安全的 Key Vault 服务进行密钥生成、分发和存储。 根据定义的计划以及在密钥停用或泄露时轮换和撤销密钥。
Azure 指南:使用 Azure 密钥库创建和控制加密密钥生命周期,包括密钥生成、分发和存储。 根据定义的计划以及在密钥停用或泄露时,在 Azure Key Vault 和服务轮换和撤销密钥。 生成密钥时需要特定的加密类型和最小密钥大小。
如果需要在工作负载服务或应用程序中使用客户管理的密钥 (CMK),请确保遵循最佳做法:
- 使用密钥层次结构生成单独的数据加密密钥 (DEK),其中包含密钥保管库中的密钥加密密钥 (KEK)。
- 确保密钥注册到 Azure 密钥库,并通过每个服务或应用程序中的密钥 ID 实现。
若要最大化密钥材料生存期和可移植性,请将自己的密钥(BYOK)引入服务(即将受 HSM 保护的密钥从本地 HSM 导入 Azure 密钥库)。 按照建议的准则执行密钥生成和密钥传输。
注意:有关 Azure 密钥库 类型和 FIPS 符合性/验证级别的 FIPS 140-2 级别,请参阅以下内容。
- 保管库中受软件保护的密钥(高级和标准 SKU):FIPS 140-2 级别 1
- 保管库中受 HSM 保护的密钥(高级 SKU):FIPS 140-2 级别 2
- 托管 HSM 中受 HSM 保护的密钥:FIPS 140-2 级别 3
Azure 密钥库 Premium 在后端使用共享 HSM 基础结构。 Azure 密钥库托管 HSM 在需要更高级别的密钥安全性时,使用专用 HSM 的专用机密服务终结点。
Azure 实现和其他上下文:
AWS 指南:使用 AWS 密钥管理服务(KMS)创建和控制加密密钥生命周期,包括密钥生成、分发和存储。 根据定义的计划以及密钥停用或泄露时轮换和撤销 KMS 和服务中的密钥。
如果需要在工作负荷服务或应用程序中使用客户管理的客户主密钥,请确保遵循最佳做法:
- 使用密钥层次结构在 KMS 中使用密钥加密密钥(KEK)生成单独的数据加密密钥(DEK)。
- 确保密钥注册到 KMS,并通过每个服务或应用程序中的 IAM 策略实现。
若要最大化密钥材料生存期和可移植性,请将自己的密钥(BYOK)引入服务(即将受 HSM 保护的密钥从本地 HSM 导入 KMS 或云 HSM)。 按照建议的准则执行密钥生成和密钥传输。
注意:AWS KMS 在后端使用共享 HSM 基础结构。 如果需要管理自己的密钥存储和专用 HSM(例如更高级别密钥安全性的法规合规性要求),请使用 AWS CloudHSM 支持的 AWS KMS 自定义密钥存储来生成和存储加密密钥。
注意:请参阅下面的 FIPS 140-2 级别,了解 AWS KMS 和 CloudHSM 中的 FIPS 符合性级别:
- AWS KMS 默认值:验证 FIPS 140-2 级别 2
- 使用 CloudHSM 的 AWS KMS:已验证的 FIPS 140-2 级别 3(对于某些服务)
- AWS CloudHSM:FIPS 140-2 级别 3 已验证
注意:对于机密管理(凭据、密码、API 密钥等),请使用 AWS 机密管理器。
AWS 实现和其他上下文:
GCP 指南:使用云密钥管理服务(云 KMS)在兼容的 Google 云服务和工作负载应用程序中创建和管理加密密钥生命周期。 根据定义的计划和密钥停用或泄露时轮换和撤销云 KMS 和服务中的密钥。
使用 Google 的云 HSM 服务向云 KMS (密钥管理服务) 提供硬件支持的密钥,使你可以管理和使用自己的加密密钥,同时受到完全托管的硬件安全模块(HSM)的保护。
云 HSM 服务使用经过 FIPS 140-2 级别 3 验证的 HSM,并且始终在 FIPS 模式下运行。 FIPS 140-2 级别 3 验证,并且始终在 FIPS 模式下运行。 FIPS 标准指定 HSM 使用的加密算法和随机数生成。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):
DP-7:使用安全证书管理流程
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
空值 | IA-5、SC-12、SC-17 | 3.6 |
安全原则:记录并实施企业证书管理标准、流程和过程,其中包括证书生命周期管理和证书策略(如果需要公钥基础结构)。
使用自动化机制确保及时清查、跟踪、监视和续订组织中的关键服务使用的证书,以避免服务中断。
Azure 指南:使用 Azure 密钥库创建和控制证书生命周期,包括创建/导入、轮换、吊销、存储和清除证书。 确保证书生成遵循定义的标准,而不使用任何不安全的属性,例如密钥大小不足、有效期过长、加密不安全等。 在 Azure 密钥库中设置证书的自动轮换,并基于定义的计划和证书过期时间支持 Azure 服务。 如果前端应用程序中不支持自动轮换,请在 Azure 密钥库中使用手动轮换。
由于安全保证有限,避免在关键服务中使用自签名证书和通配符证书。 相反,可以在 Azure 密钥库中创建公共签名证书。 以下证书颁发机构(CA)是当前与 Azure 密钥库集成的合作伙伴提供商。
- DigiCert:Azure Key Vault 提供 DigiCert 的 OV TLS/SSL 证书。
- GlobalSign:Azure Key Vault 提供 GlobalSign 的 OV TLS/SSL 证书。
注意:仅使用已批准的 CA,并确保禁用这些 CA 颁发的已知错误的根/中间证书。
Azure 实现和其他上下文:
AWS 指南:使用 AWS 证书管理器(ACM)创建和控制证书生命周期,包括创建/导入、轮换、吊销、存储和清除证书。 确保证书生成遵循定义的标准,而不使用任何不安全的属性,例如密钥大小不足、有效期过长、加密不安全等。 根据定义的计划和证书到期时间设置 ACM 中证书的自动轮换和支持的 AWS 服务。 如果前端应用程序中不支持自动轮换,请在 ACM 中使用手动轮换。 同时,应始终跟踪证书续订状态,以确保证书有效性。
由于安全保证有限,避免在关键服务中使用自签名证书和通配符证书。 相反,在 ACM 中创建公共签名证书(由 Amazon 证书颁发机构签名),并在 CloudFront、负载均衡器、API 网关等服务中以编程方式部署它。还可以使用 ACM 建立专用证书颁发机构(CA)来对专用证书进行签名。
注意:仅使用已批准的 CA,并确保禁用这些 CA 颁发的已知错误的 CA 根/中间证书。
AWS 实现和其他上下文:
GCP 指南:使用 Google Cloud Certificate Manager 创建和控制证书生命周期,包括创建/导入、轮换、吊销、存储和清除证书。 确保证书生成遵循定义的标准,而不使用任何不安全的属性,例如密钥大小不足、有效期过长、加密不安全等。 在证书管理器中设置证书的自动轮换,并基于定义的计划和证书过期时间支持 GCP 服务。 如果前端应用程序中不支持自动轮换,请在证书管理器中使用手动轮换。 同时,应始终跟踪证书续订状态,以确保证书有效性。
由于安全保证有限,避免在关键服务中使用自签名证书和通配符证书。 相反,可以在证书管理器中创建已签名的公共证书,并在负载均衡器和云 DNS 等服务中以编程方式部署它。还可以使用证书颁发机构服务建立专用证书颁发机构(CA)来对专用证书进行签名。
注意:还可以使用 Google Cloud Secret Manager 来存储 TLS 证书。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):
DP-8:确保密钥和证书存储库的安全性
CIS Controls v8 ID | NIST SP 800-53 r4 ID(s) | PCI-DSS ID v3.2.1 |
---|---|---|
空值 | IA-5、SC-12、SC-17 | 3.6 |
安全原则:确保用于加密密钥和证书生命周期管理的密钥保管库服务的安全性。 通过访问控制、网络安全、日志记录和监视以及备份强化 Key Vault 服务,以确保始终使用最大安全性保护密钥和证书。
Azure 指南:通过以下控制措施强化 Azure 密钥库服务来保护加密密钥和证书:
- 在关键级别使用 Azure 密钥库托管 HSM 中的 RBAC 策略实现访问控制,以确保遵循最低特权和职责分离原则。 例如,确保职责分离,以便管理加密密钥的用户无法访问加密数据,反之亦然。 对于 Azure 密钥库标准和高级版,请为不同的应用程序创建唯一的保管库,以确保遵循最低特权和职责分离原则。
- 启用 Azure 密钥库日志记录,以确保记录关键管理平面和数据平面活动。
- 使用专用链接和Azure 防火墙保护 Azure 密钥库,以确保服务暴露最少
- 使用托管标识访问存储在 Azure 密钥库工作负载应用程序中的密钥。
- 清除数据时,请确保在清除实际数据、备份和存档之前不会删除密钥。
- 使用 Azure 密钥库备份密钥和证书。 启用软删除和清除保护以避免意外删除密钥。需要删除密钥时,请考虑禁用密钥而不是删除密钥,以避免意外删除密钥和数据加密擦除。
- 对于自带密钥(BYOK)用例,请在本地 HSM 中生成密钥并导入密钥,以最大程度地提高密钥的生存期和可移植性。
- 切勿将密钥以纯文本格式存储在 Azure 密钥库之外。 默认情况下,所有密钥保管库服务中的密钥都不可导出。
- 在 Azure 密钥库 Premium 和 Azure 托管 HSM 中使用 HSM 支持的密钥类型(RSA-HSM)进行硬件保护和最强大的 FIPS 级别。
启用适用于 Key Vault 的 Microsoft Defender,以便为 Azure Key Vault 提供 Azure 原生高级威胁防护,从而提供额外的安全智能层。
Azure 实现和其他上下文:
AWS 指南:若要确保加密密钥的安全性,请通过以下控制措施强化 AWS 密钥管理服务 (KMS) 服务来保护密钥:
- 将密钥策略(密钥级访问控制)与 IAM 策略(基于标识的访问控制)结合使用来实现访问控制,以确保遵循最低特权和职责分离原则。 例如,确保职责分离,以便管理加密密钥的用户无法访问加密数据,反之亦然。
- 使用 CloudTrails 等检测控件记录和跟踪 KMS 中的密钥使用情况,并提醒你执行关键操作。
- 切勿在 KMS 之外以纯文本格式存储密钥。
- 需要删除密钥时,请考虑在 KMS 中禁用密钥,而不是删除密钥,以避免意外删除密钥和数据加密擦除。
- 清除数据时,请确保在清除实际数据、备份和存档之前不会删除密钥。
- 对于自带密钥(BYOK)用例,请在本地 HSM 中生成密钥并导入密钥,以最大程度地提高密钥的生存期和可移植性。
对于证书安全性,请通过以下控制措施强化 AWS 证书管理器(ACM)服务来保护证书:
- 将资源级策略与 IAM 策略(基于标识的访问控制)结合使用来实现访问控制,以确保遵循最低特权和职责分离原则。 例如,确保用户帐户的职责分离:生成证书的用户帐户与只需要对证书进行只读访问权限的用户帐户分开。
- 使用 CloudTrails 等检测控件记录和跟踪 ACM 中证书的使用情况,并针对关键操作发出警报。
- 按照 KMS 安全指南来保护用于服务证书集成的私钥(为证书请求生成)。
AWS 实现和其他上下文:
GCP 指南:若要确保加密密钥的安全性,请通过以下控制强化密钥管理服务来保护密钥:
- 使用 IAM 角色实现访问控制,以确保遵循最低特权和职责分离原则。 例如,确保职责分离,以便管理加密密钥的用户无法访问加密数据,反之亦然。
- 为每个项目创建单独的密钥环,以便你能够按照最低特权最佳做法轻松管理和控制对密钥的访问。 此外,还可以更轻松地审核谁有权何时访问哪些密钥。
- 启用密钥自动轮换,以确保定期更新和刷新密钥。 这有助于防范潜在的安全威胁,例如暴力攻击或试图获取敏感信息访问权限的恶意参与者。
- 设置审核日志接收器以跟踪 GCP KMS 环境中发生的所有活动。
对于证书安全性,请通过以下控件强化 GCP 证书管理器和证书颁发机构服务来保护证书:
- 将资源级策略与 IAM 策略(基于标识的访问控制)结合使用来实现访问控制,以确保遵循最低特权和职责分离原则。 例如,确保用户帐户的职责分离:生成证书的用户帐户与只需要对证书进行只读访问权限的用户帐户分开。
- 使用云审核日志等检测控件记录和跟踪证书管理器中的证书使用情况,并在关键操作时发出警报。
- 机密管理器还支持存储 TLS 证书。 需要遵循类似的安全做法,在机密管理器中实现安全控制。
GCP 实现和其他上下文:
客户安全利益干系人(了解详细信息):