Registro de auditoría de Db2 - Amazon Relational Database Service

Registro de auditoría de Db2

Con el registro de auditoría de Db2, Amazon RDS registra la actividad de la base de datos, lo que incluye a los usuarios que inician sesión en la base de datos y las consultas ejecutadas en esta. RDS carga los registros de auditoría completados en su bucket de Amazon S3 mediante el rol de AWS Identity and Access Management (IAM) que usted proporciona.

Configuración del registro de auditoría de Db2

Para habilitar el registro de auditoría en una base de datos de Amazon RDS para Db2, active la opción DB2_AUDIT en la instancia de base de datos de Amazon RDS para Db2. Luego, configure una política de auditoría para habilitar la característica en la base de datos específica. Para habilitar la opción en la instancia de base de datos de RDS para Db2, debe configurar los ajustes de la opción DB2_AUDIT. Para ello, debe proporcionar los nombres de recursos de Amazon (ARN) para su bucket de Amazon S3 y el rol de IAM con permisos para acceder a su bucket.

Para configurar el registro de auditoría de Db2 para una base de datos de RDS para Db2, siga estos pasos.

Paso 1: Crear un bucket de Amazon S3

Si aún no lo ha hecho, cree un bucket de Amazon S3 en el que Amazon RDS pueda cargar los archivos de registro de auditoría de la base de datos de RDS para Db2. Se aplican las siguientes restricciones al bucket de S3 que usa como destino para los archivos de auditoría:

  • Debería estar en la misma Región de AWS que su instancia de base de datos de RDS para Db2.

  • No debe estar abierto al público.

  • No se puede usar S3 Object Lock.

  • El propietario del bucket también debe ser el propietario del rol de IAM.

Para aprender a crear un bucket de Amazon S3, consulte Crear un bucket en la Guía de usuario Amazon S3.

Tras habilitar el registro de auditoría, Amazon RDS envía automáticamente los registros de la instancia de base de datos a las siguientes ubicaciones:

  • Registros en el nivel de instancia de base de datos: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • Registros en el nivel de base de datos: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

Apunte el nombre de recurso de Amazon (ARN) del bucket. Esta información será necesaria para completar los pasos siguientes.

Paso 2: Crear una política de IAM

Cree una política de IAM con los permisos necesarios para transferir archivos de registro de auditoría desde su instancia de base de datos a su bucket de Amazon S3. En este paso, se da por sentado que ya tiene un bucket de S3.

Antes de crear la política, obtenga la siguiente información:

  • El ARN de su bucket.

  • El ARN para su clave de AWS Key Management Service (AWS KMS), si el bucket utiliza el cifrado SSE-KMS.

Cree una política de IAM que incluya los siguientes permisos:

"s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:ListAllMyBuckets"
nota

Amazon RDS necesita la acción s3:ListAllMyBuckets internamente para verificar que la misma Cuenta de AWS tenga el bucket S3 y la instancia de base de datos de RDS para Db2.

Si su bucket usa el cifrado SSE-KMS, incluya también los siguientes permisos:

"kms:GenerateDataKey", "kms:Decrypt"

Puede crear una política de IAM mediante la AWS Management Console o la AWS Command Line Interface (AWS CLI).

