AWS Key Management Service - AWS Key Management Service

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

Aprenda os termos e conceitos básicos do AWS Key Management Service (AWS KMS) e como eles trabalham juntos para ajudar a proteger seus dados.

Chaves mestras personalizadas (CMKs)

As chaves mestras de cliente são os principais recursos no AWS KMS.

Uma chave mestra de cliente (CMK) é uma representação lógica de uma chave mestra. A CMK inclui metadados, como o ID da chave, a data de criação, a descrição e o estado da chave. A CMK também contém o material de chaves usado para criptografar e descriptografar dados.

O AWS KMS oferece suporte a CMKs simétricas e assimétricas. Uma CMK simétrica representa uma chave de 256 bits que é usada para criptografia e descriptografia. Uma CMK assimétrica representa um par de chaves RSA que é usado para criptografia e descriptografia ou para assinatura e verificação (mas não ambos) ou um par de chaves de curva elíptica (ECC) que é usado para assinatura e verificação. Para obter informações detalhadas sobre CMKs simétricas e assimétricas, consulte Usar chaves simétricas e assimétricas.

Os CMKs são criados no AWS KMS. As CMKs simétricas e as chaves privadas de CMKs assimétricas nunca deixam o AWS KMS descriptografadas. Para gerenciar sua CMK, você pode usar o AWS Management Console ou oAPI DO AWS KMS. Para usar uma CMK emoperações de criptografiaO é necessário usar a API do AWS KMS. Esta estratégia difere daChaves de dados. O AWS KMS não armazena, gerencia ou acompanha as chaves de dados. Você deve usá-las fora do AWS KMS.

Por padrão, o AWS KMS cria o material de chaves para uma CMK. Você não pode extrair, exportar, visualizar ou gerenciar esse material de chaves. Além disso, não é possível excluir esse material de chaves; você deve excluir a CMK. No entanto, você podeImportar seu próprio material de chavesEm uma CMK ou crie o material de chave para uma CMK no cluster do AWS CloudHSM associado a umaArmazenar de chaves personalizado do AWS KMS.

Para obter informações sobre como criar e gerenciar CMKs, consulte Conceitos básicos. Para obter informações sobre como usar CMKs, consulte oAWS Key Management Service.

O AWS KMS oferece suporte a três tipos de CMKs: CMKs gerenciadas pelo cliente, CMKs gerenciadas pela AWS e CMKs de propriedade da AWS.

Tipo de CMK Pode visualizar os metadados da CMK Pode gerenciar a CMK Usado apenas para a minha conta da AWS Rotação automática
CMK gerenciada pelo cliente Sim Sim Sim Optional. A cada 365 dias (1 ano).
CMK gerenciada pela AWS Sim Não Sim Obrigatório. A cada 1.095 dias (3 anos).
CMK de propriedade da AWS Não Não Não Varia

Para distinguir as CMKs gerenciadas pelo cliente das CMKs gerenciadas pela AWS, use aKeyManagerfield noDescribeKeyresposta à operação. Para CMKs gerenciadas pelo cliente, o valor de KeyManager é Customer. Para CMKs gerenciadas pela AWS, oKeyManagervalue éAWS.

AWS KMSDiferem no que se refere ao suporte às CMKs. Alguns serviços da AWS criptografam os dados, por padrão, com uma CMK de propriedade da AWS ou com uma CMK gerenciada pela AWS. Outros serviços da AWS oferecem criptografia de dados sob uma CMK gerenciada pelo cliente de sua escolha. E outros serviços da AWS oferecem suporte a todos os tipos de CMKs para permitir a facilidade de uma CMK de propriedade da AWS, a visibilidade de uma CMK gerenciada pela AWS ou o controle de uma CMK gerenciada pelo cliente. Para obter informações detalhadas sobre as opções de criptografia oferecidas por um serviço da AWS, consulte aCriptografia em repousoNo guia do usuário ou no guia do desenvolvedor do serviço.

CMKs gerenciadas pelo cliente

CMKs gerenciadas pelo clienteAs CMKs na sua conta da AWS e você as cria, as detém e as gerencia. Você tem controle total sobre esses CMKs, incluindo o estabelecimento e manutenção de seusprincipais políticas, políticas do IAM e subvenções,Habilitar e desabilitarDeles,girando seu material criptográfico,Adicionar tags,Criar aliasesque se referem ao CMK, eagendando os CMKs para exclusão.

As CMKs gerenciadas pelo cliente são exibidas noChaves gerenciadas peloO Console de Gerenciamento da AWS para o AWS KMS. Para identificar definitivamente uma CMK gerenciada pelo cliente, use a operação DescribeKey. Para CMKs gerenciadas pelo cliente, o valor do campo KeyManager da resposta DescribeKey é CUSTOMER.

Você pode usar suas CMKs gerenciadas pelo cliente em operações de criptografia e auditar o uso em logs do AWS CloudTrail. Além disso, muitosAWS KMSO permite que você especifique uma CMK gerenciada pelo cliente para proteger os dados armazenados e gerenciados.

