Exportación de logs de PostgreSQL a Object Storage

Exporte logs de PostgreSQL, incluidos los logs de auditoría generados por la extensión pgaudit, a un cubo de Oracle Cloud Infrastructure Object Storage para que pueda archivarlos, descargarlos y acceder a ellos directamente desde Object Storage a fin de mejorar la accesibilidad y los aspectos de gestión de logs.

Requisitos

Para poder configurar un sistema de base de datos para exportar logs PostgreSQL a un cubo de Object Storage, el cubo debe existir y debe otorgar acceso a los recursos de OCI Database with PostgreSQL para cargarlo en el cubo. Si necesita crear un cubo nuevo, consulte Creación de un cubo de Object Storage. Para crear políticas que permitan el acceso de recursos al cubo, consulte Política de IAM necesaria.

Política de IAM necesaria

OCI Database with PostgreSQL utiliza entidades de recurso para autenticar y acceder a otros recursos de Oracle Cloud Infrastructure, como cubos de Object Storage. Puede otorgar acceso a un sistema de base de datos, a un juego específico de sistemas de base de datos o a todos los sistemas de base de datos al cubo de Object Storage.

Para otorgar a un sistema de base de datos específico acceso a cubos de lectura y a objetos de escritura en un cubo, utilice las siguientes políticas:

allow any-user to read buckets in compartment <compartment-name> where ALL {request.principal.id = '<dbsystem_OCID>', target.bucket.name = '<bucket_name>'}
allow any-user to manage objects in compartment <compartment-name> where ALL {request.principal.id = '<dbsystem_OCID>', target.bucket.name = '<bucket_name>'}

Para otorgar acceso a todos los sistemas de base de datos a cubos de lectura y escribir objetos en un cubo, utilice las siguientes políticas:

allow any-user to read buckets in compartment <compartment-name> where ALL {request.resource.type = 'postgresqldbsystem', target.bucket.name = '<bucket name>'}
allow any-user to manage objects in compartment <compartment-name> where ALL {request.resource.type = 'postgresqldbsystem', target.bucket.name = '<bucket name>'}

Los grupos dinámicos permiten agrupar OCI Database with PostgreSQL como actores principales, de forma similar a los grupos de usuarios. En primer lugar, los sistemas de base de datos que necesitan acceso se deben colocar en un grupo dinámico y, a continuación, al grupo dinámico se le otorga acceso para cargar objetos en el cubo.

La pertenencia al grupo dinámico depende de un juego de criterios que defina, denominado reglas de coincidencia. En el siguiente ejemplo se muestra una regla de coincidencia que incluye todos los sistemas de base de datos de un compartimento definido:

all { resource.type='postgresqldbsystem', resource.compartment.id = 'ocid1.compartment.oc1..exampleuniqueID'}

También puede utilizar etiquetas definidas al crear grupos dinámicos para un control de acceso más específico, por ejemplo:

all { resource.type = 'postgresqldbsystem', tag.<tagnamespace>.<tagkey>.value='<tagvalue>'}

Para obtener más información, consulte Gestión de grupos dinámicos y Creación de un grupo dinámico.

Para otorgar acceso a grupos dinámicos a cubos de lectura y objetos de escritura en un cubo, utilice una política como la siguiente:

Allow dynamic-group <PSQL_DynamicGroup> to read buckets in compartment <compartment-name> where ALL {target.bucket.name = '<bucket name>'}
Allow dynamic-group <PSQL_DynamicGroup> to manage objects in compartment <compartment-name> where ALL {target.bucket.name = '<bucket name>'}

Configuración de un sistema de base de datos para la exportación de logs

Después de configurar el acceso a la entidad de recurso, configure el sistema de base de datos de OCI Database with PostgreSQL para exportar logs a Object Storage mediante la definición de parámetros de configuración personalizados. Es posible que deba crear o copiar una configuración para especificar los siguientes parámetros de configuración:

  • oci.log_destination: oci_object_storage
  • oci.log_destination_os_namespace: espacio de nombres de Object Storage para el arrendamiento
  • oci.log_destination_os_bucket_name: nombre del cubo de Object Storage al que se exportan los logs

Después de haber especificado una configuración con los detalles de exportación de log, aplique esa configuración al sistema de base de datos. Para obtener más información, consulte Changing the Configuration Applied to a Database System.

Detalles de Objeto

Los logs se cargan en el cubo de Object Storage especificado mediante la siguiente convención de nomenclatura:

<DBSYSTEM_ID>/<DB_INSTANCEID>/postgresql-<DATE>_######.csv.gz

  • <DBSYSTEM_ID>: ID del sistema de base de datos de OCI Database with PostgreSQL.
  • <DB_INSTANCEID>: ID de instancia de la base de datos PostgreSQL.
  • <DATE>: fecha en la que se generaron los logs, en formato YYYY-MM-DD.
  • ######: número de secuencia.

Por ejemplo:

mydbsystem/instance123/postgresql-2025-01-27_000001.csv.gz