Para crear una política de IAM que permita a Amazon RDS acceder a un bucket de Amazon S3
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Policies (Políticas).

  3. Elija Crear política y, a continuación, elija JSON.

  4. En Agregar acciones, filtre por S3. Agregue el acceso ListBucket, GetBucketAcl y GetBucketLocation.

  5. En Agregar un recurso, seleccione Agregar. En Tipo de recurso, elija bucket e introduzca el nombre del bucket. Luego, elija Agregar recurso.

  6. Elija Agregar nueva instrucción.

  7. En Agregar acciones, filtre por S3. Agregue el acceso PutObject, ListMultipartUploadParts y AbortMultipartUpload.

  8. En Agregar un recurso, seleccione Agregar. En Tipo de recurso, elija objeto e introduzca your bucket name/*. Luego, elija Agregar recurso.

  9. Elija Agregar nueva instrucción.

  10. En Agregar acciones, filtre por S3. Agregue el acceso ListAllMyBuckets.

  11. En Agregar un recurso, seleccione Agregar. Para Tipo de recurso, elija Todos los recursos. Luego, elija Agregar recurso.

  12. Si utiliza sus propias claves de KMS para cifrar los datos:

    1. Elija Agregar nueva instrucción.

    2. En Agregar acciones, filtre por KMS. Agregue el acceso GenerateDataKey y Decrypt.

    3. En Agregar un recurso, seleccione Agregar. Para Tipo de recurso, elija Todos los recursos. Luego, elija Agregar recurso.

  13. Elija Siguiente.

  14. Escriba un nombre para la política en Nombre de la política.

  15. (Opcional) En Description (Descripción), escriba una descripción para esta política.

  16. Elija Crear política.

Para crear una política de IAM que permita a Amazon RDS acceder a un bucket de Amazon S3
  1. Ejecute el comando create-policy. En el siguiente ejemplo, sustituya iam_policy_name y amzn-s3-demo-bucket por un nombre para su política de IAM y por el nombre de su bucket de Amazon S3 de destino.

    Para Linux, macOS o:Unix

    aws iam create-policy \ --policy-name iam_policy_name \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "Statement2", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "Statement3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "*" ] }, { "Sid": "Statement4", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "*" ] } ] }'

    En:Windows

    aws iam create-policy ^ --policy-name iam_policy_name ^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "Statement2", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "Statement3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "*" ] }, { "Sid": "Statement4", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "*" ] } ] }'
  2. Después de crear la política, apunte el ARN de la política. Necesita el ARN para Paso 3: Crear un rol de IAM y asociar la política de IAM.

Para obtener más información acerca de cómo crear una política de IAM, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Paso 3: Crear un rol de IAM y asociar la política de IAM

En este paso, se da por sentado que ha creado la política de IAM en Paso 2: Crear una política de IAM. En este paso, creará un rol de IAM para la instancia de base de datos de RDS para Db2 y, a continuación, asociará la política de IAM al rol.

Puede crear un rol de IAM a su instancia de base de datos mediante la consola o la AWS CLI.

Para crear un rol de IAM y asociarle la política de IAM
  1. Inicie sesión en AWS Management Console Management Console y abra la consola IAM en https://console.aws.amazon.com/iam/.

  2. Seleccione Roles en el panel de navegación.

  3. Elija Crear rol.

  4. En Tipo de entidad de confianza, elija servicio de AWS.

  5. Para el Servicio o caso de uso, seleccione RDS y, a continuación, seleccione RDS: Agregar rol a la base de datos.

  6. Elija Siguiente.

  7. Para Políticas de permisos, busque y seleccione el nombre de la política de IAM que creó.

  8. Elija Siguiente.

  9. En Nombre de rol, ingrese un nombre de rol.

  10. (Opcional) En Descripción, ingrese una descripción para el nuevo rol.

  11. Elija Crear rol.

Para crear un rol de IAM y asociarle la política de IAM
  1. Ejecute el comando create-role. En el siguiente ejemplo, sustituya iam_role_name por un nombre para su rol de IAM.

    Para Linux, macOS o:Unix

    aws iam create-role \ --role-name iam_role_name \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

    En:Windows

    aws iam create-role ^ --role-name iam_role_name ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
  2. Después de crear el rol, anote el ARN del rol. Necesitará este ARN en el siguiente paso (Paso 4: Configurar un grupo de opciones para el registro de auditoría de Db2).

  3. Ejecute el comando attach-role-policy. En el siguiente ejemplo, sustituya iam_policy_arn por el ARN de la política de IAM que creó en Paso 2: Crear una política de IAM. Reemplace iam_role_name por el nombre del rol de IAM que acaba de crear.

    Para Linux, macOS o:Unix

    aws iam attach-role-policy \ --policy-arn iam_policy_arn \ --role-name iam_role_name

    En:Windows

    aws iam attach-role-policy ^ --policy-arn iam_policy_arn ^ --role-name iam_role_name

Para obtener más información, vea Crear un rol para delegar permisos a un usuario de IAM en Guía del usuario de IAM.

Paso 4: Configurar un grupo de opciones para el registro de auditoría de Db2

El proceso de incorporación de la opción del registro de auditoría de Db2 a una instancia de base de datos de RDS para Db2 es el siguiente:

  1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

  2. Añada y configure todas las opciones necesarias.

  3. Asocie el grupo de opciones a la instancia de base de datos.

Después de añadir la opción del registro de auditoría de Db2, no es necesario reiniciar la instancia de base de datos. En cuanto el grupo de opciones esté activo, podrá crear auditorías y almacenar registros de auditoría en su bucket de S3.

Para añadir y configurar el registro de auditoría de Db2 en el grupo de opciones de una instancia de base de datos
  1. Elija una de las siguientes opciones:

    • Use un grupo de opciones existente.

    • Cree un grupo de opciones de base de datos personalizado y utilice ese grupo. Para obtener más información, consulte Creación de un grupo de opciones.

  2. Agregue la opción DB2_AUDIT al grupo de opciones y configure las opciones. Para obtener más información acerca de la adición de opciones, consulte Agregar una opción a un grupo de opciones.

    • En IAM_ROLE_ARN, escriba el ARN para el rol de IAM que creó en Paso 3: Crear un rol de IAM y asociar la política de IAM.

    • Para S3_BUCKET_ARN, introduzca el ARN del bucket de S3 que se utilizará en los registros de auditoría de Db2. El bucket debe estar en la misma región que la instancia de base de datos de RDS para Db2. La política asociada al rol de IAM que haya introducido debe permitir las operaciones necesarias en este recurso.

  3. Aplique el grupo de opciones a una instancia de base de datos nueva o existente. Elija una de las siguientes opciones:

    • Si está creando una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia.

    • En una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

Paso 5: Configurar la política de auditoría

A fin de configurar la política de auditoría para su base de datos de RDS para Db2, conéctese a la base de datos de rdsadmin con el nombre de usuario y la contraseña principales de su instancia de base de datos de RDS para Db2. Luego, llame al procedimiento almacenado rdsadmin.configure_db_audit con el nombre de base de datos de su base de datos y con los valores de parámetro aplicables.

El siguiente ejemplo se conecta a la base de datos y configura una política de auditoría para testdb con las categorías AUDIT, CHECKING, OBJMAINT, SECMAINT, SYSADMIN, y VALIDATE. El valor de estado BOTH registra los éxitos y los errores, y el ERROR TYPE es NORMAL de manera predeterminada. Para obtener más información sobre el uso de este procedimiento almacenado, consulte rdsadmin.configure_db_audit.

db2 "connect to rdsadmin user master_user using master_password" db2 "call rdsadmin.configure_db_audit('testdb', 'ALL', 'BOTH', ?)"

Paso 6: Comprobar la configuración de la auditoría

Para asegurarse de que la política de auditoría está configurada correctamente, compruebe el estado de la configuración de auditoría.

Para comprobar la configuración, conéctese a la base de datos rdsadmin con el nombre de usuario y la contraseña principales de su instancia de base de datos de RDS para Db2. Luego, ejecute la siguiente instrucción SQL con el nombre de base de datos de su base de datos. En el siguiente ejemplo, el nombre de base de datos es testdb.

db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params, cast(task_output as varchar(500)) as task_output from table(rdsadmin.get_task_status(null,'testdb','CONFIGURE_DB_AUDIT'))" Sample Output TASK_ID TASK_TYPE DATABASE_NAME LIFECYCLE -------------------- -------------------- --------------- ------------- 2 CONFIGURE_DB_AUDIT DB2DB SUCCESS ... continued ... TASK_PARAMS -------------------------------------------------------- { "AUDIT_CATEGORY" : "ALL", "CATEGORY_SETTING" : "BOTH" } ... continued ... TASK_OUTPUT --------------------------------------------------- 2023-12-22T20:27:03.029Z Task execution has started. 2023-12-22T20:27:04.285Z Task execution has completed successfully.

Administración del registro de auditoría de Db2

Tras configurar el registro de auditoría de Db2, puede modificar la política de auditoría de una base de datos específica o deshabilitar el registro de auditoría en el nivel de base de datos o de toda la instancia de base de datos. También puede cambiar el bucket de Amazon S3 en el que se cargan los archivos de registro.

Modificación de una política de auditoría de Db2

Para modificar la política de auditoría de una base de datos RDS para Db2 específica, ejecute el procedimiento almacenado rdsadmin.configure_db_audit. Con este procedimiento almacenado, puede cambiar las categorías, los ajustes de las categorías y la configuración de los tipos de error de la política de auditoría. Para obtener más información, consulte rdsadmin.configure_db_audit.

Modificación de la ubicación de los archivos de registro

Para cambiar el bucket de Amazon S3 en el que se cargan los archivos de registro, lleve a cabo una de las siguientes acciones:

  • Modificar el grupo de opciones actual asociado a su instancia de base de datos de RDS para Db2: actualice la configuración de S3_BUCKET_ARN para la opción DB2_AUDIT de modo que apunte al nuevo bucket. Además, actualice la política de IAM asociada al rol de IAM especificado en la configuración de IAM_ROLE_ARN del grupo de opciones asociado. Esta política de IAM debe darle a su nuevo bucket los permisos de acceso necesarios. Para obtener más información acerca de los permisos necesarios en la política de IAM, consulte Creación de una política de IAM.

  • Asociar la instancia de base de datos de RDS para Db2 a un grupo de opciones diferente: modifique la instancia de base de datos para cambiar el grupo de opciones asociado. Asegúrese de que el nuevo grupo de opciones esté configurado con los ajustes S3_BUCKET_ARN y IAM_ROLE_ARN correctos. Para obtener información acerca de cómo configurar estos ajustes para la opción DB2_AUDIT, consulte Configurar un grupo de opciones.

Al modificar el grupo de opciones, debe aplicar los cambios inmediatamente. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

Deshabilitación del registro de auditoría de Db2

Para deshabilitar el registro de auditoría de Db2, realice una de las siguientes acciones:

  • Deshabilitar el registro de auditoría para la instancia de base de datos de RDS para Db2: modifique su instancia de base de datos y elimine el grupo de opciones que contiene la opción DB2_AUDIT. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

  • Deshabilitar el registro de auditoría para una base de datos específica: detenga el registro de auditoría y elimine la política de auditoría llamando a rdsadmin.disable_db_audit con el nombre de base de datos de su base de datos. Para obtener más información, consulte rdsadmin.disable_db_audit.

    db2 "call rdsadmin.disable_db_audit( 'db_name')"

Visualización de registros de auditoría

Tras habilitar el registro de auditoría de Db2, espere al menos una hora antes de ver los datos de auditoría en su bucket de Amazon S3. Amazon RDS envía automáticamente los registros desde su instancia de base de datos de RDS para Db2 a las siguientes ubicaciones:

  • Registros en el nivel de instancia de base de datos: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • Registros en el nivel de base de datos: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

En la siguiente captura de pantalla de ejemplo de la consola Amazon S3, se muestra una lista de carpetas para los archivos de registro en el nivel de instancia de base de datos de RDS para Db2.

Consola Amazon S3 con la pestaña Objetos seleccionada, que muestra una lista de carpetas para los archivos de registro en la instancia de base de datos de RDS para Db2.

La siguiente captura de pantalla de ejemplo de la consola de Amazon S3 muestra los archivos de registro en el nivel de base de datos para la instancia de base de datos de RDS para Db2.

Consola de Amazon S3 con la pestaña de Objetos seleccionada, que muestra los archivos de registro en la base de datos para la instancia de base de datos de RDS para Db2.

Solución de problemas en el registro de auditoría de Db2

Utilice la siguiente información para solucionar problemas comunes con el registro de auditoría de Db2.

No se puede configurar la política de auditoría

Si, al llamar al procedimiento almacenado rdsadmin.configure_db_audit, se produce un error, es posible que el grupo de opciones que contiene la opción DB2_AUDIT no esté asociado a la instancia de base de datos de RDS para Db2. Modifique la instancia de base de datos para añadir el grupo de opciones y llame de nuevo al procedimiento almacenado. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

No hay datos en el bucket de Amazon S3

Si faltan datos de registro en el bucket de Amazon S3, compruebe lo siguiente:

  • El bucket de Amazon S3 debe estar en la misma región que la instancia de base de datos de RDS para Db2.

  • El rol que especificó en la configuración de la opción IAM_ROLE_ARN debe estar configurado con los permisos necesarios para cargar registros en su bucket de Amazon S3. Para obtener más información, consulte Creación de una política de IAM.

  • Los ARN de la configuración de las opciones IAM_ROLE_ARN y S3_BUCKET_ARN deben ser los correctos en el grupo de opciones asociado a su instancia de base de datos de RDS para Db2. Para obtener más información, consulte Configurar un grupo de opciones.

Para verificar el estado de la tarea de la configuración de registro de auditoría, conéctese a la base de datos y ejecute una instrucción SQL. Para obtener más información, consulte Comprobar la configuración de la auditoría.

También puede comprobar los eventos para obtener más información sobre por qué faltan registros. Para obtener información sobre cómo ver eventos, consulte Visualización de los registros, los eventos y los flujos en la consola de Amazon RDS.