CMKs gerenciadas pelo cliente geram uma taxa mensal e uma taxa para uso que excede o nível gratuito. Eles são contados em relação ao AWS KMSCotas dopara sua conta da. Para obter mais detalhes, consulteAWS Key Management ServiceeQuotas.

CMKs gerenciadas pela AWS

CMKs gerenciadas pela AWSAs CMKs em sua conta que são criadas, gerenciadas e usadas em seu nome por umaServiço da AWS integrado ao AWS KMS. Alguns serviços da AWS são compatíveis apenas com uma CMK gerenciada pela AWS. Outros usam uma CMK de propriedade da AWS ou oferecem uma escolha de CMKs.

Você podeExibir CMKs gerenciadas pela AWSem sua conta,ver suas principais políticas, eauditar seu usoem logs do AWS CloudTrail. No entanto, não é possível gerenciar essas CMKs, alterná-las ou alterar suas políticas de chaves. Além disso, você não pode usar CMKs gerenciadas pela AWS em operações criptográficas de forma direta; elas são usadas em seu nome pelo serviço que as cria.

CMKs gerenciadas pela AWS são exibidas naChaves gerenciadas AWSO Console de Gerenciamento da AWS para o AWS KMS. Também é possível identificar CMKs gerenciadas pela AWS por seus aliases, os quais têm o formatoaws/service-name, por exemplo,aws/redshift. Para identificar definitivamente uma CMK gerenciada pela AWS, use oDescribeKeyoperação. Para CMKs gerenciadas pela AWS, o valor daKeyManagerfield doDescribeKeyA resposta éAWS.

Você não paga uma taxa mensal por CMKs gerenciadas pela AWS. Eles podem estar sujeitos a taxas de uso que excede o nível gratuito, mas alguns serviços da AWS abrangem esses custos para você. Para obter detalhes, consulteCriptografia em repousoNo guia do usuário ou no guia do desenvolvedor do serviço. As CMKs gerenciadas pela AWS não são contabilizadas em relação às cotas de recurso para o número de CMKs em cada região da sua conta. No entanto, quando elas são usadas em nome de um principal em sua conta, essas CMKs são contabilizadas em relação às cotas de solicitações. Para obter mais detalhes, consulteAWS Key Management ServiceeQuotas.

CMKs de propriedade da AWS

CMKs de propriedade da AWSsão uma coleção de CMKs que um serviço da AWS possui e gerencia para uso em várias contas da AWS. Embora as CMKs de propriedade da AWS não estejam em sua conta da AWS, um serviço da AWS pode usar as CMKs de propriedade da AWS para proteger os recursos em sua conta.

Não é necessário criar ou gerenciar CMKs de propriedade da AWS. No entanto, não é possível exibi-las, usá-las, rastreá-las ou auditá-las. Não é cobrada taxa mensal nem taxa de uso pelo uso de CMKs de propriedade da AWS e elas não são contabilizadas com base nosCotas do AWS KMSpara sua conta da.

Orotação de chavesPara uma CMK de propriedade da AWS é determinada pelo serviço da AWS que cria e gerencia a CMK. Para obter informações sobre os tipos de CMKs compatíveis com um serviço da AWS, incluindo CMKs de propriedade da AWS, consulte aCriptografia em repousoNo guia do usuário ou no guia do desenvolvedor do serviço.

Chaves de dados

As chaves de dados são as chaves de criptografia que você pode usar para criptografar dados, incluindo grandes quantidades de dados e outras chaves de criptografia de dados.

Você pode usar o AWS KMSchaves mestras do cliente(CMKs) para gerar, criptografar e descriptografar chaves de dados. No entanto, o AWS KMS não armazena, gerencia ou monitora as chaves de dados nem executa operações de criptografia com chaves de dados. Use e gerencie as chaves de dados fora do AWS KMS.

Criação de uma chave de dados

Para criar uma chave de dados, chame oGenerateDataKeyoperação. O AWS KMS usa a CMK que você especifica para gerar uma chave de dados. A operação retorna uma cópia de texto simples da chave de dados e uma cópia da chave de dados criptografada de acordo com a CMK. A imagem a seguir mostra essa operação.


          Gerar uma chave de dados

O AWS KMS também oferece suporte aoGenerateDataKeyWithoutPlaintextO retorna apenas uma chave de dados criptografada. Quando precisar usar a chave de dados, peça ao AWS KMS paradescriptografarele.

Criptografia de dados com uma chave de dados

O AWS KMS não pode usar uma chave de dados para criptografar dados. No entanto, é possível usar a chave de dados fora do KMS, como ao usar OpenSSL ou uma biblioteca de criptografia, como oAWS Encryption SDK.

Depois de usar a chave de dados de texto simples para criptografar dados e remova-a da memória assim que possível. Você pode armazenar seguramente as chaves de dados criptografadas com os dados criptografados para que estejam disponíveis para descriptografar os dados.


          Criptografia de dados do usuário fora do AWS KMS

