Criar usuários com 2FA habilitada para usuários do AWS CloudHSM Management Utility - AWS CloudHSM

Criar usuários com 2FA habilitada para usuários do AWS CloudHSM Management Utility

Use o AWS CloudHSM Management Utility (CMU) e o par de chaves para criar um novo usuário responsável pela criptografia com a autenticação de dois fatores (2FA) habilitada.

Para criar usuários de CO com 2FA habilitado
  1. Em um terminal, execute as seguintes etapas:

    1. Acesse seu HSM e faça login no utilitário de gerenciamento do CloudHSM:

      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
    2. Faça login como CO e use o comando a seguir para criar um novo usuário do MFA com 2FA:

      aws-cloudhsm>createUser CO MFA <CO USER NAME> -2fa /home/ec2-user/authdata *************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)? yCreating User exampleuser3(CO) on 1 nodesAuthentication data written to: "/home/ec2-user/authdata"Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below.Leave this field blank to use the path initially provided.Enter filename:
    3. Deixe o terminal acima nesse estado. Não pressione enter nem insira nenhum nome de arquivo.

  2. Em outro terminal, execute as seguintes etapas:

    1. Acesse seu HSM e faça login no utilitário de gerenciamento do CloudHSM:

      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
    2. Gere um par de chaves público-privado usando os seguintes comandos:

      openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
      openssl rsa -pubout -in private_key.pem -out public_key.pem
    3. Execute o comando a seguir para instalar um recurso de consulta json para extrair o resumo do arquivo authdata:

      sudo yum install jq
    4. Para extrair o valor do resumo, primeiro encontre os seguintes dados no arquivo authdata:

      { "Version":"1.0", "PublicKey":"", "Data":[ { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature":"" } ] }
      nota

      O resumo obtido é codificado em base64. No entanto, para assinar o resumo, primeiro você precisa que o arquivo seja decodificado e depois assinado. O comando a seguir decodificará o resumo e armazenará o conteúdo decodificado em “digest1.bin”

      cat authdata | jq '.Data[0].Digest' | cut -c2- | rev | cut -c2- | rev | base64 -d > digest1.bin
    5. Converta o conteúdo da chave pública, adicionando "\n" e removendo espaços conforme mostrado aqui:

      -----BEGIN PUBLIC KEY-----\n<PUBLIC KEY>\n-----END PUBLIC KEY-----
      Importante

      O comando acima mostra como "\n" é adicionado imediatamente depois de BEGIN PUBLIC KEY-----, os espaços entre "\n" e o primeiro caractere da chave pública são removidos, "\n" é adicionado antes -----END PUBLIC KEY e os espaços são removidos entre "\n" e o final da chave pública.

      Esse é o formato PEM para chave pública aceito no arquivo authdata.

    6. Cole o conteúdo do formato pem da chave pública na seção de chave pública no arquivo authdata.

      vi authdata
      { "Version":"1.0", "PublicKey":"-----BEGIN PUBLIC KEY-----\n<"PUBLIC KEY">\n-----END PUBLIC KEY-----", "Data":[ { "HsmId":<"HSM ID">, "Digest":<"DIGEST">, "Signature":”” } ] }
    7. Assine um arquivo de token usando o seguinte comando:

      openssl pkeyutl -sign -in digest1.bin -inkey private_key.pem -pkeyopt digest:sha256 | base64 Output Expected: <"THE SIGNATURE">
      nota

      Conforme mostrado no comando acima, use openssl pkeyutl em vez de openssl dgst para assinar.

    8. Adicione o resumo assinado no arquivo Authdata no campo “Assinatura”.

      vi authdata
      { "Version": "1.0", "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----", "Data": [ { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature": "Kkdl ... rkrvJ6Q==" }, { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature": "K1hxy ... Q261Q==" } ] }
  3. Volte para o primeiro terminal e pressione Enter:

    Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below. Leave this field blank to use the path initially provided. Enter filename: >>>>> Press Enter here createUser success on server 0(10.0.1.11)