Criar um armazenamento de chaves personalizado - AWS Key Management Service

Criar um armazenamento de chaves personalizado

Você pode criar um ou vários armazenamentos de chaves personalizados na sua conta. Cada armazenamento de chaves personalizado está associado a um cluster do AWS CloudHSM na mesma Região da AWS. Antes de criar o armazenamento de chaves personalizado, você precisa organizar os pré-requisitos. Antes de usar o armazenamento de chaves personalizado, você deve se conectar ao cluster do AWS CloudHSM.

nota

Se você tentar criar um armazenamento personalizado de chaves com os mesmos valores de propriedade de um armazenamento personalizado de chaves existente desconectado, o AWS KMS não criará um novo armazenamento personalizado de chaves e não gerará uma exceção nem exibirá um erro. Em vez disso, o AWS KMS reconhecerá a duplicata como a possível consequência de uma nova tentativa e retornará o ID do armazenamento personalizado de chaves existente.

dica

Não é necessário conectar seu armazenamento de chaves personalizado imediatamente. Você pode deixá-lo em um estado desconectado até estar pronto para usá-lo. No entanto, para verificar se ele está configurado corretamente, você pode querer conectá-lo, visualizar o status da conexão e desconectá-lo.

Organizar os pré-requisitos

Cada armazenamento de chaves personalizado do AWS KMS é baseado em um cluster do AWS CloudHSM. Para criar um armazenamento de chaves personalizado, você deve especificar um cluster do AWS CloudHSM ativo que ainda não está associado a outro armazenamento de chaves. Você também precisa criar um usuário de criptografia (CU) dedicado nos HSMs do cluster que o AWS KMS pode usar para criar e gerenciar chaves em seu nome.

Antes de criar um armazenamento de chaves personalizado, faça o seguinte:

Selecionar um cluster do AWS CloudHSM

Todo armazenamento de chaves personalizado é associado, precisamente, a um cluster do AWS CloudHSM. Quando você cria uma AWS KMS keys no seu armazenamento de chaves personalizado, o AWS KMS cria os metadados da chave do KMS, como um ID e um Amazon Resource Name (ARN) no AWS KMS. Ele cria o material de chaves nos HSMs do cluster associado. Você pode criar um novo cluster do AWS CloudHSM ou usar um existente. O AWS KMS não requer acesso exclusivo ao cluster.

O cluster do AWS CloudHSM que você seleciona fica permanentemente associado ao armazenamento de chaves personalizado. Depois de criar o armazenamento de chaves personalizado, você pode alterar o ID do cluster associado, mas o cluster que você especificar deverá compartilhar um histórico de backup com o cluster original. Para usar um cluster não relacionado, você precisa criar um novo armazenamento de chaves personalizado.

