AWS Key Management ServiceConceitos do - AWS Key Management Service

AWS Key Management ServiceConceitos do

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.

AWS KMS keys

AWS KMS keys (chaves do KMS) são o recurso principal no AWS KMS. É possível usar uma chave do KMS para criptografar, descriptografar e recriptografar dados. Ela também pode gerar chaves de dados que você pode usar fora do AWS KMS. Normalmente, você usará chaves do KMS simétricas, mas pode criar e usar chaves do KMS assimétricas para criptografia ou assinatura.

nota

A AWS KMS está substituindo o termo chave mestre do cliente (CMK) por AWS KMS key e chave do KMS. O conceito não mudou. Para evitar alterações súbitas, a AWS KMS está mantendo algumas variações dessa condição.

Uma AWS KMS key é uma representação lógica de uma chave de criptografia. Além do material de chave usado para criptografar e descriptografar dados, uma chave do KMS inclui metadados, como ID da chave, data de criação, descrição e estado da chave.

Chaves do KMS podem ser simétricas ou assimétricas. Uma chave do KMS simétrica representa uma chave de 256 bits que é usada para criptografia e descriptografia. Uma chave do KMS assimétrica pode representar um par de chaves RSA usado para criptografia e descriptografia ou assinatura e verificação (mas não ambos). Ou uma chave do KMS assimétrica pode representar um par de chaves de curva elíptica (ECC) usado para assinatura e verificação. Para obter informações detalhadas sobre chaves do KMS simétricas e assimétricas, consulte Usar chaves simétricas e assimétricas.

Você cria chaves do KMS no AWS KMS. As chaves do KMS simétricas e as chaves privadas de chaves do KMS assimétricas nunca deixam o AWS KMS descriptografadas. Para usar ou gerenciar suas chaves do KMS, você deve usar o AWS KMS. Para obter mais informações sobre como criar e gerenciar chaves do KMS, consulte Conceitos básicos. Para obter mais informações sobre como usar chaves do KMS, consulte a Referência de APIs do AWS Key Management Service.

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

O AWS KMS também oferece suporte a chaves de várias regiões, que permitem criptografar dados em uma Região da AWS e descriptografá-los em uma Região da AWS diferente.

Para obter mais informações sobre como criar e gerenciar chaves do KMS, consulte Conceitos básicos. Para obter mais informações sobre como usar chaves do KMS, consulte a Referência de APIs do AWS Key Management Service.

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

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

Os serviços da AWS que se integram ao AWS KMS são diferentes no que se refere ao suporte para chaves do KMS. Alguns serviços da AWS criptografam seus dados por padrão com uma chave de propriedade da AWS ou com uma Chave gerenciada pela AWS . Outros serviços da AWS oferecem criptografia dos dados com uma chave gerenciada pelo cliente de sua escolha. Outros serviços da AWS são compatíveis com todos os tipos de chaves do KMS para proporcionar a facilidade de uma chave de propriedade da AWS , a visibilidade de uma Chave gerenciada pela AWS ou o controle de uma chave gerenciada pelo cliente. Para obter informações detalhadas sobre as opções de criptografia oferecidas por um serviço da AWS, consulte o tópico Criptografia em repouso no manual do usuário ou no guia do desenvolvedor do serviço.

Chaves gerenciadas pelo cliente

Chaves gerenciadas pelo cliente são chaves do KMS na sua Conta da AWS criadas e gerenciadas por você. Você tem controle total sobre essas chaves do KMS, incluindo estabelecer e manter suas políticas de chaves, políticas do IAM e concessões, além de habilitá-las e desabilitá-las, alternar seu material criptográfico, adicionar etiquetas, criar aliases que fazem referência às chaves do KMS e programar a exclusão de chaves do KMS.

Chaves gerenciadas pelo cliente são exibidas na página Customer managed keys (Chaves gerenciadas pelo cliente) do AWS Management Console para o AWS KMS. Para identificar definitivamente uma chave gerenciada pelo cliente, use a operação DescribeKey. Para chaves gerenciadas pelo cliente, o valor do campo KeyManager da resposta DescribeKey é CUSTOMER.

Você pode usar suas chaves gerenciadas pelo cliente em operações de criptografia e auditar o uso em logs do AWS CloudTrail. Além disso, muitos serviços da AWS que se integram com o AWS KMS permitem que você especifique uma chave gerenciada pelo cliente para proteger os dados armazenados e gerenciados.

