Rotación de secreto de base de datos con función de cartera

Descubra cómo utilizar la función predefinida Rotación de secretos de base de datos con cartera en OCI Functions para rotar secretos mediante la conexión mTLS a la base de datos.

Casos de Uso Común

Utilice la rotación de secretos de base de datos con PBF de cartera para rotar automáticamente secretos de la base de datos mediante una conexión JDBC con una cartera (mTLS). .

Los servicios relacionados con la función Rotación de secreto de base de datos con cartera incluyen:

Ámbito

Las consideraciones de ámbito para esta función incluyen:

  • La función predefinida se puede utilizar con cualquier base de datos que soporte una URL de JDBC.
  • El servicio secreto utiliza la función creada por la función creada previamente para rotar los secretos de la base de datos.
  • La rotación de secretos de base de datos con PBF de cartera se utiliza con Autonomous Database. Para obtener más información sobre Autonomous Database, consulte Autonomous Database.

Requisitos y recomendaciones

A continuación, se muestran las mejores prácticas al utilizar esta función incorporada:

  • Establezca el tiempo de espera de la función predefinida en 300 segundos.
  • La VCN enlazada a la aplicación facilita el acceso a otros servicios de OCI mediante un gateway de servicio, un gateway de Internet o un gateway de NAT.

Configuración de la rotación de secreto de base de datos con la función de cartera

Para configurar una rotación de secreto de base de datos con la función de cartera, realice los siguientes pasos:

  1. En la página Funciones predefinidas, seleccione Rotación de secreto de base de datos con cartera y, a continuación, seleccione Crear función.
  2. Configure el nombre, el compartimento y la aplicación de la siguiente forma:
    • Nombre: nombre que desea para la nueva función. El nombre debe comenzar con una letra o guion bajo, seguido de letras, números, guiones o guiones bajos. La longitud puede abarcar entre 1 y 255 caracteres. Evite introducir información confidencial.

      Para crear la función en un compartimento diferente, seleccione Cambiar compartimento.

    • Aplicación: seleccione la aplicación en la que desea crear la función.

      Si aún no existe una aplicación adecuada en el compartimento actual, seleccione Crear nueva aplicación y especifique los siguientes detalles:

      • Nombre: nombre de la nueva aplicación. Evite introducir información confidencial.
      • VCN: la VCN (red virtual en la nube) en la que se ejecutan funciones en la aplicación. Opcionalmente, seleccione Compartimento de VCN: para seleccionar un VCN de otro compartimento.
      • Subredes: subred (o subredes, hasta un máximo de tres) en las que ejecutar funciones. Opcionalmente, seleccione Compartimento de subredes: para seleccionar una subred de un compartimento diferente.
      • Unidad: arquitectura de procesador de las instancias informáticas en las que desplegar y ejecutar funciones en la aplicación. Todas las funciones de la aplicación se despliegan y ejecutan en instancias informáticas con la misma arquitectura. La imagen de la función debe contener las dependencias necesarias para la arquitectura que seleccione.
      • Etiquetas: si tiene permisos para crear un recurso, también tiene permisos para aplicar etiquetas de formato libre a ese recurso. Etiquetas Para aplicar una etiqueta defined, debe tener permisos para utilizar el espacio de nombres de la etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si desea aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar etiquetas más tarde.
  3. Configure la política de IAM para funciones predefinidas.

    Por defecto, OCI Functions crea un grupo dinámico y una política de IAM con las sentencias de política necesarias para ejecutar la función predefinida. No realice cambios para aceptar el comportamiento predeterminado.

    Si no desea que OCI Functions cree automáticamente el grupo dinámico y la política, seleccione No crear un grupo dinámico ni una política de IAM.

    Importante

    Si selecciona la opción No crear un grupo dinámico y una política de IAM, debe definir el grupo dinámico y la política de IAM usted mismo.
  4. Configure la memoria de la función y los valores de timeout de la siguiente manera:
    • Memoria (en MB): cantidad máxima de memoria que la función puede utilizar mientras se ejecuta, en megabytes. Esta es la memoria disponible para la imagen de la función. (Valor predeterminado: 512 MB)
    • Timeout (en segundos): cantidad máxima de tiempo durante la que se puede ejecutar la función, en segundos. Si la función no se completa en el tiempo especificado, el sistema cancela la función. (Valor por Defecto: 300)
  5. (Opcional) Configure la simultaneidad aprovisionada para minimizar los retrasos iniciales al llamar a la función especificando un número mínimo de llamadas a funciones simultáneas para las que desea que la infraestructura de ejecución esté disponible constantemente. (Valor por defecto: No activado)

    Si se selecciona, especifique el número de unidades de simultaneidad aprovisionadas asignadas a esta función. Por defecto: 20.

    Para obtener más información sobre la simultaneidad aprovisionada, consulte Reducing Initial Latency Using Provisioned Concurrency.

  6. Opcionalmente, introduzca cualquier etiqueta en la sección Etiquetas. Si tiene permisos para crear un recurso, también tiene permisos para aplicar etiquetas de formato libre a dicho recurso. Para aplicar una etiqueta defined, debe tener permisos para utilizar el espacio de nombres de la etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si desea aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar etiquetas más tarde.
  7. Haga clic en Crear.

El cuadro de diálogo de despliegue muestra las tareas para desplegar la función (consulte Finalización del despliegue de funciones incorporadas).

Opciones de Configuración

Llamando a esta función

