AWS Key Management Service e criptografia para repositórios do AWS CodeCommit - AWS CodeCommit

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS Key Management Service e criptografia para repositórios do AWS CodeCommit

Os dados nos repositórios do CodeCommit estão criptografados em trânsito e em repouso. Quando dados são enviados via push para um repositório do CodeCommit (por exemplo, chamando git push), o CodeCommit criptografa os dados recebidos à medida que são armazenados no repositório. Quando dados são extraídos de um repositório do CodeCommit (por exemplo, chamando git pull), o CodeCommit descriptografa os dados e os envia para o chamador. Isso pressupõe que o usuário do IAM associado à solicitação de push ou pull já tenha sido autenticado pela AWS. Os dados enviados ou recebidos são transferidos usando protocolos de rede criptografada HTTPS ou SSH.

Você pode usar uma Chave gerenciada pela AWS ou uma chave gerenciada pelo cliente para criptografar e descriptografar os dados no repositório. Consulte mais informações sobre as diferenças entre chaves gerenciadas pelo cliente e Chaves gerenciadas pela AWS em Customer managed keys and Chaves gerenciadas pela AWS. Se você não especificar uma chave gerenciada pelo cliente, o CodeCommit usará uma Chave gerenciada pela AWS para criptografar e descriptografar os dados no repositório. Essa Chave gerenciada pela AWS é criada automaticamente para você em sua Conta da AWS. Na primeira vez que você cria um repositório do CodeCommit em uma nova Região da AWS na sua conta da Amazon Web Services, se você não especificar uma chave gerenciada pelo cliente, o CodeCommit criará uma Chave gerenciada pela AWS (a chave aws/codecommit) na mesma Região da AWS no AWS Key Management Service (AWS KMS). Essa chave aws/codecommit é usada somente pelo CodeCommit. Ela é armazenada na sua conta da Amazon Web Services. Dependendo do que você especificar, o CodeCommit usará a chave gerenciada pelo cliente ou a Chave gerenciada pela AWS para criptografar e descriptografar os dados no repositório.

Importante

O CodeCommit executa as seguintes ações do AWS KMS em relação à chave do AWS KMS usada para criptografar e descriptografar dados em um repositório. Se você estiver usando uma Chave gerenciada pela AWS, o usuário não precisará de permissões explícitas para essas ações, mas não deverá ter políticas associadas que neguem essas ações para a chave aws/codecommit. Se você estiver usando uma chave gerenciada pelo cliente que tenha um ID Conta da AWS definido como entidade principal da política para essa chave, essas permissões deverão ser definidas explicitamente como allow. Especificamente, ao criar seu primeiro repositório e atualizar as chaves dele, você não deverá ter nenhuma das seguintes permissões definidas como deny se estiver usando uma Chave gerenciada pela AWS. Elas deverão ser definidas como allow se você estiver usando uma chave gerenciada pelo cliente com uma entidade principal da política:

  • "kms:Encrypt"

  • "kms:Decrypt"

  • "kms:ReEncrypt" (dependendo do contexto, pode exigir kms:ReEncryptFrom,

    kms:ReEncryptTo ou kms:ReEncrypt* não configurado para negar)

  • "kms:GenerateDataKey"

  • "kms:GenerateDataKeyWithoutPlaintext"

  • "kms:DescribeKey"

Se você quiser usar sua própria chave gerenciada pelo cliente, a chave deve estar disponível na Região da AWS onde o repositório existe. O CodeCommit permite o uso de chaves gerenciadas pelo cliente de uma e várias regiões. Embora todos os tipos de origem de material de chaves sejam compatíveis, recomendamos usar a opção padrão KMS. Se os clientes usarem a opção Repositório de chaves externo poderá haver atrasos por parte do fornecedor da loja. Além disso, o CodeCommit tem os seguintes requisitos para chaves gerenciadas pelo cliente:

  • O CodeCommit só é compatível com o uso de chaves simétricas.

  • O tipo de uso da chave deve ser definido como Criptografar e descriptografar.

Consulte mais informações sobre como criar chaves gerenciadas pelo cliente em Concepts e Creating keys.

Para ver informações sobre a Chave gerenciada pela AWS gerada pelo CodeCommit, faça o seguinte:

  1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service (AWS KMS) em https://console.aws.amazon.com/kms.

  2. Para alterar a Região da AWS, use o seletor de regiões no canto superior direito da página.

  3. No painel de navegação de serviço, selecione Chaves gerenciadas pela AWS. Verifique se você está conectado à Região da AWS onde pretende revisar as chaves.

  4. Na lista chaves de criptografia, escolha a Chave gerenciada pela AWS com o alias aws/codecommit. As informações básicas sobre Chave pertencente à AWS serão exibidas.

Você não pode alterar ou excluir essa Chave gerenciada pela AWS.

Como os algoritmos de criptografia são usados para criptografar dados do repositório

O CodeCommit usa duas abordagens diferentes para criptografar dados. Objetos Git individuais com menos de 6 MB são criptografados usando AES-GCM-256, que fornece validação de integridade de dados. Objetos entre 6 MB e até 2 GB para um único blob são criptografados usando AES-CBC-256. O CodeCommit sempre valida o contexto de criptografia.

Contexto de criptografia

Cada serviço integrado ao AWS KMS especifica um contexto de criptografia para operações de criptografia e de descriptografia. O contexto de criptografia significa informações adicionais autenticadas que o AWS KMS usa para verificar a integridade dos dados. Quando especificado para a operação de criptografia, ele também deve ser especificado na operação de descriptografia. Caso contrário, ocorrerá uma falha na descriptografia. O CodeCommit usa a ID do repositório do CodeCommit para o contexto de criptografia. É possível usar o comando get-repository ou o console do CodeCommit para encontrar a ID do repositório. Pesquise a ID do CodeCommit nos logs do AWS CloudTrail para entender quais operações de criptografia foram executadas em cada chave no AWS KMS para criptografar ou descriptografar dados no repositório do CodeCommit.

Consulte mais informações sobre o AWS KMS no Guia do desenvolvedor do AWS Key Management Service.