Chaves gerenciadas pelo cliente geram uma taxa mensal e uma taxa para uso que excede o nível gratuito. Elas contam para as cotas do AWS KMS da sua conta. Para obter mais detalhes, consulte AWS Key Management Service Definição de preço e Quotas.

Chaves gerenciadas pela AWS

Chaves gerenciadas pela AWS são chaves do KMS na sua conta que são criadas, gerenciadas e usadas em seu nome por um serviço da AWS integrado ao AWS KMS. Alguns serviços da AWS são compatíveis apenas com uma Chave gerenciada pela AWS . Outros usam uma chave de propriedade da AWS ou oferecem uma escolha de chaves do KMS.

Você pode visualizar as Chaves gerenciadas pela AWS na sua conta, visualizar suas políticas de chaves e auditar o uso delas em logs do AWS CloudTrail. No entanto, você não pode gerenciar essas chaves do KMS, alterná-las nem alterar suas políticas de chaves. Você também não pode usar Chaves gerenciadas pela AWS em operações de criptografia de forma direta. Elas são usadas em seu nome pelo serviço que as cria.

Chaves gerenciadas pela AWS aparece na página Chaves gerenciadas pela AWS do AWS Management Console para o AWS KMS. Também é possível identificar Chaves gerenciadas pela AWS por seus aliases, que têm o formato aws/service-name, como aws/redshift. Para identificar definitivamente uma Chaves gerenciadas pela AWS , use a operação DescribeKey. Para Chaves gerenciadas pela AWS , o valor do campo KeyManager da resposta DescribeKey é AWS.

Você não paga uma taxa mensal por Chaves gerenciadas pela AWS . Elas podem estar sujeitas a taxas de uso que excede o nível gratuito, mas alguns serviços da AWS abrangem esses custos para você. Para obter detalhes, consulte o tópico Criptografia em repouso, no manual do usuário ou no guia do desenvolvedor do serviço.. Chaves gerenciadas pela AWS não contam para cotas de recurso para o número de chaves do KMS em cada região da sua conta. No entanto, quando usadas em nome de uma entidade principal na sua conta, essas chaves do KMS contam para as cotas de solicitações. Para obter mais detalhes, consulte AWS Key Management Service Definição de preço e Quotas.

chaves de propriedade da AWS

chaves de propriedade da AWS são uma coleção de chaves do KMS de propriedade de um serviço da AWS e que esse serviço gerencia para uso em várias Contas da AWS . Embora chaves de propriedade da AWS não estejam em sua Conta da AWS , um serviço da AWS pode usar as chaves de propriedade da AWS associadas para proteger os recursos da sua conta.

Você não precisa criar nem gerenciar chaves de propriedade da AWS . Porém, não é possível visualizá-las, usá-las, rastreá-las ou auditá-las. A AWS não cobra uma taxa mensal ou taxa de uso para chaves de propriedade da AWS e elas não contam para as cotas do AWS KMS da sua conta.

Alternância de chave de propriedade da AWS - Para obter informações sobre os tipos de chaves do KMS aceitos por um serviço da AWS, incluindo chaves de propriedade da AWS , consulte o tópico Criptografia em repouso no manual do usuário ou no guia do desenvolvedor do serviço.

Chaves de dados

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 dos dados. Ao contrário de chaves do KMS, que não podem ser baixadas, chaves de dados são devolvidas para você para uso fora do AWS KMS.

Quando o AWS KMS gera chaves de dados, ele geralmente retorna uma chave de dados em texto simples para uso imediato e uma cópia criptografada dessa chave de dados, que você pode armazenar com os dados de maneira segura. Quando você pronto para descriptografar os dados, você primeiro solicita ao AWS KMS que descriptografe a chave de dados criptografada.

O AWS KMS gera, criptografa e descriptografa 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. Você deve usar e gerenciar as chaves de dados fora do AWS KMS.

Criação de uma chave de dados

Para criar uma chave de dados, chame a operação GenerateDataKey. O AWS KMS usa a chave do KMS simétrica especificada para gerar uma chave de dados. A operação retorna uma cópia em texto simples da chave de dados e uma cópia da chave de dados criptografada de acordo com a chave do KMS. A imagem a seguir mostra essa operação.


          Gerar uma chave de dados