El servicio secreto utiliza la función creada con este PBF para rotar secretos.
  1. Cree una función con este PBF y copie el ID de función.
    1. Abra el menú de navegación, seleccione Identidad y seguridad y, a continuación, seleccione Almacén.
    2. En Ámbito de lista, seleccione un compartimento que contenga los secretos que ha creado en un almacén.
    3. En la lista de secretos, seleccione un nombre de secreto que necesite rotar mediante este PBF o cree un nuevo secreto.
  2. Seleccione Tipo de sistema de destino como Función para las rotaciones.
  3. Agregue el ID de función copiado del paso 1 como ID de sistema de destino.
  4. Asegúrese de que el secreto cumpla estos requisitos:
    • El secreto debe tener activada la generación automática.
    • Se espera que el contenido secreto sea una cadena JSON con el siguiente formato:
      {
       ‘username’: <required: username>,
       ‘password’: <required: password>,
       ‘adbId’: <required: adbId>,
       ‘tnsName’: <required: tnsName (adbName + ‘_high/_low/_medium’)>
      }
    • El nombre de usuario y la contraseña deben establecer una conexión con la base de datos con el formato: jdbc:oracle:thin:@<tnsName>?TNS_ADMIN=<walletDirectory>
    • Se espera que el secreto tenga tnsName (que es adbName + '_high/_low/_medium') y adbId como parte del contenido del secreto.
    • Asegúrese de utilizar la conexión mTLS. Consulte Conexiones JDBC Thin con una cartera (mTLS)

Solución de problemas de

Una ejecución de función creada previamente devuelve un código de error 502 si el código de la función creada previamente encuentra algún problema. Para identificar la causa, active las funciones de registro para la función creada previamente (consulte Llamada a una función devuelve un mensaje de fallo de función y un error 502).

Consejo

Para obtener información detallada sobre la solución de problemas de una función, consulte Solución de problemas de OCI Functions.

Consejos de análisis de logs

  • Dado que una aplicación tiene varias funciones, las entradas del log de funciones predefinidas se identifican con el prefijo "PBF | <PBF NAME> ".

    Por ejemplo, una entrada de log para la rotación de secreto de base de datos con la función incorporada de cartera tiene un aspecto similar al siguiente:

    "PBF | Database Secret Rotation with Wallet | INFO | 2024-01-31T18:06:50.809Z | Fetching details from Events JSON"
  • Todas las funciones predefinidas proporcionan una opción para especificar el nivel de registro como parámetro de configuración. Puede definir el nivel de registro en DEBUG para obtener más información.

En la siguiente tabla se resumen los errores comunes que puede encontrar al trabajar con funciones creadas previamente:

Código de Error Mensaje de Error Acción
404 NotAuthorizedOrNotFound Verifique que las políticas necesarias estén configuradas.

En la siguiente tabla se resumen los códigos de estado de respuesta que puede encontrar al trabajar con esta función creada previamente:

Escalón Código de Estado Mensaje de Respuesta Descripción
VERIFY_CONNECTION 200 La conexión con la versión del secreto pendiente se ha realizado correctamente. Existe una versión pendiente del secreto y la conexión a la base de datos se ha establecido correctamente con esa versión.
La conexión con la versión del secreto actual se ha realizado correctamente. La conexión a la base de datos se ha realizado correctamente con la versión del secreto actual.
400 La conexión con la versión del secreto actual no se ha realizado correctamente. Credenciales no válidas en la versión del secreto actual o en cualquier versión pendiente, si existe.
404 No se ha encontrado la versión actual del secreto No existe ninguna versión actual del secreto con el secretId proporcionado.
500 <MENSAJE DE EXCEPCIÓN> Se lanza cuando se produce alguna excepción al verificar la conexión.
CREATE_PENDING_VERSION 200 La versión pendiente ya existe. Ya existe una versión pendiente del secreto. No crea una nueva versión pendiente.
La versión pendiente se ha creado correctamente. No existe una versión pendiente, se crea una nueva versión pendiente del secreto.
<CÓDIGO DE EXCEPCIÓN> Fallo al crear la versión pendiente. Excepción del cliente de DP al intentar crear una nueva versión pendiente del secreto.
500 <MENSAJE DE EXCEPCIÓN> Se lanza cuando se produce alguna excepción al crear una nueva versión.
UPDATE_TARGET_SYSTEM 200 El sistema de destino ya se ha actualizado. La base de datos se puede conectar mediante la versión del secreto pendiente, lo que indica que esta versión se ha utilizado anteriormente para actualizar las credenciales de la base de datos.
Sistema de destino actualizado correctamente Las credenciales de base de datos se han actualizado con la versión pendiente del secreto.
404 No existe ninguna versión pendiente. No existe ninguna versión pendiente del secreto que se pueda utilizar para actualizar el sistema de destino.
500 Fallo de actualización del sistema de destino. Se ha intentado actualizar el sistema de destino con las nuevas credenciales de versión pendientes, pero ha fallado la verificación de la conexión a la base de datos con esas credenciales.
<MENSAJE DE EXCEPCIÓN> Se activa cuando se produce alguna excepción al actualizar el sistema de destino.
PROMOTE_PENDING_VERSION 200 ¡Versión pendiente ascendida! La versión pendiente se ha ascendido correctamente a actual.
500 <MENSAJE DE EXCEPCIÓN> Se lanza cuando se produce alguna excepción al promocionar la versión pendiente.