

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

# 适用于亚马逊 ECR 的 Security Hub CSPM 控件
<a name="ecr-controls"></a>

这些 Security Hub CSPM 控件评估亚马逊弹性容器注册表 (Amazon ECR) Container Registry 的服务和资源。

这些控件可能并非全部可用 AWS 区域。有关更多信息，请参阅 [按地区划分的控件可用性](securityhub-regions.md#securityhub-regions-control-support)。

## [ECR.1] ECR 私有存储库应配置图像扫描
<a name="ecr-1"></a>

**相关要求：** NIST.800-53.r5 RA-5，PCI DSS v4.0.1/6.2.3，PCI DSS v4.0.1/6.2.4

**类别：**识别 > 漏洞、补丁和版本管理

**严重性：**高

**资源类型：**`AWS::ECR::Repository`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/ecr-private-image-scanning-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/ecr-private-image-scanning-enabled.html)

**计划类型：**定期

**参数：**无

此控件检查私有 Amazon ECR 存储库是否配置了图像扫描。如果未将私有 ECR 存储库配置为推送时扫描或连续扫描，则控制失败。

ECR 映像扫描有助于识别容器映像中的软件漏洞。在 ECR 存储库上配置图像扫描为所存储图像的完整性和安全性添加了一层验证。

### 修复
<a name="ecr-1-remediation"></a>

要为 ECR 存储库配置图像扫描，请参阅 *Amazon Elastic Container Registry 用户指南*中的[图像扫描](https://docs.aws.amazon.com//AmazonECR/latest/userguide/image-scanning.html)。

## [ECR.2] ECR 私有存储库应配置标签不可变性
<a name="ecr-2"></a>

**相关要求：** NIST.800-53.r5 CA-9(1)、nist.800-53.r5 CM-2、nist.800-53.r5 CM-8 (1)

**类别：**识别 > 清单 > 标记

**严重性：**中

**资源类型：**`AWS::ECR::Repository`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/ecr-private-tag-immutability-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/ecr-private-tag-immutability-enabled.html)

**计划类型：**已触发变更

**参数：**无

此控件检查私有 ECR 存储库是否启用了标签不可变性。如果私有 ECR 存储库禁用了标签不可变性，则此控制失败。如果启用了标签不可变性并且具有值 `IMMUTABLE`，则此规则通过。

Amazon ECR 标签不变性使客户能够依靠图像的描述性标签作为跟踪和唯一识别图像的可靠机制。不可变标签是静态的，这意味着每个标签都引用一个唯一的图像。这提高了可靠性和可扩展性，因为使用静态标签总是会导致部署相同的映像。配置后，标签不变性可防止标签被覆盖，从而减少攻击面。

### 修复
<a name="ecr-2-remediation"></a>

