使用 ECR 复制在 ECR 存储库上配置静态 KMS 加密

简介

在这篇博客文章中,您将学习如何使用镜像复制功能在 亚马逊弹性容器注册表 (Amazon ECR) 上静态配置 亚马逊云科技 密 钥管理服务 (亚马逊云科技 KMS)。默认情况下, 存储库设置不会被复制 ,利用本文中包含的信息,我们将授权您的组织在使用您的团队熟悉的 亚马逊云科技 工具和服务时将安全放在首位。

在对合规性和监管问题敏感的环境中,客户通常希望尽可能启用加密。企业希望在传输和静态时保护其数据足迹,容器映像也不例外。

借助 亚马逊云科技 KMS 和 Amazon ECR 映像复制,我们可以 在 亚马逊云科技 区域 或 亚马逊云科技 账户之间传输映像,从而为您的业务提供高可用性,同时保护您在云中传输的数据。

架构

对于跨区域复制,以下是我们的解决方案示意图:

Architecture diagram for t and cross-Region Amazon ECR replication with AWS KMS key encryption from us-east-1 to us-west-2

下图显示了我们的跨区域和跨账户复制解决方案:

Architecture diagram for cross-account and cross-Region Amazon ECR replication with AWS KMS key encryption from us-east-1 to us-west-2 on two different AWS accounts

演练

Time to read 5 mins
Time to complete 10 mins
Cost to complete ~$5 per month (for two Regions)
亚马逊云科技 Calculator Estimate
Learning level Intermediate (200)
Services used Amazon Elastic Container Registry (ECR) and 亚马逊云科技 Key Management Service (KMS)

采用 亚马逊云科技 KMS 加密的亚马逊 ECR 跨区域复制

以下是在启用 亚马逊云科技 KMS 加密的两个不同区域的两个 Amazon ECR 存储库之间创建复制的示例。步骤的顺序至关重要。请不要乱序运行这些步骤。

在主区域创建 亚马逊云科技 KMS 密钥

  1. 在所需的主区域(例如,弗吉尼亚北部)打开 亚马逊云科技 KMS 控制台。
  2. 选择 “ 创建密钥 ” 。
  3. 选择 对称 密钥类型。
  4. 选择 “ 加密和解密密 钥用法”。
  5. 选择 “ 下一步 ” 。
  6. 输入您的 亚马逊云科技 KMS 密钥的 别名 (例如,“ECR KMS 密钥”)。
  7. 选择 “ 下一步 ” 。
  8. 定义密钥管理权限 字段中 选择 IAM 用户或角色。
  9. 选择 “ 下一步 ” 。
  10. 定义密钥使用权限 字段中,选择 IAM 用户和/或角色。
    1. 确保还选择了您的 IAM 用户或角色。这将是 Amazon ECR 加密和解密容器镜像所必需的。
  11. 选择 “ 下一步 ” 。
  12. 选择 “ 完成 ” 。

在主区域创建 Amazon ECR 存储库

  1. 在所需的主要区域(例如,弗吉尼亚北部)打开 Amazon ECR 控制台
  2. 选择 “ 开始 ” 。
  3. 选择 “隐 ” 作为可见性设置。
  4. 输入您的 存储库名称 (即 myrepo)。
  5. “ 加密设置” 部分中,执行以下操作:
    1. 启用加密
    2. 选择 “ 自定义加密设置(高级) ” 。
    3. 选择 我们在上述步骤中刚刚创建的 密钥
  6. 选择 “ 创建存储库 ” 。

此时,您已经创建了一个启用了 亚马逊云科技 KMS 加密的 Amazon ECR 存储库。在启用 Amazon ECR 复制之前,让我们在辅助区域创建 Amazon ECR 存储库。

在第二个区域创建 亚马逊云科技 KMS 存储库

  1. 在所需的辅助区域(例如俄勒冈州)中打开 亚马逊云科技 KMS 控制台。
  2. 选择 “ 创建密钥 ” 。
  3. 选择 对称 密钥类型。
  4. 选择 “ 加密和解密密 钥用法”。
  5. 选择 “ 下一步 ” 。
  6. 输入您的 亚马逊云科技 KMS 密钥的 别名 (即 “ECR KMS 密钥”)。
  7. 选择 “ 下一步 ” 。
  8. 定义密钥管理权限 字段中,选择 IAM 用户或角色。
  9. 选择 “ 下一步 ” 。
  10. 定义密钥使用权限 字段中,选择 IAM 用户或角色。
    1. 确保还选择了您的 IAM 用户或角色。这将是 Amazon ECR 加密和解密容器镜像所必需的。
  11. 选择 “ 下一步 ” 。
  12. 选择 “ 完成 ” 。

在主区域创建 Amazon ECR 存储库

  1. 在所需的辅助区域(例如,俄勒冈州)打开 Amazon ECR 控制台。
  2. 选择 “ 开始 ” 。
  3. 为可见性设置选择 “ 人”。
  4. 输入您的 存储库名称 (例如,myrepo)。
    1. 指定与主区域 相同的 存储库名称非常重要。如果主区域和副本区域之间的存储库名称不匹配,则复制将失败。
  5. “ 加密设置” 部分中,执行以下操作:
    1. 启用加密
    2. 选择 “ 自定义加密设置(高级) ” 。
    3. 选择 我们在前面的步骤中刚刚创建的 密钥
  6. 选择 “ 创建存储库 ” 。

