Configuración de un almacén para un punto final personalizado

Para crear un punto final personalizado para la instancia de Visual Builder, puede utilizar el servicio de gestión de claves de OCI para crear un almacén que almacene las claves de cifrado maestras y los secretos utilizados para proteger el acceso al punto final personalizado.

En la consola de OCI, creará un almacén de OCI en el compartimento en el que desea crear el punto final personalizado. Para obtener más información sobre cómo trabajar con almacenes, consulte Trabajar con compartimentos, Visión general de almacén y Crear un nuevo almacén.

Nota

Si utiliza un equilibrador de carga y un WAF para proteger el punto final personalizado, no es necesario crear un almacén.

Después de crear y configurar un almacén en la consola de OCI, puede configurar el primer punto final personalizado (principal) de su instancia en la página de detalles de la instancia de Visual Builder. Si la instancia ya tiene un punto final principal y desea agregar otro, debe crear un punto final alternativo desde la línea de comandos. Del mismo modo, si la instancia ya tiene varios puntos finales personalizados y desea editar cualquiera de ellos, también debe hacerlo desde la línea de comandos. Para obtener más información, consulte Creación y actualización de puntos finales alternativos.

Al crear el secreto en el almacén, deberá proporcionar un certificado secreto que contenga:

  • el certificado SSL del nombre de host,
  • la clave privada coincidente, y
  • Todos los certificados intermedios de la cadena SSL.

También deberá proporcionar una frase de contraseña si el certificado SSL requiere una. Puede obtenerlos de su proveedor de certificados SSL.

Nota

Puede utilizar openssl para validar el certificado SSL y la clave privada.

