Fazer download de chaves públicas - AWS Key Management Service

Fazer download de chaves públicas

É possível visualizar, copiar e baixar a chave pública de um par de chaves do KMS assimétricas usando o AWS Management Console ou a API do AWS KMS. É necessário ter a permissão kms:GetPublicKey na chave do KMS assimétrica.

Cada par de chaves do KMS assimétricas consiste em uma chave privada que nunca sai do AWS KMS descriptografada e em uma chave pública que pode ser baixada e compartilhada.

Você pode compartilhar uma chave pública para permitir que outras pessoas criptografem dados fora do AWS KMS que você só pode descriptografar com a chave privada. Ou para permitir que outras pessoas verifiquem uma assinatura digital fora do AWS KMS que você gerou com a chave privada.

Ao usar a chave pública na sua chave do KMS assimétrica dentro do AWS KMS, você se beneficia da autenticação, autorização e registro em log que fazem parte de cada operação do AWS KMS. Você também reduz o risco de criptografar dados que não podem ser descriptografados. Esses recursos não têm efeito fora do AWS KMS. Para obter mais detalhes, consulte Considerações especiais sobre o download de chaves públicas.

Considerações especiais sobre o download de chaves públicas

Para proteger suas chaves do KMS, o AWS KMS fornece controles de acesso, criptografia autenticada e logs detalhados de cada operação. O AWS KMS também permite evitar o uso de chaves do KMS de maneira temporária ou permanente. Por fim, as operações do AWS KMS são projetadas para minimizar o risco de criptografar dados que não podem ser descriptografados. Esses recursos não estão disponíveis quando você usa chaves públicas obtidas por download fora do AWS KMS.

Autorização

As políticas de chaves e as políticas do IAM que controlam o acesso à chave do KMS no AWS KMS não têm efeito nas operações realizadas fora da AWS. Qualquer usuário que possa obter a chave pública pode usá-lo fora do AWS KMS, mesmo que não tenha permissão para criptografar dados ou verificar assinaturas com a chave do KMS.

Restrições de uso da chave

As principais restrições de uso não têm efeito fora do AWS KMS. Se você chamar a operação Encrypt com uma chave do KMS que tenha um KeyUsage de SIGN_VERIFY, a operação do AWS KMS falhará. Porém, se você criptografar dados fora do AWS KMS com uma chave pública de uma chave do KMS com um KeyUsage de SIGN_VERIFY, os dados não poderão ser descriptografados.

Restrições de algoritmo

As restrições aos algoritmos de criptografia e de assinatura compatíveis com o AWS KMS não têm efeito fora do AWS KMS. Se você criptografar dados com a chave pública de uma chave do KMS fora do AWS KMS e usar um algoritmo de criptografia não compatível com o AWS KMS, os dados não poderão ser descriptografados.

Desabilitar e excluir chaves do KMS

As ações que você pode tomar para evitar o uso da chave do KMS em uma operação criptográfica dentro do AWS KMS não impedem ninguém de usar a chave pública fora do AWS KMS. Por exemplo, desabilitar uma chave do KMS, programar a exclusão de uma chave do KMS, excluir uma chave do KMS ou excluir o material de chave de uma chave do KMS não têm efeito em uma chave pública fora do AWS KMS. Se você excluir uma chave do KMS assimétrica ou se excluir ou perder seu material de chave, os dados criptografados com uma chave pública fora do AWS KMS serão irrecuperáveis.

Registro em log

Os logs do AWS CloudTrail que gravam todas as operações do AWS KMS, incluindo solicitação, resposta, data, hora e usuário autorizado, não gravam o uso da chave pública fora do AWS KMS.

Baixar uma chave pública (console)

É possível usar o AWS Management Console para visualizar, copiar e baixar a chave pública de uma chave do KMS assimétrica na sua Conta da AWS . Para baixar a chave pública de uma chave do KMS assimétrica em uma Conta da AWS diferente, use a API do AWS KMS.

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

  2. Para alterar a região da AWS, use o Region selector (Seletor de regiões) no canto superior direito da página.

  3. No painel de navegação, escolha Customer managed keys (Chaves gerenciadas de cliente).

  4. Escolha o alias ou o ID de chave de uma chave do KMS assimétrica.

  5. Selecione a guia Cryptographic configuration (Configuração criptográfica). Registre os valores dos campos Key spec (Especificação da chave), Key usage (Uso da chave) e Encryption algorithms (Algoritmos de criptografia) ou Signing Algorithms (Algoritmos de assinatura). Será necessário usar esses valores para usar a chave pública fora do AWS KMS. Compartilhe essas informações ao compartilhar a chave pública.

  6. Selecione a guia Public key (Chave pública).

  7. Para copiar a chave pública para a área de transferência, selecione Copy (Copiar). Para fazer download da chave pública em um arquivo, selecione Download (Fazer download).

Baixar uma chave pública (API do AWS KMS)

A operação GetPublicKey retorna a chave pública em uma chave do KMS assimétrica. Ela também retorna informações críticas que você precisa para usar a chave pública corretamente fora do AWS KMS, incluindo o uso de chave e os algoritmos de criptografia. Salve esses valores e compartilhe-os sempre que compartilhar a chave pública.

Os exemplos nesta seção usam a AWS Command Line Interface (AWS CLI), mas você pode usar qualquer linguagem de programação compatível.

Para especificar uma chave do KMS, use seu ID de chave, ARN de chave, nome de alias ou ARN de alias. Ao usar um nome de alias, use alias/ como prefixo dele. Para especificar uma chave do KMS em outra Conta da AWS , é necessário usar o ARN da chave ou o ARN do alias.

Antes de executar esse comando, substitua o nome de alias de exemplo por um identificador válido para a chave do KMS. Para executar esse comando, é necessário ter as permissões kms:GetPublicKey na chave do KMS.

$ aws kms get-public-key --key-id alias/example_RSA_3072 { "KeySpec": "RSA_3072", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "PublicKey": "MIIBojANBgkqhkiG..." }