PCI DSS 控制 - AWS Security Hub
[PCI.AutoScaling.1] 与负载均衡器关联的 Auto Scaling 组应使用运行状况检查[PCI.CloudTrail.1] 应使用 CloudTrail AWS KMS 对 CMKs 日志进行静态加密[PCI.CloudTrail.2] 应启用 CloudTrail[PCI.CloudTrail.3] 应启用 CloudTrail 日志文件验证[PCI.CloudTrail.4] CloudTrail 跟踪应与 CloudWatch Logs 集成在一起[PCI.CodeBuild.1] CodeBuild GitHub 或 Bitbucket 源存储库 URLs 应使用OAuth[PCI.CodeBuild.2] CodeBuild 项目环境变量不应包含明文凭证[PCI.Config.1] 应启用 AWS Config[PCI.CW.1] 应具有有关“根”用户使用的日志指标筛选器和警报[PCI.DMS.1] AWS Database Migration Service 复制实例不应是公有实例[PCI.EC2.1] 不应公开还原 Amazon EBS 快照[PCI.EC2.2] VPC 默认安全组应禁止入站和出站流量[PCI.EC2.3] 应删除未使用的 EC2 安全组[PCI.EC2.4] 应删除未使用的 EC2EIPs[PCI.EC2.5] 安全组不应允许从 0.0.0.0/0 到端口 22 的传入流量[PCI.EC2.6] 应在所有VPCs中启用 VPC 流日志记录[PCI.ELBV2.1] 应配置 Application Load Balancer 以将所有 HTTP 请求重定向到 HTTPS[PCI.ES.1] Amazon Elasticsearch Service 域应位于 VPC 中[PCI.ES.2] Amazon Elasticsearch Service 域应启用静态加密[PCI.GuardDuty.1] 应启用GuardDuty[PCI.IAM.1] 不应存在 IAM 根用户访问密钥[PCI.IAM.2] IAM 用户不应附加 IAM 策略[PCI.IAM.3] IAM 策略不应允许完全“*”管理权限[PCI.IAM.4] 应该为根用户启用硬件 MFA[PCI.IAM.5] 应该为根用户启用虚拟 MFA[PCI.IAM.6] 应该为所有 IAM 用户启用 MFA[PCI.IAM.7] 如果在预定义的天数内未使用 IAM 用户凭证,则应将其禁用[PCI.IAM.8] IAM 用户的密码策略应具有强配置[PCI.KMS.1] 应启用客户主密钥 (CMK) 轮换[PCI.Lambda.1] Lambda 函数应禁止公开访问[PCI.Lambda.2] Lambda 函数应位于 VPC 中[PCI.RDS.1] RDS 快照应禁止公开访问[PCI.RDS.2] RDS 数据库实例应禁止公开访问[PCI.Redshift.1] Amazon Redshift 集群应禁止公开访问[PCI.S3.1] S3 存储桶应禁止公开写入访问[PCI.S3.2] S3 存储桶应禁止公开读取访问[PCI.S3.3] S3 存储桶应启用跨区域复制[PCI.S3.4] S3 存储桶应启用服务器端加密[PCI.S3.5] S3 存储桶应请求使用安全套接字层[PCI.S3.6] 应启用 S3 阻止公有访问设置[PCI.SageMaker.1] Amazon SageMaker 笔记本实例不应具有直接 Internet 访问权限[PCI.SSM.1] 在安装补丁后,Systems Manager 管理的 Amazon EC2 实例的补丁合规性状态应该为 COMPLIANT[PCI.SSM.2] 由 Systems Manager 管理的实例的关联合规性状态应为 COMPLIANT[PCI.SSM.3] EC2 实例应由 AWS Systems Manager 管理
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

PCI DSS 控制

Security Hub 中的 PCI DSS 安全标准支持以下控制。对于每个控制,该信息包括严重性、资源类型、AWS Config 规则和修复步骤。

[PCI.AutoScaling.1] 与负载均衡器关联的 Auto Scaling 组应使用运行状况检查

严重性: Low

资源: Auto Scaling 组

AWS Config 规则:autoscaling-group-elb-healthcheck-required

参数:

该控制检查与负载均衡器关联的 Auto Scaling 组是否使用 Elastic Load Balancing 运行状况检查。

PCI DSS 不需要使用负载均衡或高可用性配置。不过,该检查符合 AWS 最佳实践。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 2.2: 为所有系统组件制定配置标准。确保这些标准解决了所有已知的安全漏洞,并与行业认可的系统强化标准保持一致。

使用负载均衡复制系统可以提供高可用性,并且是一种减轻 DDoS 事件影响的方法。

这是一种用于实施系统强化配置的方法。

Remediation

启用 Elastic Load Balancing 运行状况检查

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格的 Auto Scaling 下,选择 Auto Scaling 组

  3. 要从列表中选择组,请选择右框。

  4. Actions (操作) 中,选择 Edit (编辑)

  5. 对于运行状况检查类型,请选择 ELB

  6. 对于运行状况检查宽限期,输入 300

  7. 选择 Save (保存)

有关将负载均衡器与 Auto Scaling 组结合使用的更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南

[PCI.CloudTrail.1] 应使用 CloudTrail AWS KMS 对 CMKs 日志进行静态加密

严重性:

资源:CloudTrail 跟踪

AWS Config 规则:cloud-trail-encryption-enabled

参数:

该控制检查是否将 AWS CloudTrail 配置为使用服务器端加密 (SSE) AWS KMS 客户主密钥 (CMK) 加密。

如果仅使用默认加密选项,您可以选择禁用该检查。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 3.4: 渲染主账号 (PAN) 在存储位置不可读 (包括在可移植数字媒体、备份媒体和日志中)。

如果您使用 AWS 服务处理和存储 PAN,您的 CloudTrail 日志应进行静态加密。加密日志可确保在日志捕获 PAN 时保护 PAN。

默认情况下,使用具有 Amazon S3 托管加密密钥的 Amazon 服务器端加密 (SSE-S3) 对 CloudTrail 传送到 S3 存储桶的日志文件进行加密。请参阅 Amazon Simple Storage Service 开发人员指南

您可以配置 CloudTrail 日志以利用 AWS KMS 客户创建的主密钥 (CMK) 进一步保护 CloudTrail 日志。

这些是用于使 PAN 不可读的方法。

Remediation

为 CloudTrail 日志启用加密

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. 选择要更新的跟踪。

  4. Storage location (存储位置) 下面,要编辑设置,请选择铅笔图标。

  5. 对于 Encrypt log files with SSE-KMS (使用 SSE-KMS 加密日志文件),选择 Yes (是)

  6. 对于 Create a new KMS key (创建新的 KMS 密钥),执行以下操作之一:

    • 要创建密钥,请选择 Yes (是),然后在 KMS key (KMS 密钥) 中输入密钥的别名。密钥是在与 S3 存储桶相同的区域中创建的。

    • 要使用现有的密钥,请选择 No (否),然后从 KMS key (KMS 密钥) 中选择密钥。

      AWS KMS 密钥和 S3 存储桶必须位于同一区域。

  7. 选择 Save (保存)

您可能需要修改 CloudTrail 的策略才能成功与 CMK 进行交互。有关使用 AWS KMS 托管密钥 (SSE-KMS) 加密 CloudTrail 日志文件的更多信息,请参阅 AWS CloudTrail User Guide

[PCI.CloudTrail.2] 应启用 CloudTrail

严重性:

资源: Account

AWS Config 规则:cloudtrail-enabled

参数:

该控制检查是否在您的 AWS 账户中启用了 CloudTrail。

但是,某些 AWS 服务不会为所有 APIs 和事件启用日志记录。您应该实施 CloudTrail 以外的任何其他审核跟踪,并在 CloudTrail 支持的服务和集成中查看每个服务的文档。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求关联:

PCI DSS 10.1: 实施审核跟踪,以将对系统组件的所有访问链接到每个单独的用户。

通过启用 CloudTrail,事件历史记录为您提供 90 天的随时可用的事件和审核跟踪,它们针对的是每个单独的用户对系统组件的访问。

您可以在 CloudTrail 日志的 eventSource 部分中找到用户身份。

PCI DSS 10.2.1: 为所有系统组件实施自动审核跟踪以重建以下事件: 所有单个用户对持卡人数据的访问

根据持卡人数据的存储位置,可以在 CloudTrail 日志的 userIdentityeventSourceeventNameresponseElements 部分中找到各个用户对持卡人数据的访问。

PCI DSS 10.2.2: 为所有系统组件实施自动审核跟踪以重建以下事件: 具有根或管理权限的任何个人执行的所有操作

根用户标识位于日志的 userIdentity 部分中。

PCI DSS 10.2.3: 为所有系统组件实施自动审核跟踪以重建以下事件: 对所有审核跟踪的访问

可以在日志的 eventSourceeventNameresponseElements 部分中找到对审核跟踪的访问。

PCI DSS 10.2.4: 为所有系统组件实施自动审核跟踪以重建以下事件: 无效的逻辑访问尝试

您可以在 CloudTrail 日志中找到无效的逻辑访问尝试。例如:responseElements : "ConsoleLogin"responseElements : "Failure"

PCI DSS 10.2.5: 为所有系统组件实施自动审核跟踪以重建以下事件: 使用和更改标识和身份验证机制 (包括但不限于创建新账户和权限提升) 以及对具有根或管理权限的账户的所有更改、添加或删除

可以在日志的 userAgenteventNameresponseElements 部分中找到使用和更改标识和身份验证机制的操作。

PCI DSS 10.2.6: 为所有系统组件实施自动审核跟踪以重建以下事件: 初始化、停止或暂停审核日志

日志记录启动和停止是在 CloudTrail 日志中捕获的。

在 CloudTrail 日志中,审核日志启动和停止的示例如下所示: eventName : "StopLogging"eventName : "StartLogging"

PCI DSS 10.2.7: 为所有系统组件实施自动审核跟踪以重建以下事件: 创建和删除系统级对象

系统级对象创建和删除是在 CloudTrail 日志中捕获的。一个系统级对象示例是 AWS Lambda 函数。

CloudTrail 捕获 createFunctiondeleteFunction API 调用,如 AWS Lambda Developer Guide 中所述。

PCI DSS 10.3.1: 对于每个事件,为所有系统组件至少记录以下审核跟踪条目: 用户标识

您可以在 CloudTrail 日志的 userIdentity 部分中找到用户标识。

PCI DSS 10.3.2: 对于每个事件,为所有系统组件至少记录以下审核跟踪条目: 事件类型

您可以在 CloudTrail 日志的 eventName 部分中找到事件类型。

PCI DSS 10.3.3: 对于每个事件,为所有系统组件至少记录以下审核跟踪条目: 日期和时间

您可以在 CloudTrail 日志的 eventTime 部分中找到事件日期和时间。

PCI DSS 10.3.4: 对于每个事件,为所有系统组件至少记录以下审核跟踪条目: 成功或失败指示

您可以在 CloudTrail 日志的 responseElements 部分中找到成功或失败指示。

PCI DSS 10.3.5: 对于每个事件,为所有系统组件至少记录以下审核跟踪条目: 事件来源

您可以在 CloudTrail 日志的 userAgentsourceIPAddress 部分中找到事件来源。

PCI DSS 10.3.6: 对于每个事件,为所有系统组件至少记录以下审核跟踪条目: 受影响的数据、系统组件或资源的身份或名称。

您可以在 CloudTrail 日志的 eventSource 部分中找到资源身份。

Remediation

在 CloudTrail 中创建新的跟踪

  1. 使用您为进行 CloudTrail 管理配置的 IAM 用户登录 AWS 管理控制台。

  2. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  3. Region (区域) 选择器中,选择要在其中创建跟踪的 AWS 区域。这是跟踪的主区域。

    主区域是一个唯一的 AWS 区域,在此区域中,您可以在创建跟踪之后查看和更新跟踪,即使此跟踪记录所有 AWS 区域中的事件也不例外。

  4. 在导航窗格中,选择 Trails

  5. Trails (跟踪) 页面上,选择 Get Started Now (立即开始使用)。如果您没有看到该选项,请选择 Create Trail (创建跟踪)

  6. Trail name (跟踪名称) 中,指定跟踪的名称,例如 My-Management-Events-Trail

    作为最佳实践,请使用可快速识别跟踪用途的名称。在这种情况下,您正在创建的跟踪将记录管理事件。

  7. 对于 Apply trail to all regions (将跟踪应用于所有区域),请保留默认值 Yes (是)

  8. Management Events (管理事件) 中,确保 Read/Write events (读/写事件) 设置为 All (全部)

  9. Data Events (数据事件) 中,请勿进行任何更改。此跟踪不会记录任何数据事件。

  10. 为日志创建新的 S3 存储桶:

    1. 存储位置中,在创建新的 S3 存储桶中选择

    2. S3 bucket (S3 存储桶) 中,指定存储桶的名称,例如 my-bucket-for-storing-cloudtrail-logs

      S3 存储桶的名称必须是全局唯一的。有关 S3 存储桶命名要求的更多信息,请参阅 AWS CloudTrail User Guide

    3. Advanced 下,为 Encrypt log files with SSE-KMSEnable log file validation 选择 Yes

  11. 选择创建

