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á.
Criar uma chave do KMS
Você pode criar AWS KMS keys no AWS Management Console ou usando a operação CreateKey ou o recurso AWS::KMS::Key do AWS CloudFormation. Durante esse processo, você define a política de chave para a chave do KMS, que pode ser alterada a qualquer momento. Você também seleciona os seguintes valores que definem o tipo de chave do KMS que você cria. Não é possível alterar essas propriedades depois que a chave do KMS é criada.
- Tipo de chave do KMS
-
O Tipo de chave é uma propriedade que determina qual tipo de chave criptográfica é criada. O AWS KMS oferece três tipos principais para proteger os dados:
-
Chaves simétricas Advanced Encryption Standard (AES)
Chaves de 256 bits que são usadas no modo Galois Counter Mode (GCM) do AES para fornecer criptografia/descriptografia autenticada de dados com menos de 4 KB de tamanho. Esse é o tipo mais comum de chave, sendo usado para proteger outras chaves de criptografia de dados usadas em suas aplicações e pelos Serviços da AWS para criptografar seus dados em seu nome.
-
Chaves assimétricas de RSA, curva elíptica ou SM2 (somente em regiões da China)
Essas chaves estão disponíveis em vários tamanhos e são compatíveis com vários algoritmos. É possível usá-las para operações de criptografia e descriptografia, assinatura e verificação ou derivação de segredos compartilhados, dependendo da opção de algoritmo.
-
Chaves simétricas para realizar operações de códigos de autenticação de mensagem por hash (HMAC)
Essas chaves são chaves de 256 bits usadas para operações de assinatura e verificação.
Não é possível exportar as chaves do KMS do serviço em texto simples. Elas são geradas e só podem ser usados nos módulos de segurança de hardware (HSMs) usados pelo serviço. Essa é a propriedade fundamental de segurança do AWS KMS para garantir que as chaves não sejam comprometidas.
-
- Uso da chave
-
O uso da chave é uma propriedade que determina as operações de criptografia compatíveis com a chave. As chaves do KMS podem ter um uso de chave de
ENCRYPT_DECRYPT
,SIGN_VERIFY
,GENERATE_VERIFY_MAC
ouKEY_AGREEMENT
. Cada chave do KMS pode ter apenas um uso de chave. O uso de uma chave do KMS para mais de um tipo de operação torna o produto de ambas as operações mais vulnerável a ataques. - 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.
Para chaves do KMS, especificação da chave determina se a chave do KMS é simétrica ou assimétrica. Ela também determina o tipo do material de chave e os algoritmos compatíveis.
A especificação de chaves padrão, SYMMETRIC_DEFAULT, representa uma chave de criptografia simétrica de 256 bits. Para obter uma descrição detalhada de todas as especificações de chave compatíveis, consulte Referência de especificação 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. A origem do material de chave afeta as características de segurança, durabilidade, disponibilidade, latência e throughput da chave do KMS.
Cada chave do KMS inclui uma referência ao material de chave em seus metadados. A origem do material de chave de chaves do KMS de criptografia simétrica pode variar. Você pode usar material de chave gerado pelo AWS KMS, material chave gerado em um repositório de chaves personalizado ou importar seu próprio 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.
As chaves do KMS podem ter um dos seguintes valores de origem do material de chave:
AWS_KMS
,EXTERNAL
(material de chave importado),AWS_CLOUDHSM
(chave do KMS em um repositório de chaves do AWS CloudHSM) ouEXTERNAL_KEY_STORE
chave do KMS em um repositório de chaves externo).
Tópicos
- Permissões para criar chaves do KMS
- Escolher qual tipo de chave do KMS criar
- Criar uma chave do KMS de criptografia simétrica
- Criar uma chave do KMS assimétrica
- Criar uma chave do KMS HMAC
- Criar chaves primárias de várias regiões
- Criar chaves de réplica de várias regiões
- Criar uma chave do KMS com material de chave importado
- Criar uma chave do KMS em um repositório de chaves do AWS CloudHSM
- Criar uma chave do KMS em repositórios de chaves externos
Permissões para criar chaves do KMS
Para criar uma chave do KMS no console ou usando as APIs, você deve ter a seguinte permissão em uma política do IAM. Sempre que possível, use chaves de condição para limitar as permissões. Por exemplo, você pode usar a chave de condição kms:KeySpec em uma política do IAM para permitir que entidades principais criem apenas chaves de criptografia simétrica.
Para obter um exemplo de uma política do IAM para entidades principais que criam chaves, consulte Permitir que um usuário crie chaves do KMS.
nota
Tenha cuidado ao conceder permissão a entidades principais para gerenciar etiquetas e aliases. Alterar uma etiqueta ou um alias pode conceder ou negar uma permissão à chave gerenciada pelo cliente. Para obter detalhes, consulte ABAC para AWS KMS.
-
kms:CreateKey é necessária.
-
kms:CreateAlias é necessária para criar uma chave do KMS no console no qual um alias é necessário para cada nova chave do KMS.
-
kms:TagResource é necessária para adicionar etiquetas ao criar a chave do KMS.
-
iam:CreateServiceLinkedRole é necessária para criar chaves primárias de várias regiões. Para obter detalhes, consulte Controlar o acesso a chaves de várias regiões.
A permissão kms:PutKeyPolicy não é necessária para criar a chave do KMS. A permissão kms:CreateKey
inclui permissão para definir a política de chaves inicial. Porém, você deve adicionar essa permissão à política de chaves ao criar a chave do KMS para garantir que seja possível controlar o acesso à chave do KMS. A alternativa é usar o parâmetro BypassLockoutSafetyCheck, o que não é recomendado.
As chaves do KMS pertencem à conta da AWS na qual foram criadas. O usuário do IAM que cria uma chave do KMS não é considerado o proprietário da chave e ele não recebe automaticamente permissão para usar ou gerenciar a chave do KMS que criou. Como qualquer outra entidade principal, o criador da chave precisa obter permissão por meio de uma política de chaves, política do IAM ou concessão. No entanto, as entidades principais que têm a permissão kms:CreateKey
podem definir a política de chave inicial e conceder a si mesmas permissão para usar ou gerenciar a chave.
Escolher qual tipo de chave do KMS criar
O tipo de chave do KMS criado depende em grande parte de como você planeja usar a chave do KMS e dos seus requisitos de segurança e de autorização. O tipo de chave e o uso de uma chave do KMS determinam quais operações criptográficas a chave poderá realizar. Cada chave do KMS pode ter apenas um uso. O uso de uma chave do KMS para mais de um tipo de operação torna o produto de todas as operações mais vulnerável a ataques.
Para permitir que as entidades principais criem chaves do KMS somente para um uso específico de chave, 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.
Use as orientações a seguir para determinar o tipo de chave do KMS necessário com base no seu caso de uso.
- Criptografar e descriptografar dados
-
Use uma chave do KMS simétrica para a maioria dos casos de uso que exigem criptografia e descriptografia dos dados. O algoritmo de criptografia simétrica usado pelo AWS KMS é rápido, eficiente e garante a confidencialidade e a autenticidade dos dados. Ele oferece suporte à criptografia autenticada com dados adicionais autenticados (ADD), definidos como um contexto de criptografia. Esse tipo de chave do KMS exige que o remetente e o destinatário dos dados criptografados tenham credenciais válidas da AWS para chamar o AWS KMS.
Se o seu caso de uso exige criptografia fora do AWS por usuários que não podem chamar o AWS KMS, as chaves do KMS assimétricas são uma boa escolha. Você pode distribuir a parte pública da chave do KMS assimétrica para permitir que esses usuários criptografem dados. Além disso, as aplicações que precisam descriptografar esses dados podem usar a chave privada da chave do KMS assimétrica no AWS KMS.
- Assinar mensagens e verificar assinaturas
-
Para assinar mensagens e verificar assinaturas, é necessário usar uma chave do KMS assimétrica. É possível usar uma chave do KMS com uma especificação de chave que representa um par de chaves RSA, um par de chaves de curva elíptica (ECC) ou um par de chaves SM2 (somente nas regiões da China). A especificação de chave escolhida é determinada pelo algoritmo de assinatura que você deseja usar. Os algoritmos de assinatura ECDSA compatíveis com os pares de chaves ECC são recomendados em vez dos algoritmos de assinatura RSA. No entanto, pode ser necessário usar uma especificação de chave e um algoritmo de assinatura específicos para oferecer suporte aos usuários que verificam assinaturas de forma externa à AWS.
- Criptografar com pares de chaves assimétricas
-
Para criptografar dados com um par de chaves assimétricas, é necessário usar uma chave do KMS assimétrica com uma especificação de chave RSA ou uma especificação de chave SM2 (somente em regiões da China). Para criptografar dados no AWS KMS com a chave pública de um par de chaves do KMS, use a operação Encrypt (Criptografar). Também é possível fazer download da chave pública e compartilhá-la com as partes que precisam criptografar dados fora do AWS KMS.
Ao baixar a chave pública de uma chave do KMS assimétrica, é possível usá-la fora do AWS KMS. No entanto, ela não está mais sujeita aos controles de segurança que protegem a chave do KMS no AWS KMS. Por exemplo, não é possível usar concessões ou políticas de chaves do AWS KMS para controlar o uso da chave pública. Também não é possível controlar se a chave é usada somente para criptografia e descriptografia usando os algoritmos de criptografia compatíveis com o AWS KMS. Para obter mais detalhes, consulte Considerações especiais sobre o download de chaves públicas.
Para descriptografar dados que foram criptografados com a chave pública fora do AWS KMS, chame a operação Decrypt. A operação
Decrypt
vai falhar se os dados tiverem sido criptografados com uma chave pública de uma chave do KMS com um uso de chave deSIGN_VERIFY
. Também ocorrerá falha se eles tiverem sido criptografados usando um algoritmo não compatível com o AWS KMS para a especificação de chave selecionada. Para obter mais informações sobre especificações de chaves e algoritmos compatíveis, consulte Referência de especificação de chave.Para evitar esses erros, qualquer pessoa que esteja usando uma chave pública fora do AWS KMS deve armazenar a configuração da chave. O console do AWS KMS e a resposta GetPublicKey fornecem as informações a serem incluídas ao compartilhar a chave pública.
- Derivar segredos compartilhados
-
Para derivar segredos compartilhados, use uma chave do KMS com curva elíptica recomendada pelo NIST ou material de chave SM2 (somente regiões da China). O AWS KMS usa o Elliptic Curve Cryptography Cofactor Diffie-Hellman Primitive
(ECDH) para estabelecer um acordo de chave entre dois pares, derivando um segredo compartilhado de seus pares de chaves pública/privada de curva elíptica. Para derivar uma chave simétrica capaz de criptografar e descriptografar dados enviados entre duas partes, é possível usar o segredo compartilhado bruto que a operação DeriveSharedSecret retorna ou gerar e verificar HMACs. O AWS KMS recomenda que você siga as recomendações do NIST para derivação de chaves ao usar o segredo compartilhado bruto para derivar uma chave simétrica. - Gerar e verificar códigos de HMAC
-
Para gerar e verificar códigos de autenticação de mensagem por hash, use uma chave do KMS de HMAC. Ao criar uma chave de HMAC no AWS KMS, o AWS KMS cria e protege o material de chave, garantindo que você use os algoritmos de Message authentication code (MAC – Código de autenticação de mensagem) corretos para sua chave. Também é possível usar os códigos de HMAC como números pseudo-aleatórios e para assinatura simétrica e tokenização em determinados cenários.
As chaves do KMS de HMAC são chaves simétricas. Ao criar uma chave do KMS de HMAC no console do AWS KMS, escolha o tipo de chave
Symmetric
. - Usar com serviços da AWS
-
Para criar uma chave do KMS para uso com um serviço da AWS integrado ao AWS KMS, consulte a documentação do serviço. Os serviços da AWS que criptografam seus dados exigem uma chave do KMS de criptografia simétrica.
Além dessas considerações, as operações criptográficas em chaves do KMS com diferentes especificações de chave têm preços e cotas de solicitação diferentes. Para obter mais informações sobre a definição de preço do AWS KMS, consulte Definição de preço do AWS Key Management Service