Descriptografia de dados com uma chave de dados

Para descriptografar dados, passe a chave de dados criptografada para aDecryptoperação. O AWS KMS usa sua CMK para descriptografar a chave de dados e, em seguida, retorna a chave de dados de texto não criptografado. Use a chave de dados de texto simples para descriptografar seus dados e remove-a da memória assim que possível.

O diagrama a seguir mostra como usar a operação Decrypt para descriptografar uma chave de dados criptografada.


          Descriptografia de uma chave de dados

Pares de chaves de dados

Os pares de chaves de dados são chaves de dados assimétricas que consistem em uma chave pública e uma chave privada relacionadas matematicamente. Eles são projetados para serem usados para criptografia e descriptografia no lado do cliente ou para assinatura e verificação fora do AWS KMS.

Ao contrário dos pares de chaves de dados gerados por ferramentas como OpenSSL, o AWS KMS protege a chave privada em cada key pair de dados sob uma CMK simétrica no AWS KMS especificada por você. No entanto, o AWS KMS não armazena, gerencia nem rastreia os pares de chaves de dados nem executa operações de criptografia com pares de chaves de dados. Use e gerencie pares de chaves fora do AWS KMS.

O AWS KMS oferece suporte aos seguintes tipos de pares de chaves de dados:

  • Pares de chaves RSA: RSA_2048, RSA_3072 e RSA_4096

  • Pares de chaves de curva elíptica: ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521 e ECC_SECG_P256K1

O tipo de par de chaves de dados selecionado geralmente depende do caso de uso ou dos requisitos regulatórios. A maioria dos certificados exige chaves RSA. As chaves de curva elíptica geralmente são usadas para assinaturas digitais. As chaves ECC_SECG_P256K1 são comumente usadas para criptografia.

Criar um par de chaves de dados

Para criar um par de chaves de dados, chame as operações To create a data key pair, call the GenerateDataKeyPair ou GenerateDataKeyPairWithoutPlaintext. Especifique a CMK simétrica que deseja usar para criptografar a chave privada.

GenerateDataKeyPair retorna uma chave pública de texto não criptografado, uma chave privada de texto não criptografado e uma chave privada criptografada. use essa operação quando precisar imediatamente de uma chave privada de texto não criptografado, como para gerar uma assinatura digital.

GenerateDataKeyPairWithoutPlaintext retorna uma chave pública de texto não criptografado e uma chave privada criptografada, mas não uma chave privada de texto não criptografado. Use essa operação quando não precisar imediatamente de uma chave privada de texto não criptografado, como quando você está criptografando uma chave pública. Posteriormente, quando precisar de uma chave privada de texto não criptografado para descriptografar os dados, poderá chamar a operação Decrypt.

A imagem a seguir mostra a operação GenerateDataKeyPair. A operação GenerateDataKeyWithoutPlaintext omite a chave privada de texto não criptografado.


          Gerar um par de chaves de dados

Criptografar dados com um par de chaves de dados

Ao criptografar com um par de chaves de dados, você usa a chave pública do par para criptografar os dados e a chave privada do mesmo par para descriptografar os dados. Normalmente, os pares de chaves de dados são usados quando muitas partes precisam criptografar dados que só a parte que tem a chave privada pode descriptografar.

As partes com a chave pública usam essa chave para criptografar dados, conforme mostrado no diagrama a seguir.


          Criptografar dados do usuário com a chave pública de um key pair de dados fora do AWS KMS

Descriptografar dados com um par de chaves de dados

Para descriptografar seus dados, use a chave privada no par de chaves de dados. Para que a operação seja bem-sucedida, as chaves pública e privada devem ser do mesmo par de chaves de dados e você deve usar o mesmo algoritmo de criptografia.

Para descriptografar a chave privada criptografada, transmita-a para a operação Decrypt. Use a chave privada de texto não criptografado para descriptografar os dados. Depois, remova a chave privada de texto não criptografado da memória assim que possível.

O diagrama a seguir mostra como usar a chave privada em um par de chaves de dados para descriptografar texto cifrado.


          Descriptografar os dados com a chave privada em um key pair de dados fora do AWS KMS.

Assinar mensagens com um par de chaves de dados

Para gerar uma assinatura criptográfica para uma mensagem, use a chave privada no par de chaves de dados. Qualquer pessoa com a chave pública pode usá-la para verificar se a mensagem foi assinada com a chave privada e se ela não foi alterada desde que foi assinada.

Se a chave privada estiver criptografada, transmita-a para a chave privada criptografada.Decryptoperação. O AWS KMS usa sua CMK para descriptografar a chave de dados e, em seguida, retorna a chave privada de texto não criptografado. Use a chave privada de texto não criptografado para gerar a assinatura. Depois, remova a chave privada de texto não criptografado da memória assim que possível.

Para assinar uma mensagem, crie um resumo de mensagens usando uma função de hash criptográfica, como o comando dgst no OpenSSL. Depois, transmita a chave privada de texto não criptografado ao algoritmo de assinatura. O resultado é uma assinatura que representa os conteúdos da mensagem. (Talvez seja possível assinar mensagens mais curtas sem antes criar um resumo. O tamanho máximo da mensagem varia de acordo com a ferramenta de assinatura usada.)

