Configurar um Vault para um Ponto Final Personalizado

Para criar um ponto final personalizado para sua instância do Visual Builder, você pode usar o Serviço Key Management no OCI para criar um vault para armazenar as chaves de criptografia principais e os segredos usados para proteger o acesso ao seu ponto final personalizado.

Na Console do OCI, você cria um vault do OCI no compartimento no qual deseja criar seu ponto final personalizado. Para obter mais detalhes sobre como trabalhar com vaults, consulte Como Trabalhar com Compartimentos, Visão Geral do Serviço Vault e Criar um Novo Vault.

Observação

Se você estiver usando um WAF e um balanceador de carga para proteger seu ponto final personalizado, não precisará criar um vault.

Depois de criar e configurar um vault na Console do OCI, você poderá configurar o primeiro ponto final personalizado (principal) da sua instância na página de detalhes da Instância do Visual Builder. Se sua instância já tiver um ponto final principal e você quiser adicionar outro, crie um ponto final alternativo na linha de comando. Da mesma forma, se sua instância já tiver vários pontos finais personalizados e você quiser editar qualquer um deles, também precisará fazer isso na linha de comando. Para obter detalhes, consulte Criar e Atualizar Pontos Finais Alternativos.

Ao criar o segredo no seu vault, você precisará fornecer um certificado secreto que contenha:

  • o certificado SSL do nome do host,
  • a chave privada correspondente, e
  • todos os certificados intermediários na cadeia SSL.

Você também precisará fornecer uma frase-senha se o certificado SSL exigir uma. Você pode obtê-los do seu provedor de certificados SSL.

Observação

Você pode usar openssl para validar o certificado SSL e a chave privada.

