Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda> Data Encryption Workshop> Referência de API> Exemplos de aplicação> Exemplo 2: criptografia ou descriptografia de grandes volumes de dados
Atualizado em 2023-02-28 GMT+08:00

Exemplo 2: criptografia ou descriptografia de grandes volumes de dados

Cenário

Criptografar ou descriptografar uma grande quantidade de dados.

  • Processo de criptografia:
    1. Crie uma CMK no KMS.
    2. Chame a API da criação de chave de dados do KMS para criar uma DEK. Uma DEK de texto não criptografado e uma DEK de texto cifrado serão geradas. A DEK de texto cifrado foi gerada usando uma CMK para criptografar a DEK de texto não criptografado.
    3. Use a DEK de texto não criptografado para criptografar um arquivo de texto não criptografado, gerando um arquivo de texto cifrado.
    4. Armazene o DEK de texto cifrado e o arquivo de texto cifrado juntos em um dispositivo de armazenamento permanente ou um serviço de armazenamento.
  • Processo de descriptografia:
    1. Leia a DEK de texto cifrado e o arquivo de texto cifrado do dispositivo de armazenamento permanente ou do serviço de armazenamento.
    2. Chame a API de descriptografia de chave de dados e use a CMK de criptografia para descriptografar a DEK de texto cifrado. A DEK de texto não criptografado será gerada.

      Se a CMK for excluída, a descriptografia falhará. Mantenha corretamente suas CMKs.

    3. Use a DEK de texto não criptografado para descriptografar o arquivo de texto cifrado.

As APIs envolvidas

As APIs usadas para as seguintes operações estão envolvidas:

Procedimento

  1. Crie uma CMK.

    • Informações da API

      Formato de URI: POST /v1.0/{project_id}/kms/create-key

      Para obter detalhes, consulte Criação de uma CMK.

      As chaves principais padrão são criadas por serviços integrados ao KMS. Os nomes das chaves principais padrão terminam com /default. Não termine seus nomes de CMK com /default.

    • Exemplo de solicitação

      POST: https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/create-key

      Obtenha {endpoint} de Regiões e pontos de extremidade.

      Corpo:

      {
          "key_alias": "test"
      }
    • Exemplo de resposta
      {
          "key_info": {
              "key_id": "bb6a3d22-dc93-47ac-b5bd-88df7ad35f1e",
              "domain_id": "b168fe00ff56492495a7d22974df2d0b"
          }
      }

  2. Crie uma DEK.

    • Informações da API

      Formato de URI: POST /v1.0/{project_id}/kms/create-datakey

      Para obter detalhes, consulte Criação de uma DEK.

    • Exemplo de solicitação

      POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/create-datakey

      Obtenha {endpoint} de Regiões e pontos de extremidade.

      Você pode usar a API para Consulta da lista de CMKs para verificar informações de chave, incluindo key_id.

      Corpo:

      {
          "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
          "datakey_length": "512"
      }
    • Exemplo de resposta
      {
          "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
          "plain_text": "8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72A5A17F17B5EF0D525872C59ECEB72948AF85E18427F8BE0D46545C979306C08D",
          "cipher_text": "020098009EEAFCE122CAA5927D2E020086F9548BA1675FDB022E4ECC01B96F2189CF4B85E78357E73E1CEB518DAF7A4960E7C7DE8885ED3FB2F1471ABF400119CC1B20BD3C4A9B80AF590EFD0AEDABFDBB0E2B689DA7B6C9E7D3C5645FCD9274802586BE63779471F9156F2CDF07CD8412FFBE9230643034363662302D653732372D346439632D623335642D6638346262343734613337660000000045B05321483BD9F9561865EE7DFE9BE267A42EB104E98C16589CE46940B18E52"
      }

  3. Criptografe a DEK.

    • Informações da API

      Formato de URI: POST /v1.0/{project_id}/kms/encrypt-datakey

      Para obter detalhes, consulte Criptografia de uma DEK.

    • Exemplo de solicitação

      POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/encrypt-datakey

      Obtenha {endpoint} de Regiões e pontos de extremidade.

      Você pode usar a API para Consulta da lista de CMKs para verificar informações de chave, incluindo key_id.

      Corpo:

      {
          "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
          "plain_text": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F5A5FD42D16A20302798EF6ED309979B43003D2320D9F0E8EA9831A92759FB4B",
          "datakey_plain_length": "64"
      }
    • Exemplo de resposta
      {
          "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
          "cipher_text": "020098005273E14E6E8E95F5463BECDC27E80AF820B9FC086CB47861899149F67CF07DAFF2810B7D27BDF19AB7632488E0926A48DB2FC85BEA905119411B46244C5E6B8036C60A0B0B4842FFE6994518E89C19B1C1D688D9043BCD6053EA7BA0652642CE59F2543C80669139F4F71ABB9BD9A24330643034363662302D653732372D346439632D623335642D66383462623437346133376600000000D34457984F9730D57F228C210FD22CA6017913964B21D4ECE45D81092BB9112E",
          "datakey_length": "64"
      }

  4. Descriptografe a DEK.

    • Informações da API

      Formato de URI: POST /v1.0/{project_id}/kms/decrypt-datakey

      Para obter detalhes, consulte Descriptografia de uma DEK.

    • Exemplo de solicitação

      POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/decrypt-datakey

      Obtenha {endpoint} de Regiões e pontos de extremidade.

      Você pode usar a API para Consulta da lista de CMKs para verificar informações de chave, incluindo key_id.

      Corpo:

      {
          "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
          "datakey_cipher_length": "64",
          "cipher_text": "020098005273E14E6E8E95F5463BECDC27E80AF820B9FC086CB47861899149F67CF07DAFF2810B7D27BDF19AB7632488E0926A48DB2FC85BEA905119411B46244C5E6B8036C60A0B0B4842FFE6994518E89C19B1C1D688D9043BCD6053EA7BA0652642CE59F2543C80669139F4F71ABB9BD9A24330643034363662302D653732372D346439632D623335642D66383462623437346133376600000000D34457984F9730D57F228C210FD22CA6017913964B21D4ECE45D81092BB9112E"
      }
    • Exemplo de resposta
      {
          "data_key": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
          "datakey_length": "64",
          "datakey_dgst": "F5A5FD42D16A20302798EF6ED309979B43003D2320D9F0E8EA9831A92759FB4B"
      }