O diagrama a seguir mostra como usar a chave privada em um par de chaves para assinar a mensagem.


          Gere uma assinatura criptográfica com a chave privada em um key pair de dados fora do AWS KMS.

Verificar uma assinatura com um par de chaves de dados

Qualquer pessoa que tenha a chave pública no par de chaves de dados pode usá-la para verificar a assinatura gerada com sua chave privada. A verificação confirma que um usuário autorizado assinou a mensagem com a chave privada e o algoritmo de assinatura especificados, e que a mensagem não foi alterada desde que foi assinada.

Para ser bem-sucedida, a parte que está verificando a assinatura deve gerar o mesmo tipo de resumo, usar o mesmo algoritmo e usar a chave pública que corresponde à chave privada usada para assinar a mensagem.

O diagrama a seguir mostra como usar a chave pública em um par de chaves para verificar a assinatura de uma mensagem.


          Verifique uma assinatura criptográfica com a chave pública em um key pair de dados fora do AWS KMS.

Aliases

Um alias é um nome amigável para uma CMK. Por exemplo, é possível se referir a uma CMK comotest-keyEm vez de 1234abcd-12ab-34cd-56ef-1234567890ab.

Os aliases facilitam a identificação de uma CMK no AWS Management Console do. Você pode usar um alias para identificar uma CMK em algumas operações do AWS KMS, incluindooperações de criptografia. Em aplicações, é possível usar um único alias para se referir a diferentes CMKs em cada região da AWS.

Você também pode permitir e negar acesso aos CMKs com base em seus aliases sem precisar editar políticas ou gerenciar concessões. Esse recurso faz parte do suporte do AWS KMS para o controle de acesso baseado em atributos (ABAC). Para obter mais detalhes, consulte Uso do ABAC para AWS KMS.

No AWS KMS, aliases são recursos independentes, não propriedades de uma CMK. Dessa forma, você pode adicionar, alterar e excluir um alias sem afetar o CMK associado.

Saiba mais:

Armazenamentos de chaves personalizados

AArmazenamento de chaves personalizado doO é um recurso do AWS KMS associado a módulos de segurança de hardware (HSMs) de nível 3 do FIPS 140-2 em um cluster do AWS CloudHSM que você possui e gerencia.

Quando você cria uma chave mestre do cliente (CMK) do AWS KMS no seu armazenamento de chaves personalizado, o AWS KMS gera uma chave simétrica Advanced Encryption Standard (AES) de 256 bits, persistente e não exportável no cluster do AWS CloudHSM associado. Esse material de chaves nunca deixa seus HSMs sem estarem criptografados. Ao usar uma CMK em um armazenamento de chaves personalizado, as operações criptográficas são realizadas nos HSMs do cluster.

Para obter mais informações, consulte Usar um armazenamento de chaves personalizado.

Operações criptográficas

No AWS KMS,operações de criptografiaSão operações de API que usam CMKs para proteger dados. Como as CMKs permanecem dentro do AWS KMS, você deve chamar o AWS KMS para usar uma CMK em uma operação criptográfica.

Para executar operações de criptografia com CMKs, use os AWS SDKs, a interface de linha de comando da AWS (AWS CLI) ou as ferramentas da AWS para PowerShell. Não é possível executar operações criptográficas no console do AWS KMS. Para obter exemplos de chamadas de operações criptográficas em várias linguagens de programação, consulte Programando a API do AWS KMS.

A tabela a seguir lista as operações criptográficas do AWS KMS. Ela também mostra o requisitos de tipo de chave e de uso da chave para CMKs usadas na operação.

Operação Tipo de chave da CMK Uso da chave da CMK
Decrypt Quaisquer ENCRYPT_DECRYPT
Encrypt Quaisquer ENCRYPT_DECRYPT
GenerateDataKey Simétrica ENCRYPT_DECRYPT
GenerateDataKeyPair Simétrica [1] ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Simétrica [1] ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Simétrica ENCRYPT_DECRYPT
GenerateRandom N/D. Essa operação não usa uma CMK. N/D
ReEncrypt Quaisquer ENCRYPT_DECRYPT
Sign Assimétrica SIGN_VERIFY
Verificar Assimétrica SIGN_VERIFY

[1]GenerateDataKeyPaireGenerateDataKeyPairWithoutPlaintextGere um key pair de dados assimétricas que é protegido por uma CMK simétrica.

Para obter informações sobre as permissões para operações criptográficas, consulte a Permissões do AWS KMS.

Para tornar o AWS KMS responsivo e eficaz para todos os usuários, o AWS KMS estabelece cotas para o número de operações criptográficas que podem ser chamadas em cada segundo. Para obter mais detalhes, consulte Cotas compartilhadas para operações criptográficas.

Identificadores de chave (KeyId)