O AWS KMS também oferece suporte a operação GenerateDataKeyWithoutPlaintext, que retorna apenas uma chave de dados criptografada. Quando precisar usar a chave de dados, peça ao AWS KMS para descriptografá-la.

Criptografia de dados com uma chave de dados

AWS KMSO não pode usar uma chave de dados para criptografar dados. No entanto, você pode usar a chave de dados fora do AWS KMS, como ao usar OpenSSL ou uma biblioteca de criptografia, como AWS 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 dos dados do usuário fora do AWS KMS

Descriptografia dos dados com uma chave de dados

Para descriptografar dados, transmita a chave de dados criptografada para a operação Decrypt. O AWS KMS usa sua chave do KMS para descriptografar a chave de dados e, em seguida, retorna a chave de dados em texto simples. 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

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

Ao contrário dos pares de chaves de dados gerados por ferramentas como o OpenSSL, o AWS KMS protege a chave privada em cada par de chaves de dados sob uma chave do KMS simétrica no AWS KMS que você especifica. 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. É necessário usar e gerenciar 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 criptomoedas. O AWS KMS recomenda que você use pares de chaves ECC para assinatura e use pares de chaves RSA para criptografia ou assinatura, mas não ambos. Porém, AWS KMS não podem impor restrições para o uso de pares de chaves fora do AWS KMS.

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 chave do KMS simétrica que você 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, pares de chaves de dados são usados quando muitos usuários precisam criptografar dados que só o usuário 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 par de chaves 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 par de chaves 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 você criptografar sua chave privada, transmita a chave privada criptografada para a operação Decrypt. O AWS KMS usa sua chave do KMS para descriptografar a chave de dados e, em seguida, retorna a chave privada em texto simples. 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 que você usa.)

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 no par de chaves 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 par de chaves fora do AWS KMS.

Aliases

Use um alias como um nome amigável para uma chave do KMS. Por exemplo, você pode fazer referência a uma chave do KMS como test-key em vez de 1234abcd-12ab-34cd-56ef-1234567890ab.

Aliases facilitam a identificação de uma chave do KMS no AWS Management Console. Você também pode usar um alias para identificar uma chave do KMS em algumas operações do AWS KMS, incluindo operações de criptografia. Em aplicações, é possível usar um único alias para fazer referência a diferentes chaves do KMS em cada Região da AWS .

Também é possível permitir e negar acesso a chaves do KMS com base em aliases sem precisar editar políticas ou gerenciar concessões. Esse recurso faz parte do suporte do AWS KMS para controle de acesso baseado em atributos (ABAC). Para obter mais detalhes, consulte Usando o ABAC para o AWS KMS.

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

Saiba mais:

Armazenamentos de chaves personalizados

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