Para crear y configurar un almacén de OCI en la consola de OCI:

  1. En la consola de OCI, haga clic en Menú de navegación el icono de menú, seleccione Identidad y seguridad y, a continuación, seleccione Almacén para abrir la página Almacenes.
  2. En la página Almacenes, haga clic en Crear almacén para abrir el panel Crear almacén.

    En el panel Crear almacén, confirme que está creando el almacén en el compartimento correcto. Si no está en el compartimento correcto, seleccione el compartimento en la lista desplegable Crear en compartimento.

  3. Introduzca un nombre para el archivo nativo. Haga clic en Crear almacén para volver a la página Almacenes.


    Después de hacer clic en Create Vault, el nuevo almacén puede tardar unos minutos en aparecer en la tabla de la página Almacenes.

  4. En la tabla de la página Almacenes, haga clic en el nombre del almacén que ha creado para abrir la página de detalles del almacén.
  5. Cree una clave para el almacén de cifrado maestra.
    1. Abra el separador Claves de cifrado maestras del almacén.
    2. Haga clic en Crear clave para abrir el panel Crear clave.
    3. Introduzca un nombre para la clave en el campo Name.

      Para crear la clave, solo necesita introducir un nombre. Utilice la configuración por defecto para las otras opciones.

    4. Haga clic en Crear clave para volver al separador Claves de cifrado maestras.
  6. Crear el secreto.

    Almacene el certificado como un secreto en OCI Vault. Para obtener más información sobre secretos, consulte Creación de un nuevo secreto.

    1. Abra el separador Secretos del almacén.
    2. Haga clic en Crear secreto para abrir el panel Crear secreto.
    3. Introduzca un nombre y una descripción para el secreto.
    4. En la lista desplegable Clave de cifrado, seleccione la clave que ha creado en el separador Claves de cifrado maestras.
    5. Seleccione Generación manual de secretos.

      Asegúrese de seleccionar explícitamente la generación de secretos manuales. El valor por defecto es Generación automática de secretos.



    6. Genere el certificado secreto y péguelo en el campo Contenido del secreto.

      Utilice el siguiente formato para el 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>"
      }
      Al generar el certificado, tenga en cuenta los siguientes requisitos de certificado:
      • Los elementos key y cert son necesarios.
      • Cada certificado intermedio se debe especificar como un elemento independiente en una matriz intermediates. En la mayoría de los casos sólo habrá un intermediario. El intermediario lo proporciona el proveedor SSL.
      • Asegúrese siempre de que la CA raíz final se especifica como el último elemento de la matriz. Por ejemplo, si hay tres certificados intermedios para el certificado de hoja, el certificado que emitió el certificado de hoja debe ser el elemento intermediates[0], el certificado que emitió el certificado intermediates[0] debe ser el elemento intermediates[1] y el certificado que emitió el certificado intermediates[1] debe ser el elemento intermediates[2].
      • El atributo passphrase solo es necesario si la clave privada está cifrada con una frase de contraseña. No incluya el atributo si no es necesario.
      • Si se utiliza una clave privada cifrada, se necesita el siguiente formato (se admite PKCS1):
        -----BEGIN RSA PRIVATE KEY-----
        Proc-Type: 4,ENCRYPTED
        -----END RSA PRIVATE KEY-----
        

        Un archivo JSON con una clave privada cifrada tiene el siguiente aspecto:

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

        Un archivo JSON con una clave privada no cifrada tiene el siguiente aspecto:

        {
          "key": "-----BEGIN RSA PRIVATE KEY-----\nvRXUK08v31bw2rnDLw+vjuX2i8ujHWs\n....\n-----END RSA PRIVATE KEY-----",
        ..
        ..
        }
        
      • Si la clave privada tiene el formato PKCS8, debe convertirla al formato PKCS1:
        openssl rsa -in <input_pkcs8_encrypted_private_key> -out <converted_encrypted_private_key_file_name> -aes256
      Nota

      Se recomienda generar el certificado JSON desde la línea de comandos de Linux/Unix o las utilidades de Unix para garantizar que las terminaciones de línea estén codificadas correctamente. Las terminaciones de línea incorrectas generarán un error.

      • Para evitar errores manuales, también puede convertir el certificado PEM en una única línea que contenga "\n", como se esperaba, con los siguientes comandos awk.

        Para el certificado de hoja:

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

        Para cada certificado intermedio/root:

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

        Para la clave privada:

        awk -v RS= '{gsub(/\n+/, "\\n")}1' <private_key_pem_file>
      • La versión más reciente del secreto se utiliza al asociar un punto final personalizado a la instancia mediante la operación de creación o edición de instancia. Para obtener información sobre las versiones del secreto, consulte Versiones del secreto y estados de rotación.
      • Si utiliza un certificado de nombre de host cuya autoridad de certificación (CA) no está en el almacén de confianza de Visual Builder, también debe cargar el certificado en la instancia de Visual Builder; de lo contrario, se devuelve una excepción en los escenarios a los que la instancia se llama a sí misma.

      Utilice la configuración por defecto para las otras opciones de la página Crear secreto.

    7. Haga clic en Crear secreto para volver al separador Secretos.
  7. Creación de una política de Identity and Access Management (IAM) para:
    1. Permita que el servicio Visual Builder lea la versión y el contenido del secreto.

      A continuación, se muestra la sintaxis de política para un servicio de Visual Builder:

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

      A continuación, se incluye un ejemplo:

      allow group VBInstanceAdmins to read secret-bundle in compartment MySecretCompartment

      Si la instancia de VB NO está en un dominio por defecto, debe incluir el prefijo de dominio delante del nombre de grupo.

      A continuación, se incluye un ejemplo:

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

    2. Permita que el grupo de administradores acceda al secreto, la clave y el almacén (o cree un nuevo secreto, clave y almacén) al crear o actualizar una instancia de Visual Builder con un punto final personalizado.

      A continuación, se muestra la sintaxis de 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>

      y estos son ejemplos:

      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

      Si la instancia de VB NO está en un dominio por defecto, debe incluir el prefijo de dominio delante del nombre de grupo.

      A continuación le mostramos ejemplos:

      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

    Tenga en cuenta que debe especificar el recurso que se devolverá en <resource-type>, como se describe en Detalles del servicio Vault.

    Para ver la sintaxis de la sentencia de política, consulte la Tabla 3-1 anterior y la Solicitud de API CreatePolicy.