Os identificadores de chaves atuam como nomes para as chaves mestras do cliente (CMKs) do AWS KMS. Eles ajudam você a reconhecer suas CMKs no console. Você poderá usá-los para indicar quais CMKs deseja usar em operações de API do AWS KMS, políticas do IAM e concessões.

O AWS KMS define vários identificadores de chave. Quando você cria uma CMK, o AWS KMS gera um ARN e um ID de chave, que são propriedades da CMK. Quando você cria um alias, o AWS KMS gera um ARN de alias com base no nome do alias definido. Você pode visualizar os identificadores de chave e alias no AWS Management Console do e na API do AWS KMS.

No console do AWS KMS, é possívelExibir e filtrarCMKs pelo ARN de chave, ID de chave ou nome de alias e classificar por ID de chave e nome de alias. Para obter mais detalhes, consulte Encontrar o ID de chave e o ARN e Encontrar o nome e o ARN do alias.

Na API do AWS KMS, os parâmetros usados para identificar uma CMK são nomeados comoKeyIdou uma variação, comoTargetKeyIdouDestinationKeyId. No entanto, os valores desses parâmetros não estão limitados a IDs de chave. Alguns podem usar qualquer identificador de chave válido. Para obter informações sobre os valores de cada parâmetro, consulte a descrição do parâmetro na seçãoAWS Key Management Service.

nota

Ao usar a API do AWS KMS, preste atenção ao identificador de chave usado. APIs diferentes requerem identificadores de chave diferentes. Em geral, use o identificador de chave mais completo que seja prático para sua tarefa.

O AWS KMS oferece suporte aos seguintes identificadores de chave.

ARN de chave

O ARN de chave é o nome de recurso da Amazon (ARN) de uma CMK. É um identificador exclusivo e totalmente qualificado para a CMK. Um ARN de chave inclui a conta da AWS, a região e a ID de chave. Para obter ajuda para encontrar o ARN de chave de uma CMK, consulte Encontrar o ID de chave e o ARN.

O formato de um ARN de chave é o seguinte:

arn:<partition>:kms:<region>:<account-id>:key/<key-id>

Veja a seguir um exemplo de ARN de chave.

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
ID da chave

O ID de chave identifica exclusivamente uma CMK dentro de uma conta e uma região. Para obter ajuda para encontrar o ID de chave de uma CMK, consulte Encontrar o ID de chave e o ARN.

Veja a seguir um exemplo de ID de chave.

1234abcd-12ab-34cd-56ef-1234567890ab
ARN do alias

O ARN do alias é o nome de recurso da Amazon (ARN) de um alias do AWS KMS. É um identificador exclusivo e totalmente qualificado para o alias e para a CMK que ele representa. Um ARN de alias inclui a conta da AWS, a região e o nome do alias.

A qualquer momento, um ARN de alias identificará uma CMK específica. No entanto, como você pode alterar a CMK associada ao alias, o ARN do alias pode identificar CMKs diferentes em momentos diferentes. Para obter ajuda para encontrar o ARN do alias de uma CMK, consulte Encontrar o nome e o ARN do alias.

O formato de um ARN de alias é o seguinte:

arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>

Veja a seguir o ARN de alias de um ExampleAlias fictício.

arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
Nome do alias

O nome de alias é uma string de até 256 caracteres. Ele identifica exclusivamente uma CMK associada em uma conta e uma região. Na API do AWS KMS, os nomes de alias sempre começam comalias/. Para obter ajuda para encontrar o nome do alias de uma CMK, consulte Encontrar o nome e o ARN do alias.

O formato de um nome de alias é o seguinte:

alias/<alias-name>

Por exemplo:

alias/ExampleAlias

Oaws/O prefixo de um nome de alias é reservado paraCMKs gerenciadas pela AWS. Não é possível criar um alias com esse prefixo. Por exemplo, o nome do alias da CMK gerenciada da da da AWS do Amazon Simple Storage Service (Amazon S3) é o seguinte.

alias/aws/s3

Origem do material de chave

A origem do material de chave é uma propriedade da CMK que identifica a origem do material de chave na CMK. Você escolhe a origem do material de chave ao criar a CMK e não é possível alterá-la. Para localizar a origem do material chave de um CMK, use o comandoDescribeKey, ou consulte aOrigemvalor doConfiguração criptográficada página de detalhes de um CMK no console do AWS KMS. Para obter ajuda, consulte Visualizar chaves.

As CMKs podem ter um dos seguintes valores de origem de material de chave.

KMS (padrão)

Valor da API: AWS_KMS

O AWS KMS cria e gerencia o material de chave para a CMK em seu próprio armazenamento de chaves. Este é o valor padrão e recomendado para a maioria das CMKs.

Para obter ajuda na criação de chaves com material de chaves do AWS KMS, consulteCriar chaves.

Externo

Valor da API: EXTERNAL

