适用于 Amazon EKS 的 Security Hub 控件
这些 Security Hub 控件可评估 Amazon Elastic Kubernetes Service(Amazon EKS)的服务和资源。这些控件可能并非在所有 AWS 区域都可用。有关更多信息,请参阅 按地区划分的控件可用性。
[EKS.1] EKS 集群端点不应公开访问
相关要求: NIST.800-53.r5 AC-21、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-4、NIST.800-53.r5 AC-4(21)、NIST.800-53.r5 AC-6、NIST.800-53.r5 SC-7、NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)、NIST.800-53.r5 SC-7(20)、NIST.800-53.r5 SC-7(21)、NIST.800-53.r5 SC-7(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-7(9)、PCI DSS v4.0.1/1.4.4
类别:保护 > 安全网络配置 > 不公开访问的资源
严重性:高
资源类型:AWS::EKS::Cluster
AWS Config 规则: eks-endpoint-no-public-access
计划类型:定期
参数:无
此控件检查 Amazon EKS 集群端点是否公开访问。如果 EKS 集群具有公开访问的端点,则控制失败。
当您创建新集群时,Amazon EKS 会为您用来与集群通信的托管 Kubernetes API 服务器创建一个端点。默认情况下,此 API 服务器端点可在 Internet 上公开使用。使用 AWS Identity and Access Management (IAM) 和本机 Kubernetes 基于角色的访问控制 (RBAC) 相结合的方式加以保护。通过移除对端点的公共访问权限,您可以避免意外暴露和访问集群。
修复
要修改现有 EKS 集群的端点访问权限,请参阅 Amazon EKS 用户指南中的修改集群端点访问权限。您可以在创建新 EKS 集群时为其设置端点访问权限。有关创建新 Amazon EKS 集群的说明,请参阅 Amazon EKS 用户指南中的创建 Amazon EKS 集群。
[EKS.2] EKS 集群应在支持的 Kubernetes 版本上运行
相关要求: 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::EKS::Cluster
AWS Config 规则: eks-cluster-supported-version
计划类型:已触发变更
参数:
-
oldestVersionSupported:1.31(不可自定义)
此控件可检查 Amazon Elastic Kubernetes Service(Amazon EKS)集群是否在支持的 Kubernetes 版本上运行。如果 EKS 集群在不支持的版本上运行,则此控件将失败。
如果您的应用程序不需要特定版本的 Kubernetes,我们建议您为集群使用 EKS 支持的最新可用 Kubernetes 版本。有关更多信息,请参阅《Amazon EKS 用户指南》中的 Amazon EKS Kubernetes 发布日历和了解 Amazon EKS 上的 Kubernetes 版本生命周期。
修复
要更新 EKS 集群,请参阅《Amazon EKS 用户指南》中的 Update an existing cluster to a new Kubernetes version。
[EKS.3] EKS 集群应使用加密的 Kubernetes 密钥
相关要求: NIST.800-53.r5 SC-8、NIST.800-53.r5 SC-12、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-28、PCI DSS v4.0.1/8.3.2
类别:保护 > 数据保护 > 静态数据加密
严重性:中
资源类型:AWS::EKS::Cluster
AWS Config 规则: eks-cluster-secrets-encrypted
计划类型:定期
参数:无
此控件可检查 Amazon EKS 集群是否使用了加密的 Kubernetes 密钥。如果集群的 Kubernetes 密钥未加密,则此控件将失败。
加密密钥时,可以使用 AWS Key Management Service(AWS KMS)密钥为集群提供存储在 etcd 中的 Kubernetes 密钥的信封加密。这种加密是对 EBS 卷加密的补充,默认情况下,对作为 EKS 集群的一部分存储在 etcd 中的所有数据(包括密钥)启用该加密。对 EKS 集群使用密钥加密,您就可以使用您定义和管理的 KMS 密钥对 Kubernetes 密钥进行加密,从而为 Kubernetes 应用程序部署深度防御策略。
修复
要在 EKS 集群上启用密钥加密,请参阅《Amazon EKS 用户指南》中的在现有集群上启用密钥加密。
[EKS.6] 应标记 EKS 集群
类别:识别 > 清单 > 标记
严重性:低
资源类型:AWS::EKS::Cluster
AWS Config规则:tagged-eks-cluster(自定义 Security Hub 规则)
计划类型:已触发变更
参数:
| 参数 | 描述 | 类型 | 允许的自定义值 | Security Hub 默认值 |
|---|---|---|---|---|
requiredTagKeys
|
被评估资源必须包含的非系统标签键列表。标签键区分大小写。 | StringList(最多 6 项) | 1-6 个符合 AWS 要求的标签键。 | 无默认值 |
此控件可检查 Amazon EKS 集群是否具有带特定键的标签,这些键在 requiredTagKeys 参数中进行定义。如果集群没有任何标签键或者未在 requiredTagKeys 参数中指定所有键,则此控件将失败。如果未提供 requiredTagKeys 参数,则此控件仅检查是否存在标签键,如果集群未使用任何键进行标记,则此控件将失败。自动应用并以 aws: 为开头的系统标签会被忽略。
标签是您分配给 AWS 资源的标记,由一个键和一个可选值组成。您可以创建标签,以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时,可以将基于属性的访问权限控制(ABAC)作为授权策略实施,该策略根据标签来定义权限。您可以将标签附加到 IAM 实体(用户或角色)以及 AWS 资源。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息,请参阅 IAM 用户指南中的什么是适用于 AWS 的 ABAC?。
注意
请勿在标签中添加个人身份信息(PII)或者其他机密或敏感信息。可从许多 AWS 服务访问标签,包括 AWS Billing。有关标记更多最佳实践,请参阅《AWS 一般参考》中的标记 AWS 资源。
修复
要向 EKS 集群添加标签,请参阅《Amazon EKS 用户指南》中的标记 Amazon EKS 资源。
[EKS.7] 应标记 EKS 身份提供商配置
类别:识别 > 清单 > 标记
严重性:低
资源类型:AWS::EKS::IdentityProviderConfig
AWS Config规则:tagged-eks-identityproviderconfig(自定义 Security Hub 规则)
计划类型:已触发变更
参数:
| 参数 | 描述 | 类型 | 允许的自定义值 | Security Hub 默认值 |
|---|---|---|---|---|
requiredTagKeys
|
被评估资源必须包含的非系统标签键列表。标签键区分大小写。 | StringList(最多 6 项) | 1-6 个符合 AWS 要求的标签键。 | 无默认值 |
此控件可检查 Amazon EKS 身份提供商配置是否具有带特定键的标签,这些键在 requiredTagKeys 参数中进行定义。如果配置没有任何标签键或未在 requiredTagKeys 参数中指定所有键,则此控件将失败。如果未提供 requiredTagKeys 参数,则此控件仅检查是否存在标签键,如果配置未使用任何键进行标记,则此控件将失败。自动应用并以 aws: 为开头的系统标签会被忽略。
标签是您分配给 AWS 资源的标记,由一个键和一个可选值组成。您可以创建标签,以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时,可以将基于属性的访问权限控制(ABAC)作为授权策略实施,该策略根据标签来定义权限。您可以将标签附加到 IAM 实体(用户或角色)以及 AWS 资源。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息,请参阅 IAM 用户指南中的什么是适用于 AWS 的 ABAC?。
注意
请勿在标签中添加个人身份信息(PII)或者其他机密或敏感信息。可从许多 AWS 服务访问标签,包括 AWS Billing。有关标记更多最佳实践,请参阅《AWS 一般参考》中的标记 AWS 资源。
修复
要向 EKS 身份提供商配置添加标签,请参阅《Amazon EKS 用户指南》中的标记 Amazon EKS 资源。
[EKS.8] EKS 集群应启用审核日志记录
相关要求: NIST.800-53.r5 AC-2(12)、NIST.800-53.r5 AC-2(4)、NIST.800-53.r5 AC-4(26)、NIST.800-53.r5 AC-6(9)、NIST.800-53.r5 AU-10、NIST.800-53.r5 AU-12、NIST.800-53.r5 AU-2、NIST.800-53.r5 AU-3、NIST.800-53.r5 AU-6(3)、NIST.800-53.r5 AU-6(4)、NIST.800-53.r5 AU-9(7)、NIST.800-53.r5 CA-7、NIST.800-53.r5 SC-7(9)、NIST.800-53.r5 SI-3(8)、NIST.800-53.r5 SI-4、NIST.800-53.r5 SI-4(20)、NIST.800-53.r5 SI-7(8)、PCI DSS v4.0.1/10.2.1
类别:识别 > 日志记录
严重性:中
资源类型:AWS::EKS::Cluster
AWS Config 规则: eks-cluster-log-enabled
计划类型:已触发变更
参数:
logTypes: audit(不可自定义)
此控件检查 Amazon EKS 集群是否启用了审核日志记录。如果没有为集群启用审核日志记录,则控制失败。
注意
此控件不会检查是否通过 Amazon Security Lake 为 AWS 账户 启用了 Amazon EKS 审计日志记录。
EKS 控制面板日志记录将审计和诊断日志直接从 EKS 控制面板提供到您账户中的 Amazon CloudWatch Logs。您可以选择您需要的日志类型,日志将作为日志流发送到 CloudWatch 中每个 EKS 集群的组。通过日志记录,可以了解 EKS 集群的访问情况和性能。通过将 EKS 集群的 EKS 控制面板日志发送到 CloudWatch Logs,您可以在中心位置记录用于审计和诊断目的的操作。
修复
要为您的 EKS 集群启用审核日志,请参阅《Amazon EKS 用户指南》中的启用和禁用控制面板日志。