有关更多详细信息,请参阅 AWS CloudTrail User Guide 中的教程。

[PCI.CloudTrail.3] 应启用 CloudTrail 日志文件验证

严重性: Low

资源:CloudTrail 跟踪

AWS Config 规则:cloud-trail-log-file-validation-enabled

参数:

该控制检查是否启用了 CloudTrail 日志文件验证。

它不会检查何时修改了配置。

要监控日志文件更改并发出警报,您可以使用 Amazon EventBridge 或 CloudWatch 指标筛选条件。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 10.5.2: 防止审核跟踪文件受到未经授权的修改。

CloudTrail 日志文件验证创建一个数字签名的摘要文件,其中包含 CloudTrail 写入到 Amazon S3 的每个日志的哈希值。

在 CloudTrail 传送日志后,您可以使用这些摘要文件来确定日志文件是已更改、已删除还是未更改。

这是一种有助于保护审核跟踪文件以免受到未经授权的修改的方法。

PCI DSS 10.5.5: 在日志上使用文件完整性监控或更改检测软件,以确保在未生成警报的情况下无法更改现有日志数据。

CloudTrail 日志文件验证创建一个数字签名的摘要文件,其中包含 CloudTrail 写入到 Amazon S3 的每个日志的哈希值。

在 CloudTrail 传送日志后,您可以使用这些摘要文件来确定日志文件是已更改、已删除还是未更改。

这是一种有助于确保对日志使用文件完整性监控或更改检测软件的方法。

Remediation

启用 CloudTrail 日志文件验证

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. Name (名称) 列中,选择要编辑的跟踪的名称。

  4. 选择 Storage location (存储位置) 的铅笔图标。

  5. 对于 Enable log file validation (启用日志文件验证),选择 Yes (是)

  6. 选择 Save (保存)

[PCI.CloudTrail.4] CloudTrail 跟踪应与 CloudWatch Logs 集成在一起

严重性: Low

资源:CloudTrail 跟踪

AWS Config 规则:cloud-trail-cloud-watch-logs-enabled

参数:

该控制检查是否配置了 CloudTrail 跟踪以将日志发送到 CloudWatch Logs。

它不会检查修改日志或日志组的用户权限。您应该创建特定的 CloudWatch 规则,以便在修改 CloudTrail 日志时发出警报。

该控制也不会检查任何其他审核日志源,但发送到 CloudWatch Logs 组的 CloudTrail 除外。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 10.5.3: 提示将审核跟踪文件备份到难以更改的集中式日志服务器或介质。

CloudTrail 使用 Amazon S3 存储和传送日志文件,因此,将永久存储日志文件。

CloudWatch 日志是一种快速备份审核跟踪文件的本地方法。

Remediation

确保 CloudTrail 跟踪与 CloudWatch Logs 集成在一起

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. CloudWatch Logs Log group (CloudWatch 日志组) 列中选择一个没有值的跟踪。

  4. 向下滚动到 CloudWatch Logs (CloudWatch 日志) 部分,然后选择 Configure (配置)

  5. 对于 New or existing log group (新的或现有日志组),执行以下操作之一:

    • 要使用默认日志组,请保持名称不变。

    • 要使用现有日志组,请输入要使用的日志组的名称。

    • 要创建新日志组,请输入要创建的日志组的名称。

  6. 选择 Continue (继续)

  7. 您可以使用默认 IAM 角色,或者指定一个角色。

    要使用默认 IAM 角色,请转到下一步。

    指定要使用的角色:

    1. 选择 View Details (查看详细信息)

    2. 对于 IAM role (IAM 角色),执行下列操作之一:

      • 选择 _CloudWatchLogs_roleCloudTrail,然后从 Policy Name (策略名称) 中,选择要使用的策略。

      • 选择 Create a new IAM Role (创建新的 IAM 角色),然后输入要创建的角色的名称。

        将为新角色分配一个策略以授予所需的权限。

  8. 选择 Allow (允许)

有关使用控制台配置 CloudWatch Logs 监控的更多信息,请参阅 AWS CloudTrail User Guide

[PCI.CodeBuild.1] CodeBuild GitHub 或 Bitbucket 源存储库 URLs 应使用OAuth

严重性: 重大

资源:CodeBuild 项目

AWS Config 规则:codebuild-project-source-repo-url-check

参数:

该控制检查 GitHub 或 Bitbucket 源存储库 URL 是否包含个人访问令牌或用户名和密码。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 8.2.1: 使用强大的加密技术,使所有身份验证凭证(如密码/短语)在传输和存储所有系统组件期间不可读。

您可以在 PCI DSS 环境中使用 CodeBuild 编译源代码,运行单元测试或生成可供部署的项目。如果您这样做,则您的身份验证凭证绝不应以明文形式存储或传输,也不应显示在存储库 URL 中。

您应使用 OAuth 而不是个人访问令牌或用户名和密码来授予访问 GitHub 或 Bitbucket 存储库的授权。这是一种使用强大加密技术使身份验证凭证不可读的方法。

Remediation

从 CodeBuild 项目源中删除基本身份验证/(GitHub) 个人访问令牌

  1. 通过以下网址打开 CodeBuild 控制台:https://console.amazonaws.cn/codebuild/

  2. 选择包含个人访问令牌或用户名和密码的构建项目。

  3. Edit (编辑) 中,选择 Source (源)

  4. 选择从 GitHub/Bitbucket 断开连接

  5. 选择使用 OAuth 连接,然后选择连接到 GitHub / Bitbucket

  6. 在源提供商显示的消息中,进行相应的授权。

  7. 根据需要,重新配置 Repository URL (存储库 URL)additional configuration (其他配置) 设置。

  8. 选择 Update source (更新源)

要查看基于 CodeBuild 使用案例的示例,请参阅 AWS CodeBuild 用户指南

[PCI.CodeBuild.2] CodeBuild 项目环境变量不应包含明文凭证

严重性: 重大

资源:CodeBuild 项目

AWS Config 规则:codebuild-project-envvar-awscred-check

参数:

该控制检查项目是否包含环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 欧洲(米兰)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 8.2.1: 使用强大的加密技术,使所有身份验证凭证(如密码/短语)在传输和存储所有系统组件期间不可读。

您可以在 PCI DSS 环境中使用 CodeBuild 编译源代码,运行单元测试或生成可供部署的项目。如果这样做,请勿以明文形式存储身份验证凭证 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

使用环境变量在 CodeBuild 项目中存储凭证可能会违反以下要求:使用强大加密技术使身份验证凭证不可读。

Remediation

要使用环境变量在 CodeBuild 运行时中引用敏感数据,请使用以下过程。

删除环境变量

  1. 通过以下网址打开 CodeBuild 控制台:https://console.amazonaws.cn/codebuild/

  2. 展开 Build (构建),选择 Build project (构建项目),然后选择包含明文凭证的构建项目。

  3. Edit (编辑) 中,选择 Environment (环境)

  4. 展开 Additional configuration (其他配置),然后滚动到 Environment variables (环境变量)

  5. 选择环境变量旁边的 Remove (删除)

  6. 选择 Update environment (更新环境)

将敏感值存储在 Amazon EC2 Systems Manager Parameter Store 中,然后从构建规范中检索它们

  1. 通过以下网址打开 CodeBuild 控制台:https://console.amazonaws.cn/codebuild/

  2. 展开 Build (构建),选择 Build project (构建项目),然后选择包含明文凭证的构建项目。

  3. Edit (编辑) 中,选择 Environment (环境)

  4. 展开 Additional configuration (其他配置),然后滚动到 Environment variables (环境变量)

  5. 在 AWS Systems Manager 中,创建一个包含敏感数据的 Systems Manager 参数。有关如何执行该操作的说明,请参阅 AWS Systems Manager 用户指南 中的教程。

  6. 在创建参数后,复制参数名称。

  7. 返回到 CodeBuild 控制台,然后选择 Create environmental variable (创建环境变量)

  8. 对于 name (名称),输入在构建规范中显示的变量名称。

  9. 对于 value (值),粘贴参数名称。

  10. type (类型)中,选择 Parameter (参数)

  11. 选择包含明文凭证的不合规环境变量旁边的 Remove (删除)

  12. 选择 Update environment (更新环境)

请参阅 AWS CodeBuild 用户指南 中有关构建环境中的环境变量的信息。

[PCI.Config.1] 应启用 AWS Config

严重性:

资源: Account

AWS Config 规则: 无。要运行该检查,Security Hub 运行保护 Amazon Web Services 中为该检查规定的审核步骤。不会在您的 AWS 环境中为该检查创建任何 AWS Config 托管规则。

参数:

该控制检查是否已在账户中为本地区域启用了 AWS Config,并记录所有资源。

它不会检查所有关键系统文件和内容文件的更改检测,因为 AWS Config 仅支持一部分资源类型。

AWS Config 服务对您账户中支持的 AWS 资源执行配置管理,并向您提供日志文件。记录的信息包括配置项(AWS 资源)、配置项之间的关系以及资源之间的任何配置更改。

Security Hub 建议您在所有区域中启用 AWS Config。AWS Config 捕获的 AWS 配置项历史记录可用于安全分析、资源更改跟踪和合规性审计。

注意

由于 Security Hub 是一项区域性服务,因此,针对此控制执行的检查仅检查账户的当前区域。它不会检查所有区域。

要允许针对每个区域中的全局资源进行安全检查,您还必须记录全局资源。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

有关更多信息,请参阅AWS Config Developer Guide

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 10.5.2: 防止审核跟踪文件受到未经授权的修改。

AWS Config 持续监控、跟踪和评估 AWS 资源配置以获取所需的设置,并每 6 小时生成一次配置更改历史记录文件。

您应该启用 AWS Config 以保护审核跟踪文件,以免受到未经授权的修改。

PCI DSS 11.5: 部署更改检测机制以提醒人员未经授权对关键系统文件、配置文件或内容文件进行了修改,并将软件配置为至少每周执行一次关键文件比较。

AWS Config 持续监控、跟踪和评估 AWS 资源配置以获取所需的设置,并每 6 小时生成一次配置更改历史记录文件。

您应该启用 AWS Config 以确保部署了更改检测机制,并将其配置为至少每周执行一次关键文件比较。

Remediation

