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键)。它将存储到您的Amazon Web Services 账户中。 CodeCommit 使用这个Amazon 托管式密钥加密和解密此和所有其他中的数据 CodeCommit 您的Amazon Web Services 科技账户中该区域内的存储库。

重要

CodeCommit 执行以下操作:Amazon KMS针对默认值的操作aws/codecommit键。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。搜索 Tive CodeCommit 存储库 ID 位于Amazon CloudTrail日志来了解对中的哪个密钥执行了加密操作Amazon KMS在中加密或解密数据 CodeCommit 存储库。

有关 Amazon KMS 的更多信息,请参阅《Amazon Key Management Service 开发人员指南》https://docs.amazonaws.cn/kms/latest/developerguide/