O cluster do AWS CloudHSM que você selecionar deve ter as seguintes características:

  • O cluster deve estar ativo.

    Você deve criar o cluster, iniciá-lo, instalar o software cliente do AWS CloudHSM para a sua plataforma e ativar o cluster. Para obter instruções detalhadas, consulte a seção Conceitos básicos do Manual do usuário do AWS CloudHSM.

  • O cluster deve estar na mesma conta e região que o armazenamento de chaves personalizado do AWS KMS. Não é possível associar um armazenamento de chaves personalizado em uma região a um cluster em uma região diferente. Para criar uma infraestrutura de chaves em várias regiões, você deverá criar armazenamentos de chaves e clusters em cada Região.

  • Não é possível associar o cluster a outro armazenamento personalizado de chaves na mesma conta e região. É necessário associar cada armazenamento personalizado de chaves na conta e região a um cluster diferente do AWS CloudHSM. Você não pode especificar um cluster que já esteja associado a um armazenamento de chaves personalizado, tampouco um cluster que compartilhe um histórico de backup com um cluster associado. Os clusters que compartilham um histórico de backup têm o mesmo certificado do cluster. Para visualizar o certificado de cluster de um cluster, use o console do AWS CloudHSM ou a operação DescribeClusters.

    Se você fizer backup de um cluster do AWS CloudHSM em uma região diferente, ele será considerado um cluster diferente e você poderá associar o backup a um armazenamento personalizado de chaves na região dele. No entanto, mesmo que tenham a mesma chave de reserva, as chaves do KMS nos dois armazenamentos personalizados de chaves não são interoperáveis. O AWS KMS vincula metadados ao texto cifrado, de modo que só é possível descriptografá-los com a chave do KMS que os criptografaram.

  • O cluster deve ser configurado com sub-redes privadas em pelo menos duas zonas de disponibilidade na região. Como o AWS CloudHSM não é compatível com todas as zonas de disponibilidade, recomendamos que você crie sub-redes privadas em todas as zonas de disponibilidade na região. Você não pode reconfigurar as sub-redes para um cluster existente, mas pode criar um cluster a partir de um backup com diferentes sub-redes na configuração do cluster.

    Importante

    Depois de criar seu armazenamento de chaves personalizado, não exclua nenhuma das sub-redes privadas configuradas para seu cluster do AWS CloudHSM. Se o AWS KMS não conseguiu localizar todas as sub-redes na configuração do cluster, as tentativas de se conectar ao armazenamento de chaves personalizadas falharão com um estado de erro de conexão SUBNET_NOT_FOUND. Para obter mais detalhes, consulte Como corrigir uma falha de conexão.

  • Cada sub-rede privada do cluster deve ter pelo menos um endereço IP disponível (é preferível ter dois) para conexão com o armazenamento de chaves personalizado. Se alguma sub-rede privada associada ao cluster estiver sem endereços IP, a conexão falhará com um código de erro de conexão INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET. Como não é possível adicionar endereços IP a uma sub-rede existente, se você não conseguir liberar espaço de endereço, será necessário criar um cluster a partir de um backup com uma sub-rede privada diferente.

  • O grupo de segurança para o cluster (cloudhsm-cluster-<cluster-id>-sg) deve incluir regras de entrada e de saída que permitam tráfego TCP nas portas 2223-2225. O Source (Origem) nas regras de entrada e o Destination (Destino) nas regras de saída deve corresponder ao ID do grupo de segurança. Essas regras são definidas por padrão quando você cria o cluster. Não as exclua nem as altere.

  • O cluster deve conter pelo menos dois HSMs ativos em diferentes zonas de disponibilidade. Para verificar o número de HSMs, use o console do AWS CloudHSM ou a operação DescribeClusters. Se necessário, você pode adicionar um HSM.

Localizar o certificado da âncora de confiança

Quando você cria um armazenamento de chaves personalizado, você deve fazer upload do certificado da âncora de confiança para o cluster do AWS CloudHSM para o AWS KMS. O AWS KMS precisa do certificado da âncora de confiança para conectar o armazenamento de chaves personalizado ao cluster.

Cada cluster do AWS CloudHSM ativo tem um certificado da âncora de confiança. Ao inicializar o cluster, você gera esse certificado, salve-o no customerCA.crt arquivo e copie-o em hosts que se conectam ao cluster.

Criar o usuário de criptografia kmsuser para o AWS KMS

Para administrar o armazenamento de chaves personalizado, o AWS KMS faz login na conta do usuário de criptografia kmsuser (CU) no cluster selecionado. Antes de criar o armazenamento de chaves personalizado, você deve criar o CU do kmsuser. Ao criar seu armazenamento de chaves personalizado, você fornece a senha para o kmsuser ao AWS KMS. O AWS KMS muda a senha do kmsuser sempre que você se conecta o armazenamento de chaves personalizado ao cluster do AWS CloudHSM associado.

Importante

Não especifique a opção 2FA ao criar o CU do kmsuser. Se você fizer isso, o AWS KMS não pode fazer login e o armazenamento de chaves personalizado não pode ser conectado a esse cluster do AWS CloudHSM. Ao especificar o código de autenticação de dois fatores, você não pode desfazê-lo. Em vez disso, você deve excluir o CU e recriá-lo.

Para criar o CU do kmsuser, use o procedimento a seguir.

  1. Inicie cloudhsm_mgmt_util conforme descrito na seção Preparar para executar cloudhsm_mgmt_util do Manual do usuário do AWS CloudHSM.

  2. Use o comando createUser em cloudhsm_mgmt_util para criar um CU chamado kmsuser. A senha deve conter de 7 a 32 caracteres alfanuméricos. Ela diferencia maiúsculas de minúsculas e não pode conter caracteres especiais.

    Por exemplo, o seguinte comando cria um CU do kmsuser com uma senha de kmsPswd.

    aws-cloudhsm> createUser CU kmsuser kmsPswd

Criar um armazenamento de chaves personalizado (console)