A CMK tem material de chave importada. Quando você cria uma CMK com uma origem de material de chave External, a CMK não tem material de chave. Posteriormente, será possível importar material de chave para a CMK. Ao usar material de chave importada, é necessário proteger e gerenciar esse material de chave fora do AWS KMS, incluindo a substituição do material de chave se ele expirar. Para obter mais detalhes, consulte Sobre o material de chave importada.

Para obter ajuda na criação de uma CMK para material de chave importada, consulte Etapa 1: Crie uma CMK sem material de chaves.

Armazenamento de chaves personalizado (CloudHSM)

Valor da API: AWS_CLOUDHSM

O AWS KMS criou o material de chaves para a CMK em suaArmazenamento de chaves personalizado do.

Para obter ajuda na criação de uma CMK em um armazenamento de chaves personalizado, consulte Criar CMKs em um armazenamento de chaves personalizado

Especificação da chave

A especificação da chave é uma propriedade da CMK que representa a configuração criptográfica da CMK. A especificação da chave determina se a CMK é simétrica ou assimétrica, o tipo de material de chave na CMK e os algoritmos de criptografia ou de assinatura que podem ser usados com a CMK.

Normalmente, a especificação de chave escolhida para a CMK é baseada no seu caso de uso e nos requisitos regulatórios. Você escolhe a especificação de chave ao criar a CMK e não é possível alterá-la. Se você escolheu a especificação de chave errada, exclua a CMK e crie outra.

Para obter uma lista de especificações de chave e ajuda com a escolha de uma especificação de chave, consulte Selecionar a especificação de chave. Para encontrar a especificação de chave de uma CMK, use oDescribeKey, ou consulte aConfiguração criptográficaNa página de detalhes de uma CMK no console do AWS KMS. Para obter ajuda, consulte Visualizar chaves.

nota

Nas operações da API do AWS KMS, a especificação chave para CMKs é conhecida como oCustomerMasterKeySpec. Isso o distingue da especificação chave para chaves de dados (KeySpec) e pares de chaves de dados (KeyPairSpec), e a especificação chave usada ao embalar material chave para importação (WrappingKeySpec). Cada tipo de especificação de chave tem valores diferentes.

Para limitar as especificações de chave que os principais podem usar ao criar CMKs, use a chave de condição kms:CustomerMasterKeySpec. Você também pode usar okms:CustomerMasterKeySpecpara permitir que as entidades principais chamem operações do AWS KMS para uma CMK baseada em sua especificação de chave. Por exemplo, é possível negar permissão para programar a exclusão da CMK com uma especificação de chave RSA_4096.

Uso da chave

O uso de chave é uma propriedade da CMK que determina se uma CMK é usada para criptografia e descriptografia ou para assinatura e verificação. Não é possível escolher ambos. Usar uma CMK para mais de um tipo de operações torna o produto de ambas as operações mais vulnerável a ataques.

O uso de chave para CMKs simétricas é sempre criptografia e descriptografia. O uso de chave para CMKs de curva elíptica (ECC) é sempre assinatura e verificação. Você só precisa escolher um uso de chave para CMKs RSA. Você escolhe o uso de chave ao criar a CMK e não é possível alterá-lo. Se você escolheu o uso de chave errado, exclua a CMK e crie outra.

Para escolher o uso de chave, consulte Selecionar o uso de chave. Para encontrar o uso de chave de uma CMK, use oDescribeKeyou escolha a opçãoConfiguração criptográficaNa página de detalhes de uma CMK no console do AWS KMS. Para obter ajuda, consulte Visualizar chaves.

Para permitir que os principais criem CMKs somente para assinatura e verificação ou somente para criptografia e descriptografia, use a chave de condição kms:CustomerMasterKeyUsage. Também é possível usar a chave de condição kms:CustomerMasterKeyUsage para permitir que os principais chamem operações de API para uma CMK com base em seu uso de chave. Por exemplo, só será possível conceder permissão para desativar uma CMK se seu uso de chave for SIGN_VERIFY.

Criptografia de envelope

Quando você criptografa seus dados, os dados são protegidos, mas é necessário proteger a chave de criptografia. Uma estratégia é para criptografá-la. Criptografia de envelope é a prática de criptografar dados de texto simples com uma chave de dados e criptografar a chave de dados em outra chave.

Você pode até mesmo criptografar a chave de criptografia de dados em outra chave de criptografia e criptografar essa chave de criptografia em outra chave de criptografia. Mas em algum momento deverá manter uma chave em texto simples para que possa descriptografar as chaves e seus dados. Essa chave de criptografia de chave de texto simples de nível superior é conhecida como chave mestra.


        Criptografia de envelope

O AWS KMS ajuda você a proteger suas chaves mestras armazenando e gerenciando-as com segurança. Chaves mestres armazenadas no AWS KMS, conhecido comochaves mestras do cliente(CMKs), nunca saia do AWS KMSFIPS validadas por módulos de segurança de hardwareNão criptografado. Para usar uma CMK do AWS KMS, é necessário chamar o AWS KMS.


        Criptografia de envelope com várias chaves de criptografia de chave