配置 AWS Config 设置

  1. 通过以下网址打开 AWS Config 控制台:https://console.amazonaws.cn/config/

  2. 选择要在其中配置 AWS Config 的区域。

  3. 如果您以前未使用过 AWS Config,请选择 Get started (开始使用)

  4. Settings (设置) 页面上,执行以下操作:

    1. Resource types to record (要记录的资源类型) 下,选择 Record all resources supported in this region (记录此区域中支持的所有资源)Include global resources (e.g. AWS IAM resources) (包括全局资源(例如, 资源)。

    2. Amazon S3 bucket (Amazon S3 存储桶) 下面,指定要使用的存储桶,或者创建存储桶并包括前缀(可选)。

    3. Amazon SNS topic (Amazon SNS 主题) 下面,从您的账户中选择一个 Amazon SNS 主题,或者创建一个主题。有关 Amazon SNS 的更多信息,请参阅 Amazon Simple Notification Service 入门指南

    4. AWS Config role (IAM 角色) 下,选择 Create AWS Config service-linked role (创建 IAM 服务相关角色) 或选择 Choose a role from your account (从您的账户中选择一个角色),然后选择要使用的角色。

  5. 选择 Next (下一步)

  6. AWS Config rules (CloudWatch 规则) 页面上,选择 Skip (跳过)

  7. 选择 Confirm (确认)

有关从 AWS CLI 中使用 AWS Config 的更多信息,请参阅 AWS Config Developer Guide

您还可以使用 AWS CloudFormation 模板自动执行这一过程。有关更多信息,请参阅AWS CloudFormation 用户指南

[PCI.CW.1] 应具有有关“根”用户使用的日志指标筛选器和警报

严重性: 重大

资源: Account

AWS Config 规则:Security Hub 运行审核步骤,而不会在您的 AWS 账户中为该检查创建 AWS Config 托管规则。

参数:

该控制使用以下模式检查 CloudWatch 指标筛选器:

{ $.userIdentity.type = "Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType != "AwsServiceEvent" }

它检查以下内容:

  • 日志组名称配置为与活动多区域 CloudTrail 一起使用。

  • 跟踪具有至少一个事件选择器,将 IncludeManagementEvents 设置为 true 并将 ReadWriteType 设置为 All

  • 与警报关联的 Amazon SNS 主题具有至少一个活动订阅者。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

根用户是 AWS 账户中权限最高的用户,可以不受限制地访问 AWS 账户中的所有资源。

在使用 AWS 账户根用户 凭证时,您应设置日志指标筛选条件和警报。

您还应该确保启用 CloudTrail 以保留具有根或管理权限的任何人执行的操作的审核跟踪(请参阅[PCI.CloudTrail.2] 应启用 CloudTrail)。可以在 CloudTrail 日志的 userIdentity 部分中找到根用户标识。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

这些步骤与修复 3.3 – 确保存在关于使用“根”账户的日志指标筛选条件和警报 结果的步骤相同。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。

    有关创建 Amazon SNS 主题的更多信息,请参阅 Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail 跟踪。

    为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志),然后选择 Log groups (日志组)

  3. 选择 CloudTrail 在其中记录日志组的日志组。

  4. 在日志组详细信息页面上,选择 Metric filters (指标筛选条件)

  5. 选择 Create metric filter (创建指标筛选条件)

  6. 复制以下模式,然后将其粘贴到 Filter pattern (筛选条件模式) 中。

    {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
  7. 选择 Next (下一步)

  8. 输入新筛选器的名称。例如:RootAccountUsage

  9. 确认 Metric namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  10. Metric name (指标名称) 中,输入指标的名称。

  11. Metric value (指标值) 中,输入 1,然后选择 Next (下一步)

  12. 选择 Create metric filter (创建指标筛选条件)

  13. 接下来,设置通知。选择您刚刚创建的指标筛选条件,然后选择 Create alarm (创建警报)

  14. 输入警报的阈值(例如,1),然后选择 Next (下一步)

  15. Select an SNS topic (选择 SNS 主题) 下,对于 Send notification to (发送通知到),选择一个电子邮件列表,然后选择 Next (下一步)

  16. 输入警报的 Name (名称)Description (描述),例如 RootAccountUsageAlarm,然后选择 Next (下一步)

  17. 选择 Create Alarm

[PCI.DMS.1] AWS Database Migration Service 复制实例不应是公有实例

严重性: 重大

资源: DMS:ReplicationInstance

AWS Config 规则:dms-replication-not-public

参数:

该控制检查 AWS DMS 复制实例是否公有。为此,它会检查 PubliclyAccessible 字段的值。

私有复制实例具有无法从复制网络外部访问的私有 IP 地址。当源数据库和目标数据库位于同一网络中,并且网络使用 VPN、AWS Direct Connect 或 VPC 对等连接连接到复制实例的 VPC 时,复制实例应具有私有 IP 地址。要了解有关公有和私有复制实例的更多信息,请参阅 https://docs.amazonaws.cn/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.PublicPrivate 中的公有和私有复制实例AWS Database Migration Service 用户指南。

您还应该确保将对 AWS DMS 实例配置的访问权限限制为仅授权用户。为此,请限制用户的 IAM 权限以修改 AWS DMS 设置和资源。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关。

PCI DSS 1.2.1 - 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您在定义的 CDE 中使用 AWS DMS,请将复制实例的 PubliclyAccessible 字段设置为 'false'。 允许公开访问您的复制实例可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1 - 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您在定义的 CDE 中使用 AWS DMS,请将复制实例的 PubliclyAccessible 字段设置为 'false'。 允许对复制实例进行公有访问可能会违反以下要求:将入站流量限制为仅提供授权、可公开访问的服务、协议和端口的系统组件。

PCI DSS 1.3.2 - 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您在定义的 CDE 中使用 AWS DMS,请将复制实例的 PubliclyAccessible 字段设置为 'false'。 允许对复制实例进行公有访问可能会违反以下要求:将入站流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.4 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果您在定义的 CDE 中使用 AWS DMS,请将复制实例的 PubliclyAccessible 字段设置为 'false'。 允许公开访问您的复制实例可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 1.3.6 将存储持卡人数据的系统组件(如数据库)放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您在定义的 CDE 中使用 AWS DMS,要迁移存储持卡人数据的数据库,请将复制实例的 PubliclyAccessible 字段设置为 'false'。 允许对复制实例进行公有访问可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

Remediation

请注意,在创建复制实例后,您无法更改公有访问设置。必须将其删除并重新创建。

将 AWS DMS 复制实例设置配置为不可公开访问

  1. https://console.amazonaws.cn/dms/ 打开 AWS Database Migration Service 控制台。

  2. 在左侧导航窗格中的 Resource management (资源管理) 下,导航到 Replication instances (复制实例)

  3. 要删除公有实例,请选中实例的复选框,选择 Actions,然后选择 delete

  4. 选择创建复制实例。提供配置详细信息。

  5. 要禁用公有访问,请确保未选择 Publicly accessible (公开访问)

  6. 选择创建

有关更多信息,请参阅 中的创建复制实例部分。AWS Database Migration Service 用户指南

[PCI.EC2.1] 不应公开还原 Amazon EBS 快照

严重性: 重大

资源:Amazon EC2 卷

AWS Config 规则:ebs-snapshot-public-restorable-check

参数:

此控制检查 Amazon Elastic Block Store 快照是否不可公开由所有人恢复,否则可能使其公开。除非您明确允许,否则 Amazon EBS 快照不应公开可由所有人恢复,以避免意外泄露公司的敏感数据。

您还应该确保将更改 Amazon EBS 配置的权限限制为仅授权的 AWS 账户。在 Amazon EC2 用户指南(适用于 Linux 实例) 中了解管理 Amazon EBS 快照权限的更多信息。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

Amazon EBS 快照用于在特定时间点将 Amazon EBS 卷上的数据备份到 Amazon S3。它们可用于还原 EBS 卷的以前状态。

如果 Amazon EBS 快照存储持卡人数据,则每个人不应公开还原该快照。这会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

Amazon EBS 快照用于在特定时间点将 Amazon EBS 卷上的数据备份到 Amazon S3。它们可用于还原 Amazon EBS 卷的以前状态。

如果 Amazon EBS 快照存储持卡人数据,则每个人不应公开还原该快照。这会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

Amazon EBS 快照用于在特定时间点将 Amazon EBS 卷上的数据备份到 Amazon S3,并且可用于还原 EBS 卷的以前状态。

如果 Amazon EBS 快照存储持卡人数据,则每个人不应公开还原该快照。这会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以便根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

Amazon EBS 快照用于在特定时间点将 Amazon EBS 卷上的数据备份到 Amazon S3。它们可用于还原 Amazon EBS 卷的以前状态。

如果 Amazon EBS 快照存储持卡人数据,则每个人不应公开还原该快照。这可能会违反以下要求:确保将对系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

将公有 Amazon EBS 快照变为私有快照

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 Elastic Block Store 下,选择 Snapshots (快照),然后选择您的公有快照。

  3. 选择 Actions (操作),然后选择 Modify permissions (修改权限)

  4. 选择 Private (私有)

  5. (可选)添加授权账户的 AWS 账号,以便与之共享快照。

  6. 选择 Save

有关共享 Amazon EBS 快照的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)

[PCI.EC2.2] VPC 默认安全组应禁止入站和出站流量

严重性:

资源:Amazon EC2 安全组

AWS Config 规则:vpc-default-security-group-closed

参数:

该控制检查 VPC 的默认安全组是否不允许入站或出站流量。

它不会检查其他非默认安全组和其他 VPC 配置的访问限制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果 PCI DSS 范围内的服务与默认安全组关联,则安全组的默认规则将允许所有出站流量。这些规则还允许来自分配给同一安全组的网络接口(及其关联实例)的所有入站流量。

您应更改默认安全组规则设置以限制入站和出站流量。使用默认值可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果 PCI DSS 范围内的服务与默认安全组关联,则安全组的默认规则将允许所有出站流量。这些规则还允许来自分配给同一安全组的网络接口(及其关联实例)的所有入站流量。

您应该更改默认安全组规则设置,以限制未经授权的入站和出站流量。使用默认值可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 2.1: 在网络上安装系统之前,请始终更改供应商提供的默认值,并删除或禁用不需要的默认账户。

如果 PCI DSS 范围内的服务与默认安全组关联,则安全组的默认规则将允许所有出站流量。这些规则还允许来自分配给同一安全组的网络接口(及其关联实例)的所有入站流量。

您应更改默认安全组规则设置以限制入站和出站流量。使用默认值可能会违反以下要求:删除或禁用不需要的默认账户。

Remediation

要修复此问题,请创建新的安全组并将这些安全组分配给您的资源。要防止使用默认安全组,请删除其入站和出站规则。

创建新的安全组并将其分配给您的资源

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Security groups (安全组)。查看默认安全组详细信息以了解分配给它们的资源。

  3. 为资源创建一组最小权限安全组。有关如何创建安全组的详细信息,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups 中的创建安全组Amazon VPC 用户指南。

  4. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  5. 在 Amazon EC2 控制台上,将使用默认安全组的资源的安全组更改为您创建的最小权限安全组。请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/VPC_SecurityGroups.html#SG_Changing_Group_Membership 中的更改实例的安全组Amazon VPC 用户指南。

将新安全组分配给资源后,从默认安全组中删除入站和出站规则。这可确保不使用默认安全组。

从默认安全组中删除规则

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Security groups (安全组)

  3. 选择默认安全组,然后选择 Inbound rules (入站规则) 选项卡。选择 Edit inbound rules (编辑入站规则)。然后删除所有入站规则。选择 Save rules (保存规则)

  4. 对每个默认安全组重复上一步骤。

  5. 选择默认安全组,然后选择 Outbound rules (出站规则) 选项卡。选择 Edit outbound rules (编辑出站规则)。然后删除所有出站规则。选择 Save rules (保存规则)

  6. 对每个默认安全组重复上一步骤。

有关在 Amazon VPC 中使用安全组的更多信息,请参阅 Amazon VPC 用户指南

[PCI.EC2.3] 应删除未使用的 EC2 安全组

严重性: Low

资源:Amazon EC2 安全组

AWS Config 规则:ec2-security-group-attached-to-eni

参数:

该控制可帮助您在持卡人数据环境 (CDE) 中保留所需安全组的准确资产清单。它通过检查安全组是否附加到 Amazon EC2 实例或 ENI 来执行此操作。失败的结果表示,您可能具有未使用的 Amazon EC2 安全组。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 2.4: 维护 PCI DSS 范围内的系统组件的清单。

如果安全组未附加到 Amazon EC2 实例或弹性网络接口 (ENI),这表明不再使用该资源。

除非具有业务需求以保留该资源,否则,应删除未使用的资源以保留准确的系统组件清单。

Remediation

您必须为没有附加到 ENI 的每个安全组执行以下步骤。

删除安全组

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中的 Security 下,选择 Security groups

  3. 选中要删除的安全组对应的复选框。

  4. Actions (操作) 中,选择 Delete security group (删除安全组)

  5. 选择 Delete (删除)

[PCI.EC2.4] 应删除未使用的 EC2EIPs

严重性: Low

资源: EC2 EIP

AWS Config 规则:eip-attached

参数:

该控制检查分配给 VPC 的弹性 IP 地址是否附加到 Amazon EC2 实例或正在使用的弹性网络接口 (ENI)。

失败的结果表示,您可能具有未使用的 Amazon EC2 EIPs。

这将帮助您在持卡人数据环境 (CDE) 中维护 EIPs 的准确资产清单。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 2.4: 维护 PCI DSS 范围内的系统组件的清单。

如果未将 EIP 附加到 Amazon EC2 实例,这表明不再使用该资源。

除非具有业务需求以保留该资源,否则,应删除未使用的资源以保留准确的系统组件清单。

Remediation

如果您不再需要弹性 IP 地址,Security Hub 建议您解除此弹性 IP 地址(地址不可与实例相关联)。

使用控制台释放弹性 IP 地址

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 Network & Security 下,选择 Elastic IPs。

  3. 依次选择弹性 IP 地址、ActionsRelease Elastic IP address

  4. 系统提示时,选择 Release

有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中有关释放弹性 IP 地址的信息。

[PCI.EC2.5] 安全组不应允许从 0.0.0.0/0 到端口 22 的传入流量

严重性:

资源: EC2 安全组

AWS Config 规则:restricted-ssh

参数:

该控制检查所用安全组是否禁止无限制传入 SSH 流量。

它不会评估出站流量。

请注意,安全组是有状态的。如果您从实例发送一个请求,则无论入站安全组规则如何,都将允许该请求的响应流量流入。无论出站规则如何,允许对允许的入站流量的响应流出。要了解有关安全组的更多信息,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/VPC_SecurityGroups.html 中的 VPC 的安全组Amazon VPC 用户指南。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1 - 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

您可能允许 SSH 流量流向您定义的 CDE 中的实例。如果是这样,则将入站 SSH 源从 0.0.0.0/0(任何位置)限制为特定 IP 地址或范围。不受限地访问 SSH 可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1 - 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

您可能允许 SSH 流量流向您定义的 CDE 中的实例。如果是这样,则将入站 SSH 源从 0.0.0.0/0(任何位置)限制为特定 IP 地址或范围。不受限地访问 SSH 可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 2.2.2 根据系统功能的要求,仅启用必要的服务、协议、守护程序等。

您可能允许 SSH 流量流向您定义的 CDE 中的实例。如果是这样,请根据安全组的 函数的要求将入站 SSH 源从 0.0.0.0/0 (任何位置) 限制为特定 IP 地址或范围。在 CDE 中,安全组可被视为系统组件,该组件应被正确强化。不受限地访问 SSH 可能会违反以下要求:仅启用系统功能所需的必要服务、协议、守护程序等。

Remediation

对与 VPC 关联的每个安全组执行以下步骤。

从安全组中删除对端口 22 的访问

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中的 Security 下,选择 Security groups

  3. 选择一个安全组。

  4. 在页面底部,选择 Inbound rules (入站规则)

  5. 选择 Edit inbound rules (编辑入站规则)

  6. 确定允许通过端口 22 进行访问的规则,然后选择 X 将其删除。

  7. 选择 Save rules (保存规则)

[PCI.EC2.6] 应在所有VPCs中启用 VPC 流日志记录

严重性:

资源: EC2 VPC

AWS Config 规则:vpc-flow-logs-enabled

参数:

  • trafficTypeREJECT

该控制检查是否为 VPCs 找到并启用了 VPC 流日志。 流量类型设置为 REJECT

借助 VPC 流日志,您可以捕获有关在您的 VPC 中传入和传出网络接口的 IP 地址流量的信息。创建流日志后,您可以使用 CloudWatch Logs 查看和检索日志数据。

Security Hub 建议您为 VPCs 拒绝的数据包启用流日志记录。 流日志提供对穿过 VPC 的网络流量的可见性。它们可以检测异常流量并提供对安全工作流的见解。

默认情况下,该记录包括 IP 地址流的不同组件的值,包括源、目标和协议。有关日志字段的更多信息和说明,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/flow-logs.html 中的 VPC 流日志Amazon VPC 用户指南。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关。

PCI DSS 10.3.3 验证日志条目中是否包含日期和时间戳。

通过为 VPC 启用 VPC 流日志记录,您可以识别日志条目的日期和时间。事件日期和时间记录在开始和结束字段中。这些值以 Unix 秒显示。

PCI DSS 10.3.4 验证成功或失败指示包含在日志条目中。

通过为 VPC 启用 VPC 流日志记录,您可以识别发生的事件的类型。事件类型记录在操作字段中,可以是 ACCEPTREJECT

PCI DSS 10.3.5 验证事件来源是否包含在日志条目中。

通过为 VPC 启用 VPC 流日志记录,您可以验证事件的源。事件源将记录在 pkt-srcaddrsrcaddrsrcport 字段中。这些字段显示流量的源 IP 地址和源端口。

PCI DSS 10.3.6 验证受影响的数据、系统组件或资源的身份或名称是否包含在日志条目中。

通过为 VPC 启用 VPC 流日志记录,您可以验证受影响的数据、系统组件或资源的身份或名称。、pkt-dstaddrdstaddr 字段显示流量的目标 IP 地址和目标端口。dstport

Remediation

要修复此问题,请启用 VPC 流日志记录。

启用 VPC 流日志记录

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中的 Virtual Private Cloud (虚拟私有云) 下,选择 Your VPCs (您的环境)

  3. 选择要更新的 VPC。

  4. 在页面底部,选择 Flow Logs (流日志)

  5. 选择 Create flow log (创建流日志)

  6. 对于 Filter (筛选条件),选择 Reject (拒绝)

  7. 对于 Destination log group (目标日志组),选择要使用的日志组。

  8. 如果您为目标日志组选择了 CloudWatch Logs (CloudWatch 日志),请为 IAM role (IAM 角色) 选择要使用的 IAM 角色。

  9. 选择创建

[PCI.ELBV2.1] 应配置 Application Load Balancer 以将所有 HTTP 请求重定向到 HTTPS

严重性:

资源: AwsElbv2LoadBalancer

AWS Config 规则:alb-http-to-https-redirection-check

参数:

该控制检查是否在 Application Load Balancer 的所有 HTTP 侦听器上配置了 HTTP 到 HTTPS 重定向。如果 Application Load Balancer 的任何 HTTP 侦听器未配置 HTTP 到 HTTPS 重定向,则控制将失败。

在开始使用 Application Load Balancer 之前,您必须添加一个或多个侦听器。侦听器是使用配置的协议和端口检查连接请求的进程。侦听器支持 HTTP 和 HTTPS 协议。您可以使用 HTTPS 侦听器将加密和解密工作分载到负载均衡器。要实施传输中加密,您应使用 Application Load Balancer 的重定向操作,将客户端 HTTP 请求重定向到端口 443 上的 HTTPS 请求。

要了解更多信息,请参阅 https://docs.amazonaws.cn/elasticloadbalancing/latest/application/load-balancer-listeners.html 中的 Application Load Balancer 的侦听器Application Load Balancer 用户指南。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 2.3 使用强大的加密技术加密所有非控制台管理访问。

如果您将 Application Load Balancer 与 HTTP 侦听器结合使用,请确保将侦听器重定向到 HTTPS 以进行任何非控制台管理访问。对于持卡人数据环境的管理员,允许通过 HTTP 进行未加密的身份验证可能会违反以下要求:使用强大的加密技术加密所有非控制台管理访问。

PCI DSS 4.1 在通过开放的公用网络传输期间,使用强大的加密和安全协议保护敏感的持卡人数据。

如果您将 Application Load Balancer 与 HTTP 侦听器结合使用,请确保在对持卡人数据的任何传输中将侦听器重定向到 HTTPS。允许对持卡人数据进行未加密传输可能会违反以下要求:在通过开放的公用网络进行传输期间,使用强大的加密和安全协议来保护敏感的持卡人数据。

Remediation

要修复此问题,请将 HTTP 请求重定向到 HTTPS。

将 HTTP 请求重定向到 Application Load Balancer 上的 HTTPS

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 Load Balancing 下,选择 Load balancers

  3. 选择 Application Load Balancer。

  4. 选择 Listeners

  5. 选中 HTTP 侦听器(端口 80 TCP)的复选框,然后选择 Edit (编辑)

  6. 如果存在现有规则,则必须将其删除。否则,请选择 Add action (添加操作),然后选择 Redirect to... (重定向到...)

  7. 选择 HTTPS,然后输入 443

  8. 选择圆形符号中的复选标记,然后选择 Update (更新)

[PCI.ES.1] Amazon Elasticsearch Service 域应位于 VPC 中

严重性: 重大

资源:Amazon ES 域

AWS Config 规则:elasticsearch-in-vpc-only

参数:

该控制检查 Amazon Elasticsearch Service 域是否位于 VPC 中。

它不会评估 VPC 子网路由配置以确定可公开访问性。

该 AWS 控制也不会检查 Amazon ES 基于资源的策略是否允许其他账户或外部实体进行公开访问。您应该确保 Amazon ES 域未连接到公有子网。请参阅 https://docs.amazonaws.cn/elasticsearch-service/latest/developerguide/es-ac.html#es-ac-types-resource 中的基于资源的策略Amazon Elasticsearch Service 开发人员指南。

您还应该确保根据建议的最佳实践配置了 VPC。请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/vpc-security-best-practices.html 中的 VPC 的安全最佳实践Amazon VPC 用户指南。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您的 Amazon ES 集群包含持卡人数据,则 Amazon ES 域应放置在 VPC 中。这样做可以在 Amazon ES 和 VPC 中的其他服务之间进行安全通信,而无需 Internet 网关、NAT 设备或 VPN 连接端口。

该方法用于仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您的 Amazon ES 集群包含持卡人数据,则 Amazon ES 域应放置在 VPC 中。这样做可以在 Amazon ES 和 VPC 中的其他服务之间进行安全通信,而无需 Internet 网关、NAT 设备或 VPN 连接端口。

该方法用于将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.2: 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果 Amazon ES 集群包含持卡人数据,则应将 Amazon ES 域放置在 VPC 中,这样,就可以在 Amazon ES 和 VPC 中的其他服务之间进行安全通信,而无需使用 Internet 网关、NAT 设备或 VPN 连接端口。

此方法用于将入站 Internet 流量限制为 DMZ 中的 IP 地址。

您还可以使用基于资源的策略,并指定 IP 条件以根据源 IP 地址限制访问。请参阅博客文章如何控制对 Amazon Elasticsearch Service 域的访问

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果 Amazon ES 集群包含持卡人数据,则应将 Amazon ES 域放置在 VPC 中,这样,就可以在 Amazon ES 和 VPC 中的其他服务之间进行安全通信,而无需使用 Internet 网关、NAT 设备或 VPN 连接端口。

此方法用于阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 1.3.6: 将存储持卡人数据的系统组件(如数据库)放入与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您的 Amazon ES 集群包含持卡人数据,则 Amazon ES 域应放置在 VPC 中。这样做可以在 Amazon ES 和 VPC 中的其他服务之间进行安全通信,而无需 Internet 网关、NAT 设备或 VPN 连接端口。

该方法用于将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

Remediation

如果您创建一个具有公有终端节点的域,则以后无法将其放置在 VPC 中。您必须创建一个新的域,然后迁移数据。

反之亦然。如果在 VPC 中创建一个域,则该域不能具有公有终端节点。您必须创建另一个域或禁用该控制。

请参阅 Amazon Elasticsearch Service 开发人员指南 中有关从公开访问迁移到 VPC 访问的信息。

[PCI.ES.2] Amazon Elasticsearch Service 域应启用静态加密

严重性:

资源:Amazon ES 域

AWS Config 规则:elasticsearch-encrypted-at-rest

参数:

该控制检查 Amazon ES 域是否启用了静态加密配置。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 3.4: 渲染主账号 (PAN) 在存储位置不可读 (包括在可移植数字媒体、备份媒体和日志中)。

如果您使用 Amazon ES 存储信用卡主账号 (PAN),应启用 Amazon ES 域静态加密以保护 PAN。

如果启用,它会对域的以下方面进行加密:索引、自动快照、Amazon ES 日志、交换文件以及应用程序目录中的所有其他数据。

这是一种用于使 PAN 不可读的方法。

Remediation

默认情况下,域不对数据进行静态加密,并且您无法配置现有的域以使用该功能。

要启用该功能,您必须创建另一个域并迁移数据。有关创建域的信息,请参阅 Amazon Elasticsearch Service 开发人员指南

数据静态加密需要使用 Amazon ES 5.1 或更高版本。有关对 Amazon ES 数据进行静态加密的更多信息,请参阅 Amazon Elasticsearch Service 开发人员指南

[PCI.GuardDuty.1] 应启用GuardDuty

严重性:

资源: AwsAccount

AWS Config 规则:guardduty-enabled-centralized

参数:

该控制检查是否在您的 AWS 账户和区域中启用了 Amazon GuardDuty。

虽然 GuardDuty 可以有效地应对入侵检测系统通常可以保护的攻击,但它可能不会是每个环境的完整解决方案。此规则也不会检查是否有向人员生成警报。有关 GuardDuty 的更多信息,请参阅Amazon GuardDuty 用户指南

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国 (宁夏)

  • 欧洲(米兰)

  • 中东(巴林)

  • AWS GovCloud(美国东部)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 11.4 使用入侵检测和/或入侵防御技术检测和/或防止入侵网络。

GuardDuty 监控持卡人数据环境外围的流量及其中的所有关键点,从而帮助满足 11.4 要求。它还可以将所有入侵检测引擎、基准和签名保持最新。结果从 GuardDuty 生成。您可以使用 Amazon CloudWatch 将这些警报发送给人员。请参阅 中的GuardDuty使用 Amazon CloudWatch Events 创建 调查结果的自定义响应。Amazon GuardDuty 用户指南不在您的 GuardDuty 账户中启用 AWS 可能会违反以下要求:使用入侵检测和/或防护技术以防止网络遭入侵。

Remediation

要修复该问题,请启用 GuardDuty。

启用 GuardDuty

  1. https://console.amazonaws.cn/guardduty/ 打开 GuardDuty 控制台。

  2. 选择开始使用

  3. 选择 EnableGuardDuty

[PCI.IAM.1] 不应存在 IAM 根用户访问密钥

严重性: 重大

资源:Account

AWS Config 规则:iam-root-access-key-check

参数:

该控制检查根用户的用户访问密钥是否存在。

注意

非洲(开普敦) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 2.1: 在网络上安装系统之前,请始终更改供应商提供的默认值,并删除或禁用不需要的默认账户。

是权限最高的 AWS 账户根用户 用户。AWS 访问密钥提供对给定账户的编程访问。AWS

不应为根用户创建访问密钥,因为这可能会违反以下要求:删除或禁用不需要的默认账户。

PCI DSS 2.2: 为所有系统组件制定配置标准。确保这些标准解决了所有已知的安全漏洞,并与行业认可的系统强化标准保持一致。

是权限最高的 根用户 用户。AWS 访问密钥提供对给定账户的编程访问。AWS

不应为根用户创建访问密钥,因为这可能会违反以下要求:实施系统强化配置。

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

是权限最高的 根用户 用户。AWS 访问密钥提供对给定账户的编程访问。AWS

不应为根用户创建访问密钥。这样做可能会违反以下要求:确保将对系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

停用或删除访问密钥

  1. 使用 根用户 凭证登录您的账户。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Access keys (access key ID and secret access key) (访问密钥 (访问密钥 ID 和秘密访问密钥))

  5. 对于任何现有密钥,执行以下操作之一:

    • 为了防止使用密钥对账户进行身份验证,请选择 Make Inactive (转为非活跃)

    • 要永久删除密钥,请选择 Delete (删除),然后选择 Yes (是)。您无法恢复已删除的密钥。

[PCI.IAM.2] IAM 用户不应附加 IAM 策略

严重性: Low

资源:IAM 用户

AWS Config 规则:iam-user-no-policies-check

参数:

该控制检查 IAM 用户是否均未附加策略。IAM 用户必须从 IAM 组或角色中继承权限。

它不会检查是否将最小权限策略应用于 IAM 角色和组。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

IAM 策略是指如何为 AWS 中的用户、组或角色授予权限。

默认情况下,在将 IAM 策略附加到 IAM 用户、组和角色之前,他们没有 AWS 资源的访问权限。

要管理最小权限访问并降低 PCI DSS 范围内的资源的访问管理复杂性,您应该在组或角色级别而不是用户级别分配 IAM 策略。

通过降低访问管理复杂性,可以降低委托人无意中获得或保留过多权限的可能性。

这是一种用于确保将对包含持卡人数据的系统组件的访问限制为所需的最小权限或用户需要了解的内容的方法。

Remediation

要解决此问题,请执行以下操作:

  1. 创建 IAM 组

  2. 将策略分配给组

  3. 将用户添加到组

策略将应用于组中的每一位用户。

创建 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Groups (组),然后选择 Create New Group (创建新组)

  3. 输入要创建的组的名称,然后选择 Next Step (下一步)

  4. 选择要分配给该组的每个策略,然后选择 Next Step (下一步)

    选择的策略应包括当前直接附加到用户账户的任何策略。要解决未通过检查的问题,下一步是将用户添加到组,然后向该组分配策略。

    分配给组的策略将应用于组中的每一位用户。

  5. 确认 Review (审核) 页面上的详细信息,然后选择 Create Group (创建组)

有关创建 IAM 组的更多信息,请参阅 IAM 用户指南

将用户添加到 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Groups (组)

  3. 选择组操作,然后选择 Add Users to Group (向组添加多个用户)

  4. 选择要添加到组的用户,然后选择 Add Users (添加用户)

有关将用户添加到组的更多信息,请参阅 IAM 用户指南

删除直接附加到用户的策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

  3. 要从用户中分离策略,请在 User name (用户名) 列中选择名称。

  4. 对于 Attached directly (直接附加) 下面列出的每个策略,要从用户中删除策略,请选择页面右侧的 X,然后选择 Remove (删除)

  5. 确认用户仍可按预期使用 AWS 服务。

[PCI.IAM.3] IAM 策略不应允许完全“*”管理权限

严重性:

资源:IAM 策略

AWS Config 规则:iam-policy-no-statements-with-admin-access

参数:

该控制检查 AWS Identity and Access Management 策略(也称为客户托管策略)的默认版本是否没有管理员访问权限,并且语句具有 "Effect": "Allow" with "Action": "*" over "Resource": "*"

它仅检查您创建的客户托管策略,而不检查各个服务(例如“S3:*”)的完全访问权限。

它不会检查内联和 AWS 托管策略

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以便根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

提供完全管理权限而不是限制为所需的最小权限可能会违反以下要求:确保将对系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

修改 IAM 策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择策略

  3. 选择要删除的策略旁边的单选按钮。

  4. Policy actions (策略操作) 中,选择 Detach (分离)

  5. Detach policy (分离策略) 页面上,选择要从中分离策略的每个用户旁边的单选按钮,然后选择 Detach policy (分离策略)

  6. 确认分离策略后,用户仍可按预期访问 AWS 服务和资源。

[PCI.IAM.4] 应该为根用户启用硬件 MFA

严重性: 重大

资源: Account

AWS Config 规则:root-account-hardware-mfa-enabled

参数:

该控制检查是否启用您的 AWS 账户,以使用 根用户 凭证通过多重身份验证 (MFA) 硬件设备登录。

它不会检查您是否使用虚拟 MFA。

要满足 PCI DSS 要求 8.3.1,您可以在硬件 MFA(该控制)和虚拟 MFA([PCI.IAM.5] 应该为根用户启用虚拟 MFA)之间进行选择。

注意

以下区域不支持此控制。

  • 中国(北京)

  • 中国 (宁夏)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 8.3.1: 将具有管理访问权限的人员的所有非控制台访问的多重身份验证纳入到持卡人数据环境 (CDE) 中。

根用户是账户中权限最高的用户。

MFA 在用户名和密码之上增加了一层额外的防护。如果具有管理权限的用户通过网络接口而不是到系统组件的直接物理连接访问持卡人数据环境,并且没有实际位于他们管理的计算机前面,则需要使用 MFA。

启用硬件 MFA 是一种用于为所有非控制台管理访问加入多重身份验证 (MFA) 的方法

Remediation

为根账户启用基于硬件的 MFA

  1. 使用 根用户 凭证登录您的账户。

  2. 选择页面右上角的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在警告中,选择 Continue to Security Credentials (继续使用安全凭证)

  4. 选择 Multi-Factor Authentication (MFA) (多重身份验证 (MFA))

  5. 选择 Activate MFA (激活 MFA)

  6. 选择要用于 MFA 的基于硬件(非虚拟)的设备,然后选择 Continue (继续)

  7. 完成配置适合您选择的设备类型的步骤。

[PCI.IAM.5] 应该为根用户启用虚拟 MFA

严重性: 重大

资源:Account

AWS Config 规则:root-account-mfa-enabled

参数:

该控制检查您的 AWS 账户的用户是否需要使用 根用户 凭证通过多重身份验证 (MFA) 设备登录。

它不会检查您是否使用硬件 MFA。

要满足 PCI DSS 要求 8.3.1,您可以在虚拟 MFA(该控制)和硬件 MFA([PCI.IAM.4] 应该为根用户启用硬件 MFA)之间进行选择。

注意

以下区域不支持此控制。

  • 中国(北京)

  • 中国 (宁夏)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 8.3.1: 将具有管理访问权限的人员的所有非控制台访问的多重身份验证纳入到持卡人数据环境 (CDE) 中。

根用户是账户中权限最高的用户。

MFA 在用户名和密码之上增加了一层额外的防护。如果具有管理权限的用户访问持卡人数据环境,并且没有实际位于他们管理的计算机前面,则需要使用 MFA。

启用虚拟 MFA 是一种用于为所有非控制台管理访问加入多重身份验证 (MFA) 的方法。

Remediation

为根账户启用 MFA

  1. 使用 根用户 凭证登录您的账户。

  2. 选择页面右上角的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在警告中,选择 Continue to Security Credentials (继续使用安全凭证)

  4. 选择 Multi-Factor Authentication (MFA) (多重身份验证 (MFA))

  5. 选择 Activate MFA (激活 MFA)

  6. 选择要用于 MFA 的设备类型,然后选择 Continue (继续)

  7. 完成配置适合您选择的设备类型的步骤。

[PCI.IAM.6] 应该为所有 IAM 用户启用 MFA

严重性:

资源:IAM 用户

AWS Config 规则:iam-user-mfa-enabled

参数:

该控制检查 IAM 用户是否启用了多重身份验证 (MFA)。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 8.3.1: 将具有管理访问权限的人员的所有非控制台访问的多重身份验证纳入到持卡人数据环境 (CDE) 中。

为所有 IAM 用户启用 MFA 是一种用于为所有非控制台管理访问加入多重身份验证 (MFA) 的方法。

Remediation

为用户配置 MFA

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

  3. 选择要配置 MFA 的用户的用户名。

  4. 选择 Security credentials,然后选择 Assigned MFA device 旁边的 Manage

  5. 跟随管理 MFA 设备向导指定适合您环境的设备类型。

要了解如何将 MFA 设置委派给用户,请参阅 AWS 安全博客文章如何将多重身份验证管理委派给 AWS IAM 用户

[PCI.IAM.7] 如果在预定义的天数内未使用 IAM 用户凭证,则应将其禁用

严重性:

资源:IAMUser

AWS Config 规则:iam-user-unused-credentials-check

参数:

  • maxCredentialUsageAge:90(天)

该控制检查 IAM 用户是否具有在指定天数内未使用的密码或活动访问密钥。默认值为 90 天。

Security Hub 强烈建议您不要在账户中生成和删除所有访问密钥。建议的最佳做法是创建一个或多个 IAM 角色,或使用联合。这些实践允许您的用户使用其现有公司凭证登录 AWS 管理控制台 控制台和 AWS CLI。

每种方法都有其使用案例。对于现在具有中心目录的企业或者计划需要超过 IAM 用户当前配额的企业,联合身份通常更好。在 AWS 环境外运行的应用程序需要访问密钥才能对 AWS 资源进行编程访问。

但是,如果需要提供编程访问的资源在 AWS 内部运行,则最佳做法是使用 IAM 角色。您可以使用 角色授予资源访问权限,而无需将访问密钥 ID 和秘密访问密钥硬编码到配置中。

要了解有关保护访问密钥和账户的更多信息,请参阅 AWS 中的管理 访问密钥的最佳实践AWS General Reference。另请参阅博客文章在使用编程访问时保护 AWS 账户的准则

如果您已有访问密钥,我们建议您删除或停用 90 天或更长时间不活动的未使用用户凭证。

该控制仅检查非活动密码或活动访问密钥。它不会在 90 天后禁用该账户。客户有责任执行操作并禁用未使用的凭证。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关。

PCI DSS 8.1.4 - 在 90 天内删除/禁用非活动用户账户。

如果您使用 IAM 密码或访问密钥,请确保对它们进行监控以供使用,如果 90 天不使用,则禁用它们。允许 IAM 用户账户使用未使用的凭证保持活动状态可能会违反以下要求:在 90 天内删除/禁用非活动用户账户。

Remediation

要获取监控账户过期凭证所需的一些信息,请使用 IAM 控制台。例如,当您查看账户中的用户时,Access key agePassword ageLast activity 具有列。如果上述列中的任何一个中的值大于 90 天,请停用这些用户的凭证。

您还可以使用凭证报告来监控用户账户和识别 90 天或更长时间没有活动的账户。您可以从 .csv 控制台下载 IAM 格式的凭证报告。有关凭证报告的更多信息,请参阅 中的AWS获取 账户的凭证报告。IAM 用户指南

确定非活动账户或未使用的凭证后,请使用以下步骤禁用它们。

禁用非活动账户或未使用的 IAM 凭证

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. Access management (访问管理) 下,选择 Users (用户)

  3. 选择凭证超过 90 天的用户的名称。

  4. 选择 Security credentials (安全凭证)。对于 90 天或更长时间未使用的所有登录凭证和访问密钥,选择 Make inactive (转为非活跃)

[PCI.IAM.8] IAM 用户的密码策略应具有强配置

严重性:

资源:AWSAccount

AWS Config 规则:iam-password-policy

参数:

该控制检查 IAM 用户的账户密码策略是否使用以下最低 PCI DSS 配置。

  • RequireUppercaseCharacters – 密码中要求至少包含一个大写字符。(默认值 = true)

  • RequireLowercaseCharacters – 密码中要求至少包含一个小写字符。(默认值 = true)

  • RequireNumbers – 密码中要求至少包含一个数字。(默认值 = true)

  • MinimumPasswordLength – 密码最小长度。(默认值 = 7 或更长)

  • PasswordReusePrevention – 允许重复使用之前的密码数。(默认值 = 4)

  • MaxPasswordAge – 密码到期前的天数。(默认值 = 90)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关。

PCI DSS 8.1.4: 在 90 天内删除/禁用非活动用户账户。

如果您的 IAM 账户中有 AWS 用户,则应正确配置 IAM 密码策略。不保护 IAM 用户的密码可能会违反以下要求:在 90 天内删除或禁用非活动用户账户。默认情况下,MaxPasswordAge 参数设置为 90 天。在密码过期之后,IAM 用户无法访问其账户,直到密码被更改,这将禁用用户。

PCI DSS 8.2.3: 密码/口令必须满足以下条件: 要求至少包含 7 个字符的最小长度,并且包含数字和字母字符。

如果您的 IAM 账户中有 AWS 用户,则应正确配置 IAM 密码策略。不保护 IAM 用户的密码可能会违反密码至少保留 7 个字符的最小要求。也可能违反同时包含数字和字母字符的要求。默认情况下,MinimumPasswordLength7,RequireUppercaseCharacterstrue,RequireLowercaseCharacterstrue

PCI DSS 8.2.4: 每 90 天至少更改一次用户密码/口令。

如果您的 IAM 账户中有 AWS 用户,则应正确配置 IAM 密码策略。不保护 IAM 用户的密码可能会违反以下要求:至少每 90 天更改一次用户密码或密码。默认情况下,MaxPasswordAge 参数设置为 90 天。在密码过期后,IAM 用户将无法访问账户,直到密码被更改。

PCI DSS 8.2.5: 不允许个人提交与自己使用的最近四个密码/口令中的任意一个相同的新密码/口令。

如果您的 IAM 账户中有 AWS 用户,则应正确配置 IAM 密码策略。不保护 IAM 用户的密码可能会违反以下要求:不允许个人提交与其之前的任何四个密码或密码相同的新密码或密码。默认情况下,PasswordReusePrevention 设置为 4,这会阻止用户重复使用其最后四个密码。

Remediation

您可以使用 IAM 控制台修改密码策略。

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. Access management (访问管理) 下,选择 Account settings (账户设置)

  3. 选择 Prevent password reuse (防止密码重复使用)。对于 Number of passwords to remember (记住的密码数量),输入 24

  4. 选择 Change password policy (更改密码策略)

  5. 选择 Require at least one uppercase letter from Latin grapter (A-Z) (至少需要一个拉丁字母 (A-Z))

  6. 选择 Require at least one lowercase letter from Latin grapter (a-z)

  7. 选择 Require at least one non-alphanumeric character (!@#$%^&*()_+-=[]{}|')

  8. 选择 Require at least one number (至少需要一个数字)

  9. 对于 Enforce Minimum password length (强制实施最小密码长度),输入 14

  10. 选择 Enable password expiration (启用密码过期)。对于 Expire passwords in day(s),输入 90

  11. 选择保存更改

[PCI.KMS.1] 应启用客户主密钥 (CMK) 轮换

严重性:

资源:AWS KMS 密钥

AWS Config 规则:cmk-backing-key-rotation-enabled

参数:

该控制检查是否为每个客户主密钥 (CMK) 启用密钥轮换。它不会检查已导入密钥材料的 CMKs。

您应该确保轮换已导入材料的密钥以及未存储在 AWS KMS 中的密钥。AWS 托管客户主密钥每 3 年轮换一次。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 3.6.4: 在到达加密期限后,应更改加密密钥。

虽然 PCI DSS 不指定加密期限的时间范围,但如果启用了密钥轮换,则默认情况下每年轮换一次。

如果使用客户主密钥 (CMK) 加密持卡人数据,您应该启用密钥轮换。

这是一种用于在到达加密期限时更改加密密钥的方法。

Remediation

启用 CMK 轮换

  1. https://console.amazonaws.cn/kms 打开 AWS KMS 控制台。

  2. 要更改 AWS 区域,请使用页面右上角的区域选择器。

  3. 选择 Customer managed keys (客户托管密钥)

  4. Alias (别名) 列中,选择要更新的密钥的别名。

  5. 选择 Key rotation (密钥轮换)

  6. 选择 Automatically rotate this CMK every year (每年自动轮换此 CMK),然后选择 Save (保存)

[PCI.Lambda.1] Lambda 函数应禁止公开访问

严重性: 重大

资源:Lambda 函数

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

参数:

该控制检查 Lambda 函数基于资源的策略是否禁止公开访问。

它不会检查内部委托人(例如 IAM 角色)对 Lambda 函数的访问。您应该使用最小权限的 Lambda 基于资源的策略,以确保只有授权的委托人可以访问 Lambda 函数。

有关将基于资源的策略用于 AWS Lambda 的更多信息,请参阅 AWS Lambda Developer Guide

注意

或 中国(北京) 区域中不支持此控制。中国 (宁夏)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您使用 PCI DSS 范围内的 Lambda 函数,则不应公开访问该函数。可公开访问的函数可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您使用 PCI DSS 范围内的 Lambda 函数,则不应公开访问该函数。可公开访问的函数可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.2: 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您使用 PCI DSS 范围内的 Lambda 函数,则不应公开访问该函数。可公开访问的函数可能会违反以下要求:将入站 Internet 流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果您使用 PCI DSS 范围内的 Lambda 函数,则不能公开访问该函数。可公开访问的函数可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

如果您使用 PCI DSS 范围内的 Lambda 函数,则不应公开访问该函数。可公开访问的函数可能会违反以下要求:确保将对包含持卡人数据的系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

要解决该问题,您需要更新基于资源的策略以将可公开访问的 Lambda 函数更改为私有 Lambda 函数。

您只能为 AddPermissionAddLayerVersionPermission API 操作范围内的 Lambda 资源更新基于资源的策略。

您无法使用 JSON 为 Lambda 资源编写策略,也无法通过 CLI 或开发工具包使用没有映射到这些操作的参数的条件。

使用 AWS CLI 从 AWS 服务或其他账户中撤销函数使用权限

  1. 要从 AWS CLI 中获取 GetPolicy 输出中的语句的 ID,请运行以下命令:

    aws lambda get-policy —function-name yourfunctionname

    该命令返回与可公开访问的 Lambda 函数关联的 Lambda 基于资源的策略字符串。

  2. get-policy 命令返回的策略语句中,复制 Sid 字段的字符串值。

  3. 从 AWS CLI 中,运行

    aws lambda remove-permission --function-name yourfunctionname —statement-id youridvalue

使用 Lambda 控制台限制对 Lambda 函数的访问

  1. 通过以下网址打开 AWS Lambda 控制台:https://console.amazonaws.cn/lambda/

  2. 导航到 Functions (函数),然后选择可公开访问的 Lambda 函数。

  3. Designer (设计器) 下面,选择左上角的钥匙图标。它具有工具提示查看权限

  4. Function policy (函数策略) 下面,如果策略允许委托人元素 “*”{“AWS”: “*”} 的操作,则可以公开访问该函数。

    请考虑添加以下 IAM 条件以将访问范围限制为仅您的账户。

    "Condition": { "StringEquals": { "AWS:SourceAccount": "<account_id>" } } }

对于允许您根据每种资源向其他账户授予使用权限的其他 Lambda 基于资源的策略示例,请参阅 AWS Lambda Developer Guide 中将基于资源的策略用于 AWS Lambda 的信息。

[PCI.Lambda.2] Lambda 函数应位于 VPC 中

严重性: Low

资源:Lambda 函数

AWS Config 规则:lambda-inside-vpc

参数:

该控制检查 Lambda 函数是否位于 VPC 中。

它不会评估 VPC 子网路由配置以确定可公开访问性。

请注意,如果在账户中找到 Lambda@Edge,则此控制生成失败的结果。要防止这些结果,您可以禁用该控制。

注意

或 中国(北京) 区域中不支持此控制。中国 (宁夏)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

默认情况下,Lambda 在可访问 AWS 服务和 Internet 的安全默认 VPC 中运行函数。

如果您使用 PCI DSS 范围内的 Lambda 函数,可以将该函数配置为使用 VPC 终端节点。这样,您就可以在无法访问 Internet 的情况下从 VPC 中连接到 Lambda 函数。该方法用于仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

默认情况下,Lambda 在可访问 AWS 服务和 Internet 的安全默认 VPC 中运行函数。

如果您使用 PCI DSS 范围内的 Lambda 函数,可以将该函数配置为使用 VPC 终端节点。这样,您就可以从 VPC 中连接到 Lambda 函数,而无需 Internet 访问权限。这是一种用于将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件的方法。

PCI DSS 1.3.2: 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

默认情况下,Lambda 在可访问 AWS 服务和 Internet 的安全默认 VPC 中运行函数。

如果您使用 PCI DSS 范围内的 Lambda 函数,可以将该函数配置为使用 VPC 终端节点。这样,您就可以从 VPC 中连接到 Lambda 函数,而无需访问 Internet。这是一种用于将入站 Internet 流量限制为 DMZ 中的 IP 地址的方法。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

默认情况下,Lambda 在可访问 AWS 服务和 Internet 的安全默认 VPC 中运行函数。

如果您使用 PCI DSS 范围内的 Lambda 函数,可以将该函数配置为使用 VPC 终端节点。这样,您就可以从 VPC 中连接到 Lambda 函数,而无需访问 Internet。这是一种用于阻止从持卡人数据环境到 Internet 的未经授权的出站流量的方法。

Remediation

配置函数以连接到您的账户的 Virtual Private Cloud (VPC) 中的私有子网

  1. 通过以下网址打开 AWS Lambda 控制台:https://console.amazonaws.cn/lambda/

  2. 导航到 Functions (函数),然后选择 Lambda 函数。

  3. 滚动到 Network (网络),然后选择一个符合函数连接要求的 VPC。

  4. 要在高可用性模式下运行函数,Security Hub 建议您至少选择两个子网。

  5. 选择至少一个符合函数连接要求的安全组。

  6. 选择 Save (保存)

有关更多信息,请参阅 AWS Lambda Developer Guide 中有关配置 Lambda 函数以访问 VPC 中的资源的部分。

[PCI.RDS.1] RDS 快照应禁止公开访问

严重性: 重大

资源:Amazon RDS 数据库快照

AWS Config 规则:rds-snapshots-public-prohibited

参数:

该控制检查 Amazon RDS 数据库快照是否禁止其他账户的访问。您还应该确保将对快照的访问和更改 Amazon RDS 配置的权限限制为仅授权的委托人。

要了解在 Amazon RDS 中共享数据库快照的更多信息,请参阅 Amazon RDS 用户指南

请注意,如果将配置更改为允许公有访问,则 AWS Config 规则可能在长达 12 小时内无法检测到更改。在 AWS Config 规则检测到更改之前,即使配置违反了规则,检查也会通过。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

如果 RDS 快照存储持卡人数据,则不应与其他账户共享 RDS 快照。共享 RDS 快照将允许其他账户从快照还原 RDS 实例。否则可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

如果 RDS 快照存储持卡人数据,则不应与其他账户共享 RDS 快照。共享 RDS 快照将允许其他账户从快照还原 RDS 实例。允许这样做可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

如果 RDS 快照存储持卡人数据,则不应与其他账户共享 RDS 快照。共享 RDS 快照将允许其他账户从快照还原 RDS 实例。否则可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 1.3.6: 将存储持卡人数据的系统组件(如数据库)放入与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

如果 RDS 快照存储持卡人数据,则不应与其他账户共享 RDS 快照。共享 RDS 快照将允许其他账户从快照还原 RDS 实例。否则可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

RDS 快照用于备份 RDS 实例上在特定时间点的数据。它们可用于将 RDS 实例还原到之前的状态。

如果 RDS 快照存储持卡人数据,则不应与其他账户共享 RDS 快照。共享 RDS 快照将允许其他账户从快照还原 RDS 实例。允许这样做可能会违反以下要求:确保将对包含持卡人数据的系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

删除 Amazon RDS 快照的公有访问权限

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 导航到 Snapshots (快照),然后选择要修改的公有快照

  3. Actions (操作) 列表中,选择 Share Snapshots (共享快照)

  4. DB snapshot visibility (数据库快照可见性) 中,选择 Private (私有)

  5. DB snapshot visibility (数据库快照可见性) 下面,选择 for all (用于所有)

  6. 选择 Save

[PCI.RDS.2] RDS 数据库实例应禁止公开访问

严重性: 重大

资源: RDS 数据库实例

AWS Config 规则:rds-instance-public-access-check

参数:

该控制通过评估实例配置项中的 publiclyAccessible 字段,以检查是否可以公开访问 RDS 实例。publiclyAccessible 值指示是否可以公开访问数据库实例。如果可以公开访问数据库实例,则它是一个面向 Internet 的实例并具有可公开解析的 DNS 名称,该名称解析为一个公有 IP 地址。如果无法公开访问数据库实例,则它是一个内部实例并具有解析为私有 IP 地址的 DNS 名称。

该控制不会检查 VPC 子网路由设置或安全组规则。您还应该确保 VPC 子网路由不允许公开访问,并且与 RDS 实例关联的安全组入站规则不允许不受限制的访问 (0.0.0.0/0)。您还应该通过限制用户的 IAM 权限来修改 RDS 实例设置和资源,以确保将对 RDS 实例配置的访问仅限于授权用户。

有关更多信息,请参阅 https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Hiding 中的从 Internet 隐藏 VPC 中的数据库实例Amazon RDS 用户指南。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您使用 PCI DSS 范围内的 RDS 实例,则不应公开访问 RDS 实例。允许此行为可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您使用 RDS 实例存储持卡人数据,则不应公开访问 RDS 实例。允许这样做可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.2: 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您使用 RDS 实例存储持卡人数据,则不应公开访问 RDS 实例,因为这可能会违反以下要求:将入站 Internet 流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果您使用 RDS 实例存储持卡人数据,则不应公开访问 RDS 实例。否则可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 1.3.6: 将存储持卡人数据的系统组件(如数据库)放入与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您使用 RDS 实例存储持卡人数据,则不应公开访问 RDS 实例。否则可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

PCI DSS 7.2.1: 为系统组件建立访问控制系统,根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

如果您使用 RDS 实例存储持卡人数据,则不应公开访问 RDS 实例,因为这可能会违反以下要求:确保将对包含持卡人数据的系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

删除 Amazon RDS 数据库的公开访问权限

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 导航到 Databases (数据库),然后选择公有数据库。

  3. 选择修改

  4. 滚动到 Network & Security (网络与安全)

  5. 对于 Public accessibility (公开可用性),选择 No (否)

  6. 滚动到底部,然后选择 Continue (继续)

  7. Scheduling of modifications (修改计划) 下,选择 Apply immediately (立即应用)

  8. 选择修改数据库实例

有关在 VPC 中使用数据库实例的更多信息,请参阅 Amazon RDS 用户指南

[PCI.Redshift.1] Amazon Redshift 集群应禁止公开访问

严重性: 重大

资源:Amazon Redshift 集群

AWS Config 规则:redshift-cluster-public-access-check

参数:

该控制通过评估集群配置项中的 publiclyAccessible 字段,检查是否可以公开访问 Amazon Redshift 集群。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您使用 Amazon Redshift 集群存储持卡人数据,则不应公开访问该集群。允许此行为可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您使用 Amazon Redshift 集群存储持卡人数据,则不应公开访问该集群。允许这样做可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.2: 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您使用 Amazon Redshift 集群存储持卡人数据,则不应公开访问该集群,因为这可能会违反以下要求:将入站 Internet 流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果您使用 Amazon Redshift 集群存储持卡人数据,则不应公开访问该集群。否则可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 1.3.6: 将存储持卡人数据的系统组件(如数据库)放入与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您使用 Amazon Redshift 集群存储持卡人数据,则不应公开访问该集群。否则可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

Remediation

为 Amazon Redshift 集群禁用公开访问

  1. 通过 https://console.amazonaws.cn/redshift/ 打开 Amazon Redshift 控制台。

  2. 在导航窗格上,选择 Clusters (集群),然后选择公有 Amazon Redshift 集群。

  3. Cluster (集群) 下拉菜单中,选择 Modify cluster (修改集群)

  4. Publicly accessible (公开访问) 中,选择 No (否)

  5. 选择修改

有关在 VPC 中创建集群的更多信息,请参阅 Amazon Redshift Cluster Management Guide

[PCI.S3.1] S3 存储桶应禁止公开写入访问

严重性: 重大

资源: S3 存储桶

AWS Config 规则:s3-bucket-public-write-prohibited

参数:

该控制评估“阻止公开访问”设置、存储桶策略和存储桶访问控制列表 (ACL),以检查 S3 存储桶是否允许公开写入访问。

它不会检查内部委托人(例如 IAM 角色)对存储桶的写入访问。您应该确保限制仅授权的委托人可以访问存储桶。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开写入访问。允许公开写入访问可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开写入访问。允许公开写入访问可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

除非您明确要求 Internet 上的每个人能够写入到 S3 存储桶,否则,应确保 S3 存储桶不能公开写入。

PCI DSS 1.3.2: 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开写入访问。允许公开写入访问可能会违反以下要求:将入站 Internet 流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.4: 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开写入访问。允许公开写入访问可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 1.3.6: 将存储持卡人数据的系统组件(如数据库)放入与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开写入访问。允许公开写入访问可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

PCI DSS 7.2.1: 为系统组件建立访问控制系统,根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开写入访问。允许公开写入访问可能会违反以下要求:确保将对系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

删除 S3 存储桶的公开访问权限

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 选择在结果中指定的存储桶的名称。

  3. 选择 Permissions (权限),然后选择 Public access settings (公有访问权限) 设置。

  4. 选择 Edit (编辑),选择所有四个选项,然后选择 Save (保存)

  5. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[PCI.S3.2] S3 存储桶应禁止公开读取访问

严重性: 重大

资源: S3 存储桶

AWS Config 规则:s3-bucket-public-read-prohibited

参数:

该控制评估“阻止公开访问”设置、存储桶策略和存储桶访问控制列表 (ACL),以检查 S3 存储桶是否允许公开读取访问。

除非您明确要求 Internet 上的每个人能够写入到 S3 存储桶,否则,应确保 S3 存储桶不能公开写入。

它不会检查内部委托人(例如 IAM 角色)对存储桶的读取访问。您应该确保限制仅授权的委托人可以访问存储桶。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1: 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开读取访问。公开读取访问可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1: 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开读取访问。公开读取访问可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.2: 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开读取访问。公开读取访问可能会违反以下要求:将入站 Internet 流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.6: 将存储持卡人数据的系统组件(如数据库)放入与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开读取访问。公开读取访问可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

PCI DSS 7.2.1: 为系统组件建立访问控制系统,以根据用户需要了解的内容限制访问,并设置为“拒绝所有”,除非明确允许。此访问控制系统必须包含以下内容: 所有系统组件的覆盖率。

如果您使用 S3 存储桶存储持卡人数据,存储桶应禁止公开读取访问。公开读取访问可能会违反以下要求:确保将对系统组件的访问限制为所需的最小权限或用户需要了解的内容。

Remediation

删除 S3 存储桶的公开访问权限

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 选择在结果中指定的存储桶的名称。

  3. 选择 Permissions (权限),然后选择 Public access settings (公有访问权限) 设置。

  4. 选择 Edit (编辑),选择所有四个选项,然后选择 Save (保存)

  5. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

[PCI.S3.3] S3 存储桶应启用跨区域复制

严重性: Low

资源: S3 存储桶

AWS Config 规则:s3-bucket-replication-enabled

参数:

该控制检查 S3 存储桶是否启用了跨区域复制。

PCI DSS 不需要使用数据复制或高可用性配置。不过,该检查符合该控制的 AWS 最佳实践。

除了可用性以外,您还应该考虑其他系统强化设置。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 2.2: 为所有系统组件制定配置标准。确保这些标准解决了所有已知的安全漏洞,并与行业认可的系统强化标准保持一致。

对 S3 存储桶启用跨区域复制可确保在不同的区域中提供多个版本的数据。这使您可以将数据存储在更远的距离、最大程度地减少延迟、提高操作效率并防范 DDoS 和数据损坏事件。

这是一种用于实施系统强化配置的方法。

Remediation

启用 S3 存储桶复制

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 选择未启用跨区域复制的 S3 存储桶。

  3. 选择 Management (管理),然后选择 Replication (复制)

  4. 选择 Add rule。如果尚未启用版本控制,则会提示您启用该功能。

  5. 选择您的源存储桶 - Entire bucket (整个存储桶)

  6. 选择目标存储桶。如果尚未在您的账户的目标存储桶上启用版本控制,则会提示您启用该功能。

  7. 选择一个 IAM 角色。有关设置复制权限的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

  8. 输入规则名称,为状态选择 Enabled (已启用),然后选择 Next (下一步)

  9. 选择 Save (保存)

有关复制的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

[PCI.S3.4] S3 存储桶应启用服务器端加密

严重性:

资源: S3 存储桶

AWS Config 规则:s3-bucket-server-side-encryption-enabled

参数:

该控制检查 Amazon S3 存储桶是否启用了 Amazon S3 默认加密,或检查 S3 存储桶策略是否明确拒绝没有服务器端加密的放置对象请求。

如果在存储桶上设置默认加密,存储桶中存储的所有新对象将在存储时进行加密,包括明文 PAN 数据。

也可以使用存储桶策略强制对存储桶中存储的所有对象进行服务器端加密。有关服务器端加密的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 3.4: 渲染主账号 (PAN) 在存储位置不可读 (包括在可移植数字媒体、备份媒体和日志中)。

如果您使用 S3 存储桶存储信用卡主账号 (PAN),要使 PAN 不可读,应启用存储桶默认加密以及/或者 S3 存储桶策略应明确拒绝没有服务器端加密的放置对象请求。

Remediation

对 S3 存储桶启用默认加密

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 从列表中选择存储桶。

  3. 选择属性

  4. 选择 Default encryption

  5. 对于加密,请选择 AES-256AWS-KMS

    • 要由 Amazon S3 托管的密钥进行默认加密,请选择 AES-256。有关使用 Amazon S3 服务器端加密对数据进行加密的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

    • 要使用由 AWS KMS 托管的密钥进行默认加密,请选择 AWS-KMS。然后从已创建的 AWS KMS 主密钥列表中选择一个主密钥。

      键入要使用的 AWS KMS 密钥的 Amazon 资源名称 (ARN)。您可以在 IAM 控制台中的 Encryption keys (加密密钥) 下方找到您的 AWS KMS 密钥的 ARN。或者,您可以从下拉列表中选择一个键名。

      重要

      如果您将 AWS KMS 选项用于默认加密配置,则您将受到 AWS KMS 的 RPS(每秒请求数)限制。有关 AWS KMS 限制以及如何请求增加限制的更多信息,请参阅 AWS Key Management Service Developer Guide

      有关创建 AWS KMS 密钥的更多信息,请参阅 AWS Key Management Service Developer Guide

      有关将 AWS KMS 与 Amazon S3 一起使用的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

    在启用默认加密时,您可能需要更新存储桶策略。有关从存储桶策略更改为默认加密的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

  6. 选择 Save (保存)

有关默认 S3 存储桶加密的更多信息,请参阅 Amazon Simple Storage Service 控制台用户指南

[PCI.S3.5] S3 存储桶应请求使用安全套接字层

严重性:

资源: S3 Bucket

AWS Config 规则:s3-bucket-ssl-requests-only

参数:

该控制检查 Amazon S3 存储桶是否具有需要请求使用安全套接字层 (SSL) 的策略。

S3 存储桶应具有要求所有请求 (Action: S3:*) 在 S3 资源策略中仅接受通过 HTTPS 传输数据的策略,如条件键 aws:SecureTransport 所指示。

这不会检查 SSL 或 TLS 版本。根据 PCI DSS 要求,您不应允许 SSL 或 TLS 的早期版本 (SSLv3,TLS1.0)。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关。

PCI DSS 4.1 在通过开放的公用网络传输期间,使用强大的加密和安全协议保护敏感的持卡人数据。

如果您使用 S3 存储桶存储持卡人数据,请确保存储桶策略要求对存储桶的请求仅接受通过 HTTPS 传输的数据。例如,您可以使用策略语句 "aws:SecureTransport": "false" 拒绝未通过 HTTPS 访问的任何请求。允许对持卡人数据进行未加密传输可能会违反以下要求:在通过开放的公用网络进行传输期间,使用强大的加密和安全协议来保护敏感的持卡人数据。

Remediation

要修复此问题,请更新 S3 存储桶的权限策略。

配置 S3 存储桶以拒绝不安全的传输

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 导航到不合规存储桶,然后选择存储桶名称。

  3. 选择 Permissions (权限),然后选择 Bucket Policy (存储桶策略)

  4. 添加与以下策略中的策略语句类似的策略语句。将 awsexamplebucket 替换为您正在修改的存储桶的名称。

    { "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSSLRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::awsexamplebucket", "arn:aws:s3:::awsexamplebucket/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }
  5. 选择 Save (保存)

有关更多信息,请参阅知识中心文章我应该使用哪个 S3 存储桶策略遵守 AWS Config 规则 s3-bucket-ssl-requests-only?

[PCI.S3.6] 应启用 S3 阻止公有访问设置

严重性:

资源: S3 AWS 账户

AWS Config 规则:s3-account-level-public-access-blocks

参数:

  • ignorePublicAcls: true

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

该控制检查是否在账户级别配置了以下公有访问阻止设置。

  • ignorePublicAcls: true,

  • blockPublicPolicy: true

  • blockPublicAcls: true

  • restrictPublicBuckets: true

作为 AWS 最佳实践,S3 存储桶应阻止公有访问。除非您明确要求 Internet 上的每个人能够访问您的 S3 存储桶,否则应确保您的 S3 存储桶不可公开访问。

注意

欧洲(米兰) 或 中东(巴林) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关。

PCI DSS 1.2.1 - 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您使用 S3 存储桶存储持卡人数据,请确保存储桶不允许公有访问。对您的 S3 存储桶的公开访问可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1 - 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您使用 S3 存储桶存储持卡人数据,请确保存储桶不允许公有访问。允许对 S3 存储桶进行公开访问可能会违反以下要求:将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.2 - 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您使用 S3 存储桶存储持卡人数据,请确保存储桶不允许公有访问。允许对 S3 存储桶进行公有访问可能会违反以下要求:将入站流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.4 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果您使用 S3 存储桶存储持卡人数据,请确保存储桶不允许公有访问。允许公开访问您的 S3 存储桶可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量。

PCI DSS 1.3.6 将存储持卡人数据的系统组件(如数据库)放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您使用 S3 存储桶存储持卡人数据,请确保存储桶不允许公有访问。允许公开访问您的 S3 存储桶可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

Remediation

启用 Amazon S3 阻止公有访问

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 在导航窗格中,选择 Block public access (account settings) (阻止公有访问(账户设置))

  3. 选择 Edit (编辑)。然后选择 Block all public access (阻止所有公有访问)

  4. 选择保存更改

有关更多信息,请参阅 中的Amazon S3使用 阻止公有访问。Amazon Simple Storage Service 开发人员指南

[PCI.SageMaker.1] Amazon SageMaker 笔记本实例不应具有直接 Internet 访问权限

严重性:

资源: SageMaker:NotebookInstance

AWS Config 规则:sagemaker-notebook-no-direct-internet-access

参数:

该控制检查 SageMaker 笔记本实例是否禁用了直接 Internet 访问。为此,它检查笔记本实例是否禁用了 DirectInternetAccess 字段。

如果您在没有 VPC 的情况下配置 SageMaker 实例,则默认情况下,在您的实例上启用直接 Internet 访问。您应为实例配置 VPC,并将默认设置更改为 Disable – Access the Internet via a VPC

要从笔记本训练或托管模型,您需要 Internet 访问。要启用 Internet 访问,请确保您的 VPC 具有 NAT 网关,并且您的安全组允许出站连接。要了解有关如何将笔记本实例连接到 VPC 中的资源的更多信息,请参阅 https://docs.amazonaws.cn/sagemaker/latest/dg/appendix-notebook-and-internet-access.html 中的将笔记本实例连接到 VPC 中的资源Amazon SageMaker 开发人员指南。

您还应该确保将对 SageMaker 配置的访问权限限制为仅授权用户。限制用户的 IAM 权限以修改 SageMaker 设置和资源。

注意

以下区域不支持此控制。

  • 非洲(开普敦)

  • 中国(北京)

  • 中国 (宁夏)

  • 欧洲(米兰)

  • AWS GovCloud(美国东部)

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 1.2.1 - 将入站和出站流量限制为持卡人数据环境 (CDE) 所需的流量,并明确拒绝所有其他流量。

如果您在 CDE 内使用 SageMaker 笔记本实例,请确保笔记本实例不允许直接 Internet 访问。允许对笔记本实例进行直接公有访问可能会违反以下要求:仅允许与 CDE 之间的所需流量。

PCI DSS 1.3.1 - 实施 DMZ,以将入站流量限制为仅提供授权的可公开访问服务、协议和端口的系统组件。

如果您在 CDE 内使用 SageMaker 笔记本实例,请确保笔记本实例不允许直接 Internet 访问。允许直接公开访问笔记本实例可能会违反以下要求:仅允许访问提供授权的可公开访问服务、协议和端口的系统组件。

PCI DSS 1.3.2 - 将入站 Internet 流量限制为 DMZ 中的 IP 地址。

如果您在 CDE 内使用 SageMaker 笔记本实例,请确保笔记本实例不允许直接 Internet 访问。允许对笔记本实例进行直接公有访问可能会违反以下要求:将入站流量限制为 DMZ 中的 IP 地址。

PCI DSS 1.3.4 不允许从持卡人数据环境到 Internet 的未经授权的出站流量。

如果您在 CDE 内使用 SageMaker 笔记本实例,请确保笔记本实例不允许直接 Internet 访问。允许对笔记本实例进行直接公有访问可能会违反以下要求:阻止从持卡人数据环境到 Internet 的未经授权的出站流量

PCI DSS 1.3.6 将存储持卡人数据的系统组件(如数据库)放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

如果您使用 SageMaker 笔记本实例,并且笔记本实例包含持卡人数据,请限制直接 Internet 访问。允许直接公开访问笔记本实例可能会违反以下要求:将存储持卡人数据的系统组件放置在与 DMZ 和其他不受信任的网络隔离的内部网络区域中。

Remediation

请注意,在创建笔记本实例后,您无法更改 Internet 访问设置。它必须停止、删除并重新创建。

配置 SageMaker 笔记本实例以拒绝直接 Internet 访问

  1. https://console.amazonaws.cn/sagemaker/ 打开 SageMaker 控制台

  2. 导航到 Notebook instances (笔记本实例)

  3. 删除启用了直接 Internet 访问的实例。选择实例,选择 Actions (操作),然后选择 stop (停止)。

    实例停止后,选择 Actions,然后选择 delete

  4. 选择创建笔记本实例。提供配置详细信息。

  5. 展开 Network (网络) 部分。然后选择 VPC、子网和安全组。在 Direct internet access (直接 Internet 访问) 下,选择 Disable - Access the internet via a VPC (禁用 - 通过 VPC 访问 Internet)

  6. 选择创建笔记本实例

有关更多信息,请参阅 https://docs.amazonaws.cn/sagemaker/latest/dg/appendix-notebook-and-internet-access.html 中的将笔记本实例连接到 VPC 中的资源Amazon SageMaker 开发人员指南。

[PCI.SSM.1] 在安装补丁后,Systems Manager 管理的 Amazon EC2 实例的补丁合规性状态应该为 COMPLIANT

严重性:

资源:SSM 补丁合规性和 Amazon EC2 实例

AWS Config 规则:ec2-managedinstance-patch-compliance-status-check

参数:

该控制检查在实例上安装补丁后,Amazon EC2 Systems Manager 补丁合规性的合规性状态是 COMPLIANT 还是 NON_COMPLIANT

它仅检查 AWS Systems Manager Patch Manager 管理的实例。

它不会检查是否在 PCI DSS 要求 6.2 规定的 30 天限制内应用补丁。

它也不会验证应用的补丁是否归类为安全补丁。

您应该使用相应的基准设置创建补丁组,并确保范围内的系统由 Systems Manager 中的这些补丁组进行管理。有关补丁组的更多信息,请参阅 AWS Systems Manager 用户指南

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 6.2: 通过安装供应商提供的适用安全修补程序,确保所有系统组件和软件都受到保护,以免受到已知漏洞的影响。请在发布后的一个月内安装重要安全补丁。

对于供应商为 PCI DSS 范围内的系统发布的补丁,在生产环境中安装前应进行测试和验证。部署后,应验证安全设置和控制,以确保部署的补丁不会影响持卡人数据环境 (CDE) 的安全性。

如果您使用 AWS Systems Manager Patch Manager 管理的 Amazon EC2 实例修补 CDE 中的托管实例,请确保成功应用了补丁。为此,请检查 Amazon EC2 Systems Manager 补丁合规性的合规性状态是否为“COMPLIANT”。Patch Manager 可以应用操作系统和应用程序的适用补丁。

这是一种用于保护系统组件和软件以免受到已知漏洞攻击的方法。

Remediation

修复不合规的补丁

该规则检查 Amazon EC2 Systems Manager 补丁合规性的合规性状态是 COMPLIANT 还是 NON_COMPLIANT。要了解补丁合规性状态的更多信息,请参阅 AWS Systems Manager 用户指南

  1. https://console.amazonaws.cn/systems-manager/ 打开 AWS Systems Manager 控制台。

  2. 在导航窗格中的 Instances & Nodes (实例和节点) 下面,选择 Run Command (运行命令)

  3. 选择运行命令

  4. 选择 AWS-RunPatchBaseline 旁边的单选按钮,然后将 Operation (操作) 更改为 Install (安装)

  5. 选择 Choose instances manually (手动选择实例),然后选择不合规的实例。

  6. 滚动到底部,然后选择 Run (运行)

  7. 在该命令完成后,要监控修补的实例的新合规性状态,请在导航窗格中选择 Compliance (合规性)

有关以下内容的更多信息,请参阅 AWS Systems Manager 用户指南

[PCI.SSM.2] 由 Systems Manager 管理的实例的关联合规性状态应为 COMPLIANT

严重性: Low

资源: AwsSSMAssociationCompliance

AWS Config 规则:ec2-managedinstance-association-compliance-status-check

参数:

该控制检查在实例上运行关联后,AWS Systems Manager 关联合规性的状态为 COMPLIANT 还是 NON_COMPLIANT。如果关联合规性状态为 COMPLIANT,则控制传递。

State Manager 关联是分配给托管实例的配置。该配置定义要在实例上保持的状态。例如,关联可以指定必须在实例上安装并运行防病毒软件,或必须关闭特定端口。

创建一个或多个 State Manager 关联后,控制台中或 AWS CLI 命令或相应 Systems Manager API 操作的响应中将立即出现合规性状态信息。对于关联,Configuration Compliance (配置合规性) 显示 Compliant (合规)Non-compliant (不合规) 状态以及分配给关联的严重性级别,例如 Critical (重大)Medium (中等)。要了解有关 State Manager 关联合规性的更多信息,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/sysman-compliance-about.html#sysman-compliance-about-association 中的关于 State Manager 关联合规性AWS Systems Manager 用户指南。

您必须为 Systems Manager 关联配置范围内 EC2 实例。您还必须为补丁供应商的安全评级配置补丁基准,并设置自动批准日期以满足 PCI DSS 3.2.1 要求 6.2。有关如何创建关联的其他指导,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/sysman-state-assoc.html 中的创建关联AWS Systems Manager 用户指南。有关在 Systems Manager 中使用修补的其他信息,请参阅 中的 AWS Systems Manager Patch ManagerAWS Systems Manager 用户指南

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关。

PCI DSS 2.4 维护 PCI DSS 范围内的系统组件的清单。

如果您使用 Systems Manager 托管的 EC2 实例来收集持卡人数据环境 (CDE) 的清单,请确保成功关联了这些实例。为此,请检查 Systems Manager 关联合规性的合规性状态是否为 COMPLIANT。 使用 Systems Manager 有助于维护 PCI DSS 范围内的系统组件的清单。有关如何组织清单的其他指导,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/sysman-inventory-datasync.html 中的配置清单的资源数据同步AWS Systems Manager 用户指南。

Remediation

失败的关联可能与不同的事物(包括目标和 SSM 文档名称)相关。要修复该问题,您必须先确定并调查关联。然后,您可以更新关联以更正特定问题。

您可以编辑关联以指定新名称、计划、严重级别或目标。编辑关联后,Systems Manager 将创建新版本。

调查和更新失败的关联

  1. https://console.amazonaws.cn/systems-manager/ 打开 AWS Systems Manager 控制台。

  2. 在导航窗格中的 Instances & Nodes (实例和节点) 下,选择 Managed Instances (托管实例)

  3. 选择 Association status (关联状态)Failed (失败) 的实例 ID。

  4. 选择查看详细信息

  5. 选择 Associations (关联)

  6. 记下关联(Association status (关联状态)Failed (失败))的名称。这是您需要调查的关联。您需要在下一步中使用关联名称。

  7. 在导航窗格中,选择状态管理器。搜索关联名称,然后选择关联。

    确定问题后,编辑失败的关联以更正问题。有关如何编辑关联的信息,请参阅编辑关联

有关创建和编辑 State Manager 关联的更多信息,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/systems-manager-associations.html 中的在 Systems Manager 中使用关联AWS Systems Manager 用户指南。

[PCI.SSM.3] EC2 实例应由 AWS Systems Manager 管理

严重性:

资源: AwsEc2Instance

AWS Config 规则:ec2-instance-managed-by-systems-manager

参数:

该控制检查您账户中的 EC2 实例是否由 Systems Manager 管理。

AWS Systems Manager 是一项 AWS 服务,可用于查看和控制 AWS 基础设施。为了帮助您维护安全性和合规性,Systems Manager 扫描您的托管实例。托管实例是配置为与 Systems Manager 一起使用的计算机。随后,Systems Manager 报告或对其检测到的任何策略违规行为采取纠正措施。Systems Manager 还可帮助您配置和维护托管实例。中需要额外的配置才能将补丁部署到托管 EC2 实例。Systems Manager

要了解更多信息,请参阅 AWS Systems Manager 用户指南

相关的 PCI DSS 要求

该控制与以下 PCI DSS 要求相关:

PCI DSS 2.4 维护 PCI DSS 范围内的系统组件的清单。

如果您使用 Systems Manager 托管的 EC2 实例来收集持卡人数据环境 (CDE) 的清单,请确保这些实例由 Systems Manager 管理。使用 Systems Manager 有助于维护 PCI DSS 范围内的系统组件的清单。有关如何组织清单的其他指导,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/sysman-inventory-datasync.html 中的配置清单的资源数据同步AWS Systems Manager 用户指南。

PCI DSS 6.2 - 通过安装供应商提供的适用安全补丁,确保所有系统组件和软件都免受已知漏洞的保护。请在发布后的一个月内安装重要安全补丁。

对于 PCI DSS 范围内的系统,在生产环境中安装供应商补丁之前,您应测试并验证这些补丁。部署补丁后,请验证安全设置和控制,以确保部署的补丁不会影响 CDE 的安全性。如果您使用 Systems Manager 托管的 EC2 实例来修补 CDE 中的托管实例,请确保这些实例由 Systems Manager 管理。Systems Manager 部署系统补丁,这有助于保护系统组件和软件免受已知漏洞的影响。

Remediation

您可以使用 Systems Manager 快速设置来设置 Systems Manager 以管理您的 EC2 实例。

要确定您的实例是否可以支持 Systems Manager 关联,请参阅 Systems Manager 中的 先决条件AWS Systems Manager 用户指南。

确保 EC2 实例由 Systems Manager 管理

  1. https://console.amazonaws.cn/systems-manager/ 打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Quick setup (快速设置)

  3. 在配置屏幕上,保留默认选项。

  4. 选择 Set up (设置)Systems Manager