Ao criar um armazenamento de chaves personalizado no AWS Management Console, você pode adicionar e criar os pré-requisitos como parte de seu fluxo de trabalho. No entanto, o processo é mais rápido quando eles são organizados com antecedência.

  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 à esquerda, selecione Custom key stores (Armazenamentos de chaves personalizados).

  4. Selecione Create key store (Criar armazenamento de chaves).

  5. Digite um nome amigável para o armazenamento de chaves personalizado. O nome deve ser exclusivo na conta.

  6. Selecione um cluster do AWS CloudHSM para o armazenamento de chaves personalizado. Ou, para criar um novo cluster do AWS CloudHSM, escolha o link Create an AWS CloudHSM cluster (Criar um cluster do AWS CloudHSM).

    O cluster deve cumprir os requisitos para associação com um armazenamento de chaves personalizado. O menu exibe armazenamentos de chaves personalizados em sua conta e região que ainda não estão associados a um armazenamento de chaves personalizado.

  7. Selecione Upload file (Fazer upload do arquivo) e faça upload do certificado da âncora de confiança para o cluster do AWS CloudHSM que você escolheu. Esse é o arquivo customerCA.crt que você criou ao inicializar o cluster.

  8. Insira a senha do usuário de criptografia kmsuser (CU) que você criou no cluster selecionado.

  9. Escolha Create (Criar OpsItem).

Se o procedimento for bem-sucedido, o novo armazenamento de chaves personalizado aparecerá na lista de armazenamentos de chaves personalizados na conta e região. Se ele for malsucedido, será exibida uma mensagem de erro descrevendo o problema e fornecendo ajuda para corrigi-lo. Se precisar de ajuda adicional, consulte Solucionar problemas de um armazenamento de chaves personalizado.

Se você tentar criar um armazenamento personalizado de chaves com os mesmos valores de propriedade de um armazenamento personalizado de chaves existente desconectado, o AWS KMS não criará um novo armazenamento personalizado de chaves e não gerará uma exceção nem exibirá um erro. Em vez disso, o AWS KMS reconhecerá a duplicata como a possível consequência de uma nova tentativa e retornará o ID do armazenamento personalizado de chaves existente.

Avançar: Os novos armazenamentos de chaves personalizados não são conectados automaticamente. Antes de criar AWS KMS keys no armazenamento de chaves personalizado, conecte o armazenamento de chaves personalizado ao cluster do AWS CloudHSM associado.

Criar um armazenamento de chaves personalizado (API)

A operação CreateCustomKeyStore cria um novo armazenamento de chaves personalizado associado a um cluster do AWS CloudHSM na conta e região. Estes exemplos usam a AWS Command Line Interface (AWS CLI), mas você pode usar qualquer linguagem de programação compatível.

A operação CreateCustomKeyStore exige os seguintes valores de parâmetros.

  • CustomKeyStoreName: um nome amigável para o armazenamento de chaves personalizado que é exclusivo na conta.

  • CloudHsmClusterId: o ID de cluster de um cluster que cumpre os requisitos de associação com um armazenamento de chaves personalizado.

  • KeyStorePassword: a senha da conta de CU kmsuser no cluster especificado.

  • TrustAnchorCertificate: o conteúdo do arquivo customerCA.crt que você criou quando inicializou o cluster.

O exemplo a seguir usa um ID de cluster fictício. Antes de executar o comando, substitua-o por um ID de cluster válido.

$ aws kms create-custom-key-store --custom-key-store-name ExampleKeyStore \ --cloud-hsm-cluster-id cluster-1a23b4cdefg \ --key-store-password kmsPswd \ --trust-anchor-certificate <certificate-goes-here>

Se estiver usando a AWS CLI, você pode especificar o arquivo do certificado da âncora de confiança, em vez de seu conteúdo. No exemplo a seguir, o arquivo customerCA.crt no diretório raiz.

$ aws kms create-custom-key-store --custom-key-store-name ExampleKeyStore \ --cloud-hsm-cluster-id cluster-1a23b4cdefg \ --key-store-password kmsPswd \ --trust-anchor-certificate file://customerCA.crt

Quando a operação é bem-sucedida, CreateCustomKeyStore retorna o ID do armazenamento de chaves personalizado, conforme exibido na resposta de exemplo a seguir.

{ "CustomKeyStoreId": cks-1234567890abcdef0 }

Se a operação falhar, corrija o erro indicado pela exceção e tente novamente. Para obter ajuda adicional, consulte Solucionar problemas de um armazenamento de chaves personalizado.

Se você tentar criar um armazenamento personalizado de chaves com os mesmos valores de propriedade de um armazenamento personalizado de chaves existente desconectado, o AWS KMS não criará um novo armazenamento personalizado de chaves e não gerará uma exceção nem exibirá um erro. Em vez disso, o AWS KMS reconhecerá a duplicata como a possível consequência de uma nova tentativa e retornará o ID do armazenamento personalizado de chaves existente.

Para usar o armazenamento de chaves personalizado, conecte-o ao cluster do AWS CloudHSM.