如果您想将 Amazon ECR 存储库复制到其他区域,请在所需区域重复辅助区域的步骤。

最后,让我们启用 Amazon ECR 复制配置。

启用亚马逊 ECR 复制

  1. 在主要区域(例如,弗吉尼亚北部)打开 Amazon ECR 控制台。
  2. 在导航窗格中,选择 私有注册表 ,然后选择 复制配置并按编辑
  3. 选择 “ 添加规则 ” 。
  4. 为区域间的复制选择跨区域复制。
  5. 选择 “ 下一步 ” 。
  6. 选择您在辅助 Amazon ECR 存储库(例如俄勒冈州)中创建的 目标区域
  7. 选择 “ 下一步 ” 。
  8. 存储库筛选器中, 执行以下操作:
    1. 输入 存储库名称 (例如,myrepo)。它需要与您创建的存储库名称完全匹配。
    2. 选择 “ 添加 ” 。
    3. 选择 “ 下一步 ” 。
  9. 选择 “ 提交规则 ” 。

(可选)采用 亚马逊云科技 KMS 加密的 Amazon ECR 跨账户复制

(可选)如果您想启用跨账户复制,请按照上述所有步骤将辅助/目标区域复制到另一个 亚马逊云科技 账户,我们需要利用 Amazon ECR 复制来创建跨区域复制。此外,您需要在目标账户上创建 Amazon ECR 复制规则和权限。

(可选)启用跨账户复制规则

  1. 在主要区域(例如,弗吉尼亚北部)打开 Amazon ECR 控制台。
  2. 在导航窗格中,选择 私有注册表 ,然后选择 复制
  3. 选择 “ 添加规则 ” 。
  4. 账户间 的复制选择跨账户 复制。
  5. 选择 “ 下一步 ” 。
  6. 选择您创建辅助 Amazon ECR 存储库的目标账户。
  7. 选择您希 望 Amazon ECR 复制到辅助 亚马逊云科技 账户的 目标区域
  8. 选择 “ 下一步 ” 。
  9. 存储库筛选器 中 ,执行以下操作:
    1. 输入 存储库名称 (例如,myrepo)。它需要与您创建的存储库名称完全匹配。
    2. 选择 “ 添加 ” 。
    3. 选择 “ 下一步 ” 。
  10. 选择 “ 提交规则 ” 。

(可选)启用跨账户复制权限

  1. 使用其他 亚马逊云科技 账户在次要区域(例如俄勒冈州)打开 Amazon ECR 控制台。
  2. 在导航窗格中,选择 “ 私有注册表 ” ,然后选择 “ 权限 ” 。
  3. 在 “ 策略” 类型 中选择 “ 跨账户复制 策略”。
  4. 输入 账单 ID (例如,“跨账户复制策略”)。
  5. 账户 部分,输入主 Amazon ECR 存储库所在的 A WS 账号
  6. 选择 “ 保存对账单 ” 。
  7. 控制台将自动生成与以下内容类似的 JSON IAM 策略:
    1. 
      {“Sid”:“ecrReplicationPermission”,“效果”:“允许”,“委托人”:{“AWS”:“arn: aws: iam:: 9999999999: root”},“操作”:[“ecr: createPoritory”,“ecr: ReplicateImage”],“资源”:“arn: aw: iam: ecr: us-east-1:12345678901: 存储库/*”} 
       
      

最后,您应该能够将映像推送到您的主账户 Amazon ECR 存储库,该映像将自动复制到您的辅助亚马逊 ECR 账户。

云端信息自动化

同样的解决方案可以通过部署 CloudFormation 基础设施即代码 (IaC) 模板来实现。这些带有说明的模板可以在我们的 GitHub 存储库 中找到

该存储库包含两个解决方案:

  • 跨区域复制(同一个账户)
  • 跨区域和跨账户复制

结论

总之,我们已经描述了如何使用 亚马逊云科技 KMS 密钥为存储在 Amazon ECR 中的容器映像启用传输过程中的加密,以便在区域或账户之间传输图像。

我们已经审查了所涉及的组件以及它们如何协同工作以实现容器镜像的安全传输。此外,我们还成功实现了所述功能的自动化,使您能够在自己的区域和账户中快速启用服务。

如果您对这篇文章有反馈,请在下面的评论部分提交。如果你对这篇文章有疑问,请在 Contain ers | 亚马逊云科技 re: Pos t 论坛上开始一个新话题。

Samuel Baruffi

塞缪尔·巴鲁菲

塞缪尔·巴鲁菲是一位经验丰富的技术专业人士,在信息技术行业拥有超过15年的经验。目前,他在亚马逊网络服务 (亚马逊云科技) 担任高级解决方案架构师,为全球金融服务组织提供宝贵的支持。他在基于云的解决方案方面的丰富专业知识得到了众多行业认证的验证。除了云架构,Samuel 还喜欢足球、网球和旅行。

Joe Dunn

Joe Dunn

Joe 是金融服务领域的 亚马逊云科技 首席解决方案架构师,在基础设施架构和将关键业务负载迁移到 亚马逊云科技 方面拥有 20 多年的经验。他使用 亚马逊云科技 产品和服务提供解决方案,帮助金融服务客户在 亚马逊云科技 云上进行创新。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。