Ao criar uma chave do AWS KMS (chave do 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 chave nunca sai dos seus HSMs sem estarem criptografados. Ao usar uma chave do KMS em um armazenamento de chaves personalizado, as operações de criptografia são executadas nos HSMs no cluster.

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

Operações criptográficas

No AWS KMS, operações de criptografia são operações de API que usam chaves do KMS para proteger dados. Como as chaves do KMS permanecem no AWS KMS, é necessário chamar o AWS KMS para usar uma chaves do KMS em uma operação criptográfica.

Para executar operações de criptografia com chaves do KMS, use os AWS SDKs, a AWS Command Line Interface (AWS CLI) ou o AWS Tools for PowerShell. Não é possível executar operações de criptografia no console do AWS KMS. Para obter exemplos de chamadas de operações de criptografia em várias linguagens de programação, consulte Programação da API do AWS KMS.

A tabela a seguir lista as operações de criptografia do AWS KMS. Ela também mostra os requisitos de tipo de chave e uso de chave para chaves do KMS usadas na operação.

Operação Tipo de chave da chave do KMS Uso de chaves do KMS
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 chave do KMS. N/D
ReEncrypt Quaisquer ENCRYPT_DECRYPT
Sign Assimétrica SIGN_VERIFY
Verificar Assimétrica SIGN_VERIFY

[1] GenerateDataKeyPair e GenerateDataKeyPairWithoutPlaintext geram um par de chaves de dados assimétricas que é protegido por uma chave do KMS simétrica.

Para obter informações sobre as permissões para operações de criptografia, consulte a AWS KMSPermissões .

Para tornar o AWS KMS responsivo e altamente funcional para todos os usuários, o AWS KMS estabelece cotas para o número de operações de criptografia chamadas em cada segundo. Para obter mais detalhes, consulte Cotas compartilhadas para operações de criptografia.

Identificadores de chave (KeyId)

Identificadores de chave atuam como nomes para suas chaves do KMS. Eles ajudam a reconhecer suas chaves do KMS no console. Você poderá usá-las para indicar quais chaves do KMS deseja usar em operações de API do AWS KMS, políticas do IAM e concessões.

AWS KMSO define vários identificadores de chave. Quando você cria uma chave do KMS, o AWS KMS gera um ARN e um ID de chave, que são propriedades da chave do KMS. Quando você cria um alias, o AWS KMS gera o ARN de um alias com base no nome do alias definido. É possível exibir os identificadores de chave e alias no AWS Management Console e na API do AWS KMS.

No console do AWS KMS, é possível visualizar e filtrar chaves do KMS por ARN de chave, ID de chave ou nome de alias e classificar por ID de chave e nome de alias. Para obter ajuda para encontrar os identificadores de chave no console, consulte Encontrar o ID de chave e o ARN.

Na API do AWS KMS, os parâmetros usados para identificar uma chave do KMS se chamam KeyId ou uma variação, como TargetKeyId ou DestinationKeyId. 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 Referência de APIs do AWS 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 e prático para a sua tarefa.

AWS KMSO é compatível com os seguintes identificadores de chave.

ARN de chave

O ARN de chave é o Amazon Resource Name (ARN) de uma chave do KMS. É um identificador exclusivo e totalmente qualificado para a chave do KMS. Um ARN de chave inclui a Conta da AWS , a região e o ID de chave. Para obter ajuda para encontrar o ARN de chave de uma chave do KMS, 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 para uma chave do KMS de região única.

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

O elemento key-id dos ARNs de chaves de várias regiões começa com o prefixo mrk-. Veja a seguir um exemplo de ARN de chave para uma chave do KMS de várias regiões.

arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
ID da chave

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

Veja a seguir um exemplo de ID de chave para uma chave do KMS de região única.

1234abcd-12ab-34cd-56ef-1234567890ab

Os IDs de chave de chaves de várias regiões começam com o prefixo mrk-. Veja a seguir um exemplo de ID de chave para uma chave do KMS de várias regiões.

mrk-1234abcd12ab34cd56ef1234567890ab
ARN do alias

O ARN do alias é o Amazon Resource Name (ARN) de um alias do AWS KMS. É um identificador exclusivo e totalmente qualificado para o alias e para a chave do KMS 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 chave do KMS específica. No entanto, como é possível alterar a chaves do KMS associada ao alias, o ARN do alias pode identificar diferentes chaves do KMS em momentos diferentes. Para obter ajuda para encontrar o ARN de alias de uma chave do KMS, 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 fictício ExampleAlias.

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

O nome do alias é uma string com até 256 caracteres. Ele identifica exclusivamente uma chave do KMS associada em uma conta e uma região. Na API do AWS KMS, os nomes de alias sempre começam com alias/. Para obter ajuda para encontrar o nome de alias de uma chave do KMS, 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

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

alias/aws/s3

Material de chave

O material de chave é a string secreta de bits usada em um algoritmo criptográfico. O material de chave deve ser mantido em segredo para proteger as operações de criptografia que o utilizam.

Cada chave do KMS inclui material de chave junto com metadados, como o ID de chave e a política de chaves. A origem do material de chave pode variar. Você pode usar material de chave gerado pelo AWS KMS, material chave gerado no cluster do AWS CloudHSMde um armazenamento de chaves personalizado ou pode importar seu próprio material de chave. Se você usar material de chave do AWS KMS, poderá habilitar a alternância automática do seu material de chave.

Por padrão, cada chave do KMS tem material de chave exclusivo. No entanto, você pode criar um conjunto de chaves de várias regiões com o mesmo material de chave.

Origem do material de chave

A origem do material de chave é uma propriedade da chave do KMS que identifica a origem do material de chave na chave do KMS. Você escolhe a origem do material de chave ao criar a chave do KMS e não é possível alterá-la. Para localizar a origem do material de chave de uma chave do KMS, use a operação DescribeKey ou consulte o valor Origin (Origem) na seção Cryptographic configuration (Configuração criptográfica) da página de detalhes de uma chave do KMS no console do AWS KMS. Para obter ajuda, consulte Visualizar chaves.

As chaves do KMS podem ter um dos valores de origem de material de chave a seguir.

KMS (padrão)

Valor da API: AWS_KMS

O AWS KMS cria e gerencia o material de chave para a chave do KMS no seu próprio armazenamento de chaves. Esse é o valor padrão e o recomendado para a maioria das chaves do KMS.

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

Externo

Valor da API: EXTERNAL

A chave do KMS tem material de chave importado. Quando uma chave do KMS é criada com uma origem de material de chave External, ela não tem material de chave. Mais tarde, você poderá importar material de chave para a chave do KMS. 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 chave do KMS para material de chave importado, consulte Etapa 1: criar uma chave do KMS sem material de chave.

Armazenamento de chaves personalizado (CloudHSM)

Valor da API: AWS_CLOUDHSM

O AWS KMS criou o material de chave para a chave do KMS no seu armazenamento de chaves personalizado.

Para obter ajuda na criação de uma chave do KMS em um armazenamento de chaves personalizado, consulte Criar chaves do KMS em um armazenamento de chaves personalizado

Especificação da chave

A especificação da chave é uma propriedade que representa a configuração criptográfica de uma chave. O significado da especificação de chave difere com o tipo de chave.

  • Chaves do AWS KMS — A especificação da chave determina se a chave do KMS é simétrica ou assimétrica. Ela também determina os algoritmos de criptografia ou algoritmos de assinatura com os quais a chave do KMS é compatível. Você escolhe a especificação de chave ao criar a chave do KMS e não pode alterá-la.

    nota

    A KeySpec para uma chave do KMS era conhecida como CustomerMasterKeySpec. O parâmetro CustomerMasterKeySpec da operação CreateKey está preterido. Em vez disso, use o parâmetro KeySpec, que funciona da mesma maneira. Para evitar alterações súbitas, a resposta das operações CreateKey e DescribeKey agora inclui os membros KeySpec e CustomerMasterKeySpec com os mesmos valores.

    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 localizar a especificação de chave de uma chave do KMS, use a operação DescribeKey ou consulte a guia Cryptographic configuration (Configuração criptográfica) na página de detalhes de uma chave do KMS no console do AWS KMS. Para obter ajuda, consulte Visualizar chaves.

    Para limitar as especificações de chave que as entidades principais podem usar ao criar chaves do KMS, use a chave de condição kms:KeySpec. Também é possível usar a chave de condição kms:KeySpec para permitir que as entidades principais chamem operações do AWS KMS para uma chave do KMS baseada em sua especificação de chave. Por exemplo, é possível negar permissão para programar a exclusão de uma chave do KMS com uma especificação de chave RSA_4096.

  • Chaves de dados (GenerateDataKey) — Aespecificação de chave determina o comprimento de uma chave de dados AES.

  • Pares de chaves de dados (GenerateDataKeyPair) — Aespecificação de par de chaves determina o tipo de material de chave no par de chaves de dados.

Uso da chave

O uso de chave é uma propriedade que determina se uma chave do KMS é usada para criptografia e descriptografia ou para assinatura e verificação. Uma chave não pode oferecer suporte a ambos. Usar uma chave do KMS 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 chaves do KMS simétricas é sempre criptografia e descriptografia. O uso de chave para chaves do KMS de curva elíptica (ECC) é sempre assinatura e verificação. Você só precisa escolher um uso de chave para chaves do KMS RSA. Você escolhe o uso de chave ao criar a chave do KMS e não pode alterá-la. Se você tiver escolhido o uso de chave errado, exclua a chave do KMS e crie uma nova.

Para escolher o uso de chave, consulte Selecionar o uso de chave. Para localizar o uso de chave de uma chave do KMS, use a operação DescribeKey ou escolha a guia Cryptographic configuration (Configuração criptográfica) na página de detalhes de uma chave do KMS no console do AWS KMS. Para obter ajuda, consulte Visualizar chaves.

Para permitir que as entidades principais criem chaves do KMS somente para assinatura e verificação ou somente para criptografia e descriptografia, use a chave de condição kms:KeyUsage. Também é possível usar a chave de condição kms:KeyUsage para permitir que as entidades principais chamem operações de API para uma chave do KMS baseada em seu uso de chave. Por exemplo, apenas será possível conceder permissão para desabilitar uma chave do KMS se o 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 dos 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 em texto simples de nível superior é chamada de chave raiz.


        Criptografia de envelope

O AWS KMS ajuda você a proteger suas chaves de criptografia armazenando-as e gerenciando-as com segurança. As chaves raiz armazenadas no AWS KMS, conhecidas como AWS KMS keys, nunca saem em estado descriptografado dos módulos de segurança de hardware do AWS KMS validados para FIPS. Para usar uma chave do 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.

  • Criptografar os mesmos dados com várias chaves

    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

Todas as operações de criptografia do AWS KMS com chaves do KMS simétricas aceitam um contexto de criptografia, um conjunto opcional de pares de chave-valor que pode conter mais informações contextuais sobre os dados. O AWS KMS usa o contexto de criptografia como dados adicionais autenticados (AAD) para oferecer suporte à criptografia autenticada.

Não é possível especificar um contexto de criptografia em uma operação criptográfica com uma chave do KMS assimétrica. Os algoritmos de criptografia assimétrica padrão que o AWS KMS utiliza não têm suporte para 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 é exibido em texto simples em Logs do AWS CloudTrail, para 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 a operação CreateSnapshot do Amazon Elastic Block Store (Amazon EBS), 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 AWS KMS keys 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ção Como proteger a integridade dos seus dados usando o AWS Key Management Service e o EncryptionContext no 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 AWS KMS keys simétricas em políticas de chave e em políticas do IAM.

As chaves de condição kms:EncryptionContext: e kms:EncryptionContextKeys concedem (ou negam) uma permissão somente quando a solicitação inclui chaves de contexto de criptografia específicas ou pares de chave-valor.

Por exemplo, a instrução de política de chave a seguir permite que a função RoleForExampleApp use a chave do KMS em operações Decrypt. Ela usa a chave da condição kms:EncryptionContext:context-key para conceder essa permissão somente quando o contexto de criptografia na solicitação inclui um par de contexto de criptografia AppName:ExampleApp.

{ "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.

Ao criar uma concessão, você pode incluir restrições de concessão que estabelecem condições para as permissões de concessão. O AWS KMS oferece suporte a duas restrições de concessão, EncryptionContextEquals e EncryptionContextSubset, ambas envolvendo ocontexto de criptografia em 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 uma restrição de concessão EncryptionContextEquals a uma concessão que permite a operação GenerateDataKey. Com essa restrição, a concessão permite a operação apenas quando o contexto de criptografia na solicitação é uma correspondência com maiúsculas e minúsculas ao 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 da entidade principal receptora da concessão atenderia à restrição EncryptionContextEquals.

$ 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, consulte Usar restrições de concessão. Para obter informações detalhadas sobre concessões, consulte Usar concessões.

O AWS KMS usa o AWS CloudTrail para registrar em log o contexto de criptografia, para que você possa determinar quais chaves do KMS e dados foram acessados. A entrada de log mostra exatamente quais chaves do KMS foram 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 chave do KMS, você determina quem pode usar e gerenciar essas chaves do KMS. 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 chave gerenciada pelo cliente. Porém, não é possível editar a política de chaves para uma Chaves gerenciadas pela AWS . Para obter mais informações, consulte Usar políticas de chaves no AWS KMS.

Grant

Uma concessão é um instrumento de política com o qual as entidades principais da AWS podem usar AWS KMS keys em operações de criptografia. Ela também pode permitir que essas entidades visualizem chaves do KMS (DescribeKey) e criem e gerenciar concessões. Ao autorizar o acesso a uma chave do KMS, concessões são consideradas junto com políticas de chave e políticas do IAM. 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 detalhadas.

Para obter informações detalhadas sobre concessões, incluindo a terminologia de concessões, consulte Usar concessões.

Auditar o uso de chaves do KMS

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 para a sua conta. Esses arquivos de log incluem todas as solicitações de API do AWS KMS feitas com o Console de Gerenciamento da AWS, 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 chave do KMS foi usada, a operação solicitada, a identidade do solicitante e o endereço IP de origem. Para obter mais informações, consulte Registro em log com o AWS CloudTrail e o Manual 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 essa infraestrutura para você. O AWS KMS cria e armazena com segurança as suas chaves raiz, chamadas de AWS KMS keys. Para obter mais informações sobre como o AWS KMS opera, consulte Detalhes criptográficos do AWS Key Management Service.