A criptografia de envelope oferece vários benefícios:

  • Proteção de chaves de dados

    Quando você criptografa uma chave de dados, não precisa se preocupar em armazenar a chave de dados criptografada porque a chave de dados é inerentemente protegida pela criptografia. A chave de dados criptografada pode ser armazenada com segurança junto com os dados criptografados.

  • Criptografia dos mesmos dados em várias chaves mestras

    As operações de criptografia podem ser demoradas, especialmente quando os dados que estão sendo criptografados são objetos grandes. Em vez de recriptografar dados brutos várias vezes com diferentes chaves, você pode recriptografar somente as chaves de dados que protegem os dados brutos.

  • Combinação de pontos fortes de vários algoritmos

    Em geral, os algoritmos de chave simétrica são mais rápidos e geram textos cifrados menores do que os algoritmos de chave pública. No entanto, os algoritmos de chave pública fornecem separação inerente de funções e gerenciamento de chaves mais fácil. A criptografia de envelope permite associar os pontos fortes de cada estratégia.

Contexto de criptografia

Todos os AWS KMSoperações de criptografiacom CMKs simétricos aceitam umContexto de criptografia do, um conjunto opcional de pares de chave-valor que podem conter mais informações contextuais sobre os dados. O AWS KMS usa o contexto de criptografia comodados autenticados adicionais(AAD) para apoiarcriptografia autenticada.

Você não pode especificar um contexto de criptografia em uma operação criptográfica com umCMK assimétricas. Os algoritmos de criptografia assimétrica padrão usados pelo AWS KMS não oferecem suporte a um contexto de criptografia.

Ao incluir um contexto de criptografia em uma solicitação de criptografia, ele é vinculado de maneira criptográfica ao texto cifrado, de modo que o mesmo contexto de criptografia seja necessário para descriptografar (ou descriptografar e criptografar novamente) os dados. Se o contexto de criptografia fornecido na solicitação de descriptografia não é uma correspondência exata, com distinção entre maiúsculas e minúsculas, a solicitação de descriptografia falha. Somente a ordem dos pares de chave-valor no contexto de criptografia pode variar.

O contexto de criptografia não é secreto. Ele aparece em texto simples emLogs do AWS CloudTrailPara você possa usá-lo para identificar e categorizar suas operações de criptografia.

Um contexto de criptografia pode consistir em quaisquer chaves e valores. No entanto, como ele não é secreto nem criptografado, seu contexto de criptografia não deve incluir informações confidenciais. Recomendamos que o seu contexto de criptografia descreva os dados que estão sendo criptografados ou descriptografados. Por exemplo, quando você criptografar um arquivo, poderá usar parte do caminho do arquivo como contexto de criptografia.

A chave e o valor em um par de contexto de criptografia devem ser strings literais simples. Não podem ser números inteiros, objetos, ou qualquer tipo que não esteja totalmente resolvido. Se você usar um tipo diferente, como um inteiro ou flutuante, o AWS KMS o interpretará como uma string.

"encryptionContext": { "department": "10103.0" }

A chave e o valor de contexto de criptografia podem incluir caracteres especiais, como sublinhados (_), traços (-), barras (/, \) e dois pontos (:).

Por exemplo, ao criptografar volumes e snapshots criados com oAmazon Elastic Block Store(Amazon EBS)CreateSnapshot, o Amazon EBS usa o ID do volume como valor de contexto de criptografia.

"encryptionContext": { "aws:ebs:id": "vol-abcde12345abc1234" }

Você também pode usar o contexto de criptografia para refinar ou limitar o acesso a chaves mestras de cliente (CMKs) na sua conta. Você pode usar o contexto de criptografia como uma restrição em concessões e como uma condição nas declarações de política.

Para saber como usar o contexto de criptografia para proteger a integridade dos dados criptografados, consulte a publicaçãoComo proteger a integridade de seus dados criptografados usando o AWS Key Management Service e o EncryptionContextno blog de segurança da AWS.

Mais informações sobre contexto de criptografia.

O contexto de criptografia é usado principalmente para verificar a integridade e a autenticidade. No entanto, também é possível usar o contexto de criptografia para controlar o acesso a chaves mestras do cliente (CMKs) em políticas de chaves e em políticas do IAM.

Okms:EncryptionContext:chave de contextoekms:EncryptionContextKeyspermitem (ou negam) uma permissão somente quando a solicitação inclui chaves de contexto de criptografia específicas ou pares chave-valor.

Por exemplo, a declaração de política de chaves a seguir permite que os principais que podem assumir aRoleForExampleAppfunção para usar o CMK emDecryptoperações. Ele usa okms:EncryptionContext:context-keypara conceder essa permissão somente quando o contexto de criptografia na solicitação especifica a propriedadeAppName:ExampleApppar de criptografia do contexto.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Para obter mais informações sobre essas chaves de condição de contexto de criptografia, consulte Usar condições de política com o AWS KMS.