Para criar e configurar um vault do OCI na Console do OCI:

  1. Na Console do OCI, clique em Menu de Navegação o ícone Menu, selecione Identidade e Segurança e, em seguida, selecione Vault para abrir a página Vaults.
  2. Na página Vaults, clique em Criar Vault para abrir o painel Criar Vault.

    No painel Criar Vault, confirme se você está criando o vault no compartimento correto. Se você não estiver no compartimento correto, selecione o compartimento na lista drop-down Criar no Compartimento.

  3. Informe um nome para o vault. Clique em Criar Vault para retornar à página Vaults.


    Depois que você clicar em Criar Vault, poderá levar alguns minutos para que o novo vault apareça na tabela da página Vaults.

  4. Na tabela da página Vaults, clique no nome do vault criado para abrir a página de detalhes do vault.
  5. Crie uma chave mestre de criptografia para o vault.
    1. Abra a guia Chaves de Criptografia Principais do vault.
    2. Clique em Criar Chave para abrir o painel Criar Chave.
    3. Informe um nome para a chave no campo Nome.

      Para criar a chave, você só precisa inserir um nome. Use as configurações padrão para as outras opções.

    4. Clique em Criar Chave para retornar à guia Chaves de Criptografia Principais.
  6. Crie o segredo.

    Armazene o certificado como segredo no OCI Vault. Para obter mais informações sobre segredos, consulte Criar um Novo Segredo.

    1. Abra a guia Segredos do vault.
    2. Clique em Criar Segredo para abrir o painel Criar Segredo.
    3. Informe um nome e uma descrição para o segredo.
    4. Na lista drop-down Chave de Criptografia, selecione a chave criada na guia Chaves de Criptografia Principais.
    5. Selecione Geração manual de segredo.

      Certifique-se de selecionar explicitamente a geração de segredo Manual. O padrão é Geração automática de segredo.



    6. Gere o certificado secreto e cole-o no campo Conteúdo do Segredo.

      Use o seguinte formato para o certificado:

      {
        "key": "-----BEGIN PRIVATE KEY-----\n…..-----END PRIVATE KEY-----\n",
        "cert": "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
        "intermediates": [
          "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
          "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n"
        ],
        "passphrase": "<private key password if encrypted key is provided>"
      }
      Ao gerar o certificado, observe os seguintes requisitos de certificado:
      • Os elementos key e cert são obrigatórios.
      • Cada certificado intermediário deve ser especificado como um elemento separado em um array intermediates. Na maioria dos casos, haverá apenas um intermediário. O intermediário é fornecido pelo provedor SSL.
      • Sempre certifique-se de que a CA raiz final seja especificada como o último elemento na matriz. Por exemplo, se houver três certificados intermediários para o certificado de folha, o certificado que emitiu o certificado de folha deverá ser o elemento intermediates[0], o certificado que emitiu o certificado intermediates[0] deverá ser o elemento intermediates[1] e o certificado que emitiu o certificado intermediates[1] deverá ser o elemento intermediates[2].
      • O atributo passphrase só será necessário se a chave privada for criptografada com uma frase-senha. Não inclua o atributo se ele não for obrigatório.
      • Se estiver usando uma chave privada criptografada, o seguinte formato será necessário (o PKCS1 será suportado):
        -----BEGIN RSA PRIVATE KEY-----
        Proc-Type: 4,ENCRYPTED
        -----END RSA PRIVATE KEY-----
        

        Um arquivo JSON com uma chave privada criptografada tem a seguinte aparência:

        {
          "key": "-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\n....\n-----END RSA PRIVATE KEY-----",
        ..
        ..
          "passphrase": "<passphrase to decrypt the key>"
        }
        

        Um arquivo JSON com uma chave privada não criptografada tem a seguinte aparência:

        {
          "key": "-----BEGIN RSA PRIVATE KEY-----\nvRXUK08v31bw2rnDLw+vjuX2i8ujHWs\n....\n-----END RSA PRIVATE KEY-----",
        ..
        ..
        }
        
      • Se sua chave privada estiver no formato PKCS8, você deverá convertê-la no formato PKCS1:
        openssl rsa -in <input_pkcs8_encrypted_private_key> -out <converted_encrypted_private_key_file_name> -aes256
      Observação

      É altamente recomendável que você gere o certificado JSON da linha de comando Linux/Unix, ou utilitários Unix, para garantir que os finais da linha sejam codificados corretamente. Finalizações de linha incorretas resultarão em um erro.

      • Para evitar erros manuais, você também pode converter seu certificado PEM em uma única linha que contenha "\n", conforme esperado, com os seguintes comandos awk.

        Para o certificado folha:

        awk -v RS= '{gsub(/\n+/, "\\n")}1' <cert_pem_file>

        Para cada certificado intermédio/raiz:

        awk -v RS= '{gsub(/\n+/, "\\n")}1' <each_intermediate_cert_pem_file>

        Para a chave privada:

        awk -v RS= '{gsub(/\n+/, "\\n")}1' <private_key_pem_file>
      • A versão mais recente do segredo é usada quando você associa um ponto final personalizado à sua instância por meio da operação de criação ou edição de instância. Para obter informações sobre versões de segredo, consulte Versões de Segredo e Estados de Rotação.
      • Se você usar um certificado de nome de host cuja autoridade de certificação (CA) não esteja no armazenamento confiável do Visual Builder, também deverá fazer upload do certificado para sua instância do Visual Builder; caso contrário, uma exceção será gerada nos cenários que a instância chama a si mesma.

      Use as definições padrão para as outras opções na página Criar Segredo.

    7. Clique em Criar Segredo para retornar à guia Segredos.
  7. Crie uma política de IAM (Identity and Access Management) para:
    1. Permita que o serviço Visual Builder leia a versão e o conteúdo do segredo.

      Esta é a sintaxe de política para um serviço do Visual Builder:

      allow group <group-name> to read secret-bundle in compartment <secrets-compartment>

      Veja um exemplo:

      allow group VBInstanceAdmins to read secret-bundle in compartment MySecretCompartment

      Se a instância do VB NÃO estiver em um domínio padrão, você precisará incluir o prefixo do domínio na frente do nome do grupo.

      Veja um exemplo:

      Allow group mydomain/VBInstanceAdmins to read secret-bundle in compartment MySecretCompartment

    2. Permita que o grupo de administradores acesse o segredo, a chave e o vault (ou crie um novo segredo, chave e vault), ao criar ou atualizar uma instância do Visual Builder com um ponto final personalizado.

      Aqui está a sintaxe da política:

      allow group <group-name> to manage secrets in compartment <secrets-compartment>

      allow group <group-name> to manage keys in compartment <secrets-compartment>

      allow group <group-name> to manage vaults in compartment <secrets-compartment>

      e estes são exemplos:

      Allow group VBInstanceAdmins to manage secrets in compartment MySecretCompartment

      Allow group VBInstanceAdmins to manage keys in compartment MySecretCompartment

      Allow group VBInstanceAdmins to manage vaults in compartment MySecretCompartment

      Se a instância do VB NÃO estiver em um domínio padrão, você precisará incluir o prefixo do domínio na frente do nome do grupo.

      Veja alguns exemplos:

      Allow group mydomain/VBInstanceAdmins to manage secrets in compartment MySecretCompartment

      Allow group mydomain/VBInstanceAdmins to manage keys in compartment MySecretCompartment

      Allow group mydomain/VBInstanceAdmins to manage vaults in compartment MySecretCompartment

    Observe que você deve especificar o recurso a ser retornado no <resource-type>, conforme descrito em Detalhes do Serviço Vault.

    Para obter a sintaxe da instrução de política, consulte a Tabela 3-1 acima e a Solicitação de API CreatePolicy.