Amazon Key Management Service和加密Amazon CodeCommit存储库 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon Key Management Service和加密Amazon CodeCommit存储库

CodeCommit 存储库中的数据在传输和存储状态下是加密的。当数据被推送到CodeCommit存储库(例如,通过调用git push),CodeCommit当收到的数据存储到存储库中时对其进行加密。当数据从CodeCommit存储库(例如,通过调用git pull),CodeCommit解密数据,然后将其发送给调用方。这假定与推送或提取请求关联的 IAM 用户已经过的身份验证Amazon. 发送或接收的数据使用 HTTPS 或 SSH 加密网络协议进行传输。

你第一次创建CodeCommit存储库在一个新的Amazon Web Services 区域在您的 Amazon Web Services 账户中,CodeCommit创建Amazon 拥有的密钥(aws/codecommitkey) 在同样Amazon Web Services 区域在Amazon Key Management Service(Amazon KMS)。此密钥仅由 CodeCommit 使用(aws/codecommit密钥)。它存储在您的亚马逊云科技账户中。CodeCommit使用这个Amazon 拥有的密钥加密和解密这个和所有其他内容中的数据CodeCommit您的亚马逊云科技账户中该区域内的存储库。

重要

CodeCommit 对默认 aws/codecommit 密钥执行以下 Amazon KMS 操作。IAM 用户无需获得下述操作的显式权限,但也不得向该用户附加拒绝对aws/codecommit键。具体来说,当您创建第一个存储库时,您的 IAM 用户不得将以下任一权限设置为deny

  • "kms:Encrypt"

  • "kms:Decrypt"

  • "kms:ReEncrypt"(取决于上下文,这可能需要kms:ReEncryptFrom

    kms:ReEncryptTo,或者kms:ReEncrypt*未设置为拒绝)

  • "kms:GenerateDataKey"

  • "kms:GenerateDataKeyWithoutPlaintext"

  • "kms:DescribeKey"

要查看有关Amazon 拥有的密钥生成CodeCommit中,执行以下操作:

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

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

  3. 在服务导航窗格中,选择Amazon 拥有的密钥. 请确保您已登录到Amazon Web Services 区域要在其中查看密钥。

  4. 在加密密钥列表中,选择Amazon 拥有的密钥用别名aws/codecommit. 有关的基本信息Amazon 拥有的密钥将显示。

您无法更改或删除该内容Amazon 拥有的密钥. 您无法在中使用客户托管密钥Amazon KMS在中加密或解密数据CodeCommit存储库。

如何使用加密算法加密存储库数据

CodeCommit 使用两种不同的方法来加密数据。6 MB 以下的单个 Git 对象使用 AES-GCM-256 进行加密,该方法提供数据完整性验证。对于单个 Blob 而言,介于 6 MB 到最大 2 GB 之间的对象将使用 AES-CBC-256 加密进行加密。CodeCommit始终验证加密上下文。

加密上下文

与 Amazon KMS 集成的每项服务都会为加密和解密操作指定加密上下文。加密上下文是 Amazon KMS 检查数据完整性时使用的额外的身份验证信息。如果为加密操作指定了加密上下文,则也必须在解密操作中指定它。否则,解密将失败。CodeCommit使用CodeCommit加密上下文的存储库 ID。您可以使用 get-repository 命令或 CodeCommit 控制台来查找存储库 ID。搜索CodeCommit中的存储库 IDAmazon CloudTrail日志,以了解对中的哪个密钥执行了加密操作Amazon KMS加密或解密中的数据CodeCommit存储库。

有关 Amazon KMS 的更多信息,请参阅《Amazon Key Management Service 开发人员指南》。