Quando vocêCriar uma concessão, você pode incluirRestrições deque estabelecem condições para as permissões de concessão. O AWS KMS oferece suporte a duas restrições de concessão,EncryptionContextEqualseEncryptionContextSubset, ambos envolvem oContexto de criptografia doem uma solicitação para uma operação criptográfica. Quando você usa essas restrições de concessão, as permissões na concessão são efetivas apenas quando o contexto de criptografia na solicitação para a operação criptográfica atende aos requisitos das restrições de concessão.

Por exemplo, você pode adicionar umaEncryptionContextEqualsconceder restrição a uma concessão que permite que oGenerateDataKeyoperação. Com essa restrição, a concessão permite a operação apenas quando o contexto de criptografia na solicitação é uma correspondência com distinção entre maiúsculas e minúsculas para o contexto de criptografia na restrição de concessão.

$ aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/exampleUser \ --retiring-principal arn:aws:iam::111122223333:role/adminRole \ --operations GenerateDataKey \ --constraints EncryptionContextEquals={Purpose=Test}

Uma solicitação como a seguinte do principal beneficiário satisfaria aEncryptionContextEqualsRestrição.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test

Para obter detalhes sobre as restrições de concessão, consulteUso de restrições de concessão. Para obter informações detalhadas sobre concessões, consulteUsar concessões.

O AWS KMS usa o AWS CloudTrail para registrar em log o contexto de criptografia, para que você possa determinar quais CMKs e dados foram acessados. A entrada de log mostra exatamente qual CMK foi usada para criptografar ou descriptografar dados específicos referenciados pelo contexto de criptografia na entrada de log.

Importante

Como o contexto de criptografia é registrado em log, ele não deve conter informações confidenciais.

Para simplificar o uso de qualquer contexto de criptografia quando você chama as operações Decrypt ou ReEncrypt, é possível armazenar o contexto de criptografia com os dados criptografados. Recomendamos que você armazene apenas o suficiente do contexto de criptografia para ajudar a criar o contexto de criptografia por completo quando você precisar dele para criptografia ou descriptografia.

Por exemplo, se o contexto de criptografia é o caminho para um arquivo, armazene apenas parte desse caminho com o conteúdo do arquivo criptografado. Quando você precisar do contexto de criptografia completo, reconstrua-o do fragmento armazenado. Se alguém tentar violar o arquivo, como renomear ou mover para um local diferente, o valor do contexto de criptografia será alterado e a solicitação de descriptografia falhará.

Política de chaves

Ao criar uma CMK, você determina quem pode usar e gerenciar essa CMK. Essas permissões estão contidas em um documento chamado política de chaves. É possível usar a política de chaves para adicionar, remover ou alterar permissões a qualquer momento para uma CMK gerenciada pelo cliente. Mas não é possível editar a política de chaves para uma CMK gerenciada pela AWS. Para obter mais informações, consulte Usar políticas de chaves no AWS KMS.

Grant

AconcederO é um instrumento de política que permite que os principais da AWS usem chaves mestras do cliente (CMKs) do AWS KMS nooperações de criptografia. Ele também pode permitir que eles visualizem um CMK (DescribeKey) e criar e gerenciar concessões. Ao autorizar o acesso a uma CMK, as concessões são consideradas juntamente com aPolíticas de chavesePolíticas do IAM. As concessões geralmente são usadas para permissões temporárias, pois você pode criar uma, usar suas permissões e excluí-la sem alterar suas principais políticas ou políticas do IAM. Como concessões podem ser muito específicas e são fáceis de criar e revogar, elas geralmente são usadas para fornecer permissões temporárias ou permissões mais granulares.

Para obter informações detalhadas sobre concessões, incluindo terminologia de concessão, consulteUsar concessões.

Auditar o uso da CMK

Use o AWS CloudTrail para auditar o uso de chave. O CloudTrail cria arquivos de log que contêm um histórico de chamadas de API da AWS e eventos relacionados da sua conta. Esses arquivos de log incluem todas as solicitações de API do AWS KMS do feitas com o AWS Management Console, os AWS SDKs e as ferramentas de linha de comando. Os arquivos de log também incluem solicitações para o AWS KMS que os serviços da AWS fazem em seu nome. É possível usar esses arquivos de log para encontrar informações importantes, incluindo quando a CMK foi usada, a operação solicitada, a identidade do solicitante e o endereço IP de origem. Para obter mais informações, consulteRegistrar no AWS CloudTrailO e aGuia do usuário do AWS CloudTrail.

Infraestrutura de gerenciamento de chaves

Uma prática comum na criptografia é criptografar e descriptografar com um algoritmo revisado em pares e publicamente disponível, por exemplo, AES (Advanced Encryption Standard) e uma chave secreta. Um dos principais problemas na criptografia é a grande dificuldade de manter uma chave secreta. Geralmente esse é o trabalho de uma infraestrutura de gerenciamento de chaves (KMI). O AWS KMS opera o KMI para você. O AWS KMS cria e armazena com segurança as chaves mestras chamadaschaves mestras do cliente. Para obter mais informações sobre como o AWS KMS opera, consulteAWS Key Management Service.