要创建配置了不可变标签的存储库或更新现有存储库的图像标签可变性设置，请参阅 *Amazon Elastic Container Registry 用户指南*中的[图像标签可变性](https://docs.aws.amazon.com//AmazonECR/latest/userguide/image-tag-mutability.html)。

## [ECR.3] ECR 存储库应至少配置一个生命周期策略
<a name="ecr-3"></a>

**相关要求：** NIST.800-53.r5 CA-9(1)、nist.800-53.r5 CM-2、nist.800-53.r5 CM-2 (2)

**类别：**识别 > 资源配置

**严重性：**中

**资源类型：**`AWS::ECR::Repository`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/ecr-private-lifecycle-policy-configured.html](https://docs.aws.amazon.com/config/latest/developerguide/ecr-private-lifecycle-policy-configured.html)

**计划类型：**已触发变更

**参数：**无

此控件检查 Amazon ECR 存储库是否至少配置了一个生命定期策略。如果 ECR 存储库未配置任何生命定期策略，则此控制失败。

Amazon ECR 生命周期策略使您能够指定存储库中镜像的生命周期管理。通过配置生命周期策略，您可以根据年龄或数量自动清理未使用的映像以及到期的映像。自动执行这些任务可以帮助您避免无意中使用存储库中过时的映像。

### 修复
<a name="ecr-3-remediation"></a>

要配置生命周期策略，请参阅 *Amazon Elastic Container Registry 用户指南*中的[创建生命周期策略预览](https://docs.aws.amazon.com//AmazonECR/latest/userguide/lpp_creation.html)。

## [ECR.4] 应标记 ECR 公有存储库
<a name="ecr-4"></a>

**类别：**识别 > 清单 > 标记

**严重性：**低

**资源类型：**`AWS::ECR::PublicRepository`

**AWS Config 规则:**`tagged-ecr-publicrepository`（自定义 Security Hub CSPM 规则）

**计划类型：**已触发变更

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 | StringList （最多 6 件商品）  | 1-6 个符合 [AWS 要求](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions)的标签键。 | 无默认值  | 

此控件可检查 Amazon ECR 公有存储库是否具有带特定键的标签，这些键在 `requiredTagKeys` 参数中进行定义。如果公有存储库没有任何标签键或者未在 `requiredTagKeys` 参数中指定所有键，则此控件将失败。如果未提供 `requiredTagKeys` 参数，则此控件仅检查是否存在标签键，如果公有存储库未使用任何键进行标记，则此控件将失败。自动应用并以 `aws:` 为开头的系统标签会被忽略。

标签是您分配给 AWS 资源的标签，它由密钥和可选值组成。您可以创建标签，以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时，可以将基于属性的访问权限控制（ABAC）作为授权策略实施，该策略根据标签来定义权限。您可以向 IAM 实体（用户或角色）和 AWS 资源附加标签。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息，请参阅 [ABAC 有什么用 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)？ 在 *IAM 用户指南*中。

**注意**  
请勿在标签中添加个人身份信息（PII）或者其他机密或敏感信息。许多人都可以访问标签 AWS 服务，包括 AWS Billing。有关更多标记最佳做法，请参阅中的为[AWS 资源添加标签](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)。*AWS 一般参考*

### 修复
<a name="ecr-4-remediation"></a>

要向 ECR 公有存储库添加标签，请参阅《Amazon Elastic Container Registry 用户指南》**中的[标记 Amazon ECR 公有存储库](https://docs.aws.amazon.com/AmazonECR/latest/public/ecr-public-using-tags.html)。

## [ECR.5] ECR 存储库应使用客户托管进行加密 AWS KMS keys
<a name="ecr-5"></a>

**相关要求：** NIST.800-53.r5 SC-12 (2)、 NIST.800-53.r5 CM-3(6), NIST.800-53.r5 SC-1 3、8、 NIST.800-53.r5 SC-2 8 (1)、(10)、(1)、nist. NIST.800-53.r5 SC-2 800-53.r5 SI-7 NIST.800-53.r5 SC-7 (6)、nist.800-53.r5 NIST.800-53.r5 CA-9 (6)、nist.800-53.r5 AU-9

**类别：**保护 > 数据保护 > 加密 data-at-rest

**严重性：**中

**资源类型：**`AWS::ECR::Repository`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/ecr-repository-cmk-encryption-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/ecr-repository-cmk-encryption-enabled.html)

**计划类型：**已触发变更

**参数：**


| 参数 | 说明 | Type | 允许的自定义值 | Security Hub CSPM 默认值 | 
| --- | --- | --- | --- | --- | 
|  `kmsKeyArns`  |  评估中 AWS KMS keys 要包含的 Amazon 资源名称 (ARNs) 列表。如果 ECR 存储库未使用列表中的 KMS 密钥进行加密，则该控件会生成 `FAILED` 调查发现。  |  StringList （最多 10 个项目）  |  1—10 个 ARNs 现有 KMS 密钥。例如：`arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`  |  无默认值  | 

此控件检查 Amazon ECR 存储库是否已使用客户管理型 AWS KMS key进行静态加密。如果未使用客户自主管理型 KMS 密钥对 ECR 存储库进行加密，则该控件会失败。您可以选择为控件指定要包含在评估中的 KMS 密钥列表。

默认情况下，Amazon ECR 使用 AES-256 算法通过 Amazon S3 托管密钥（SSE-S3）对存储库数据进行加密。为了获得更多控制，您可以将 Amazon ECR 配置为改用 AWS KMS key （SSE-KMS 或 DSSE-KMS）对数据进行加密。KMS 密钥可以是：Amazon ECR 为您创建和管理的别名为 `aws/ecr` 的 AWS 托管式密钥 ，或您在自己的 AWS 账户中创建和管理的客户自主管理型密钥。使用客户管理型 KMS 密钥，您可以完全控制密钥。这包括定义和维护密钥策略、管理授权、轮换加密材料、分配标签、创建别名以及启用和禁用密钥。

**注意**  
AWS KMS 支持跨账户访问 KMS 密钥。如果 ECR 存储库使用其他账户拥有的 KMS 密钥进行加密，则此控件在评估存储库时不会执行跨账户检查。该控件不会评测 Amazon ECR 在对存储库执行加密操作时是否可以访问和使用密钥。

### 修复
<a name="ecr-5-remediation"></a>

您无法更改现有 ECR 存储库的加密设置。但是，您可以为后续创建的 ECR 存储库指定不同的加密设置。Amazon ECR 支持对各个存储库使用不同的加密设置。

有关 ECR 存储库的加密选项的更多信息，请参阅《Amazon ECR 用户指南》**中的 [Encryption at rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html)。有关客户管理的更多信息 AWS KMS keys，请参阅*AWS Key Management Service 开发者指南[AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)*中的。