Journalisation des audits DB2 - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Journalisation des audits DB2

Avec la journalisation des audits DB2, Amazon RDS enregistre l'activité de la base de données, y compris les utilisateurs qui se connectent à la base de données et les requêtes exécutées sur la base de données. RDS télécharge les journaux d'audit complets dans votre compartiment Amazon S3, en utilisant le rôle AWS Identity and Access Management (IAM) que vous fournissez.

Configuration de la journalisation des audits DB2

Pour activer la journalisation d'audit pour une base de données RDS pour DB2, vous devez activer l'DB2_AUDIToption sur l'instance de base de données RDS pour DB2. Configurez ensuite une politique d'audit pour activer la fonctionnalité pour la base de données spécifique. Pour activer l'option sur l'instance de base de données RDS pour DB2, vous configurez les paramètres de l'DB2_AUDIToption. Pour ce faire, vous devez fournir les Amazon Resource Names (ARN) pour votre compartiment Amazon S3 et le rôle IAM avec les autorisations d'accès à votre compartiment.

Pour configurer la journalisation d'audit DB2 pour une base de données RDS pour DB2, procédez comme suit.

Étape 1 : Créer un compartiment Amazon S3

Si ce n'est pas déjà fait, créez un compartiment Amazon S3 dans lequel Amazon RDS peut télécharger les fichiers journaux d'audit de votre base de données RDS for DB2. Les restrictions suivantes s'appliquent au compartiment S3 que vous utilisez comme cible pour vos fichiers d'audit :

  • Il doit se trouver dans le même emplacement Région AWS que votre instance de base de données RDS pour DB2.

  • Il ne doit pas être ouvert au public.

  • Il ne peut pas utiliser S3 Object Lock.

  • Le propriétaire du compartiment doit également être le propriétaire du rôle IAM.

Pour savoir comment créer un compartiment Amazon S3, consultez la section Création d'un compartiment dans le guide de l'utilisateur Amazon S3.

Une fois que vous avez activé la journalisation des audits, Amazon RDS envoie automatiquement les journaux depuis votre instance de base de données vers les emplacements suivants :

  • Journaux au niveau des instances de base de données — bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • Journaux au niveau des bases de données : bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

Prenez note de l'Amazon Resource Name (ARN) de votre compartiment. Ces informations sont nécessaires pour effectuer les étapes suivantes.

Étape 2 : Création d'une politique IAM

Créez une politique IAM avec les autorisations requises pour transférer les fichiers journaux d'audit de votre instance de base de données vers votre compartiment Amazon S3. Cette étape suppose que vous disposez d'un compartiment S3.

Avant de créer la politique, collectez les informations suivantes :

  • L'ARN de votre bucket.

  • L'ARN de votre clé AWS Key Management Service (AWS KMS), si votre compartiment utilise SSE-KMS le chiffrement.

Créez une politique IAM qui inclut les autorisations suivantes :

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

Amazon RDS a besoin d'une s3:ListAllMyBuckets action interne pour vérifier qu'il Compte AWS est propriétaire à la fois du compartiment S3 et de l'instance de base de données RDS pour DB2.

Si votre bucket utilise SSE-KMS le chiffrement, incluez également les autorisations suivantes :

"kms:GenerateDataKey", "kms:Decrypt"

Vous pouvez créer une politique IAM en utilisant le AWS Management Console ou le AWS Command Line Interface (AWS CLI).

Pour créer une politique IAM afin d'autoriser Amazon RDS à accéder à votre compartiment Amazon S3
  1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Politiques.

  3. Choisissez Create policy, puis choisissez JSON.

  4. Dans Ajouter des actions, filtrez par S3. Ajoutez l'accès ListBucketGetBucketAcl, et GetBucketLocation.

  5. Pour Ajouter une ressource, choisissez Ajouter. Pour Type de ressource, choisissez bucket, puis entrez le nom de votre bucket. Choisissez ensuite Ajouter une ressource.

  6. Choisissez Ajouter un nouveau relevé.

  7. Dans Ajouter des actions, filtrez par S3. Ajoutez l'accès PutObjectListMultipartUploadParts, et AbortMultipartUpload.

  8. Pour Ajouter une ressource, choisissez Ajouter. Pour Type de ressource, choisissez un objet, puis entrez le nom de votre bucket /*. Choisissez ensuite Ajouter une ressource.

  9. Choisissez Ajouter un nouveau relevé.

  10. Dans Ajouter des actions, filtrez par S3. Ajoutez un accès ListAllMyBuckets.

  11. Pour Ajouter une ressource, choisissez Ajouter. Pour Type de ressource, sélectionnez Toutes les ressources. Choisissez ensuite Ajouter une ressource.

  12. Si vous utilisez vos propres clés KMS pour chiffrer les données :

    1. Choisissez Ajouter un nouveau relevé.

    2. Dans Ajouter des actions, filtrez par KMS. Ajoutez l'accès GenerateDataKeyet déchiffrez.

    3. Pour Ajouter une ressource, choisissez Ajouter. Pour Type de ressource, sélectionnez Toutes les ressources. Choisissez ensuite Ajouter une ressource.

  13. Choisissez Suivant.

  14. Dans Nom de la stratégie, entrez le nom de cette stratégie.

  15. (Facultatif) Pour Description, saisissez une description pour cette stratégie.

  16. Choisissez Créer une politique.

Pour créer une politique IAM afin d'autoriser Amazon RDS à accéder à votre compartiment Amazon S3
  1. Exécutez la commande create-policy. Dans l'exemple suivant, remplacez iam_policy_name et s3_bucket_name par le nom de votre politique IAM et le nom de votre compartiment Amazon S3 cible.

    Pour LinuxmacOS, ou 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:::s3_bucket_name" ] }, { "Sid": "Statement2", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::s3_bucket_name/*" ] }, { "Sid": "Statement3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "*" ] }, { "Sid": "Statement4", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "*" ] } ] }'

    Dans 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:::s3_bucket_name" ] }, { "Sid": "Statement2", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::s3_bucket_name/*" ] }, { "Sid": "Statement3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "*" ] }, { "Sid": "Statement4", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "*" ] } ] }'
  2. Une fois la stratégie créée, notez son ARN. Vous avez besoin de l'ARN pourÉtape 3 : créer un rôle IAM et associer votre politique IAM.

Pour plus d'informations sur la création d'une stratégie IAM, consultez la section Création de politiques IAM dans le Guide de l'utilisateur IAM.

Étape 3 : créer un rôle IAM et associer votre politique IAM

Cette étape suppose que vous avez créé la politique IAM dansÉtape 2 : Création d'une politique IAM. Au cours de cette étape, vous créez un rôle IAM pour votre instance de base de données RDS pour DB2, puis vous attachez votre politique IAM au rôle.

Vous pouvez créer un rôle IAM pour votre instance de base de données à l'aide de la console ou du AWS CLI.

Pour créer un rôle IAM et y associer votre politique IAM
  1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Roles (Rôles).

  3. Sélectionnez Create role (Créer un rôle).

  4. Pour Type d'entité de confiance, sélectionnez Service AWS.

  5. Pour Service ou cas d'utilisation, sélectionnez RDS, puis sélectionnez RDS — Ajouter un rôle à la base de données.

  6. Choisissez Suivant.

  7. Pour les politiques d'autorisations, recherchez et sélectionnez le nom de la politique IAM que vous avez créée.

  8. Choisissez Suivant.

  9. Pour Role name (Nom du rôle), saisissez un nom de rôle.

  10. (Facultatif) Pour Description, saisissez une description pour le nouveau rôle.

  11. Sélectionnez Créer un rôle.

Pour créer un rôle IAM et y associer votre politique IAM
  1. Exécutez la commande create-role. Dans l'exemple suivant, remplacez iam_role_name par le nom de votre rôle IAM.

    Pour LinuxmacOS, ou 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" } ] }'

    Dans 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. Une fois le rôle créé, notez l'ARN de ce rôle. Vous avez besoin de cet ARN pour l'étape suivante,Étape 4 : Configuration d'un groupe d'options pour la journalisation des audits DB2.

  3. Exécutez la commande attach-role-policy. Dans l'exemple suivant, remplacez iam_policy_arn par l'ARN de la politique IAM que vous avez créée dans. Étape 2 : Création d'une politique IAM Remplacez iam_role_name par le nom du rôle IAM que vous venez de créer.

    Pour LinuxmacOS, ou Unix :

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

    Dans Windows :

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

Pour plus d'informations, veuillez consulter Création d'un rôle pour déléguer des autorisations à un utilisateur IAM dans le Guide de l'utilisateur IAM.

Étape 4 : Configuration d'un groupe d'options pour la journalisation des audits DB2

Le processus d'ajout de l'option de journalisation d'audit Db2 à une instance de base de données RDS pour DB2 est le suivant :

  1. Créer un groupe d'options ou copier ou modifier un groupe existant.

  2. Ajouter et configurer toutes les options requises.

  3. Associez le groupe d'options à l'instance de base de données.

Une fois que vous avez ajouté l'option de journalisation d'audit Db2, vous n'avez pas besoin de redémarrer votre instance de base de données. Dès que le groupe d'options est actif, vous pouvez créer des audits et stocker les journaux d'audit dans votre compartiment S3.

Pour ajouter et configurer la journalisation d'audit DB2 sur le groupe d'options d'une instance de base de données
  1. Choisissez l'une des méthodes suivantes :

    • Utiliser un groupe d'options existant.

    • Créez un groupe d'options de base de données personnalisé et utilisez-le. Pour de plus amples informations, veuillez consulter Création d'un groupe d'options.

  2. Ajoutez l'option DB2_AUDIT au groupe d'options et configurez les paramètres de l'option. Pour plus d'informations sur l'ajout d'options, consultez Ajout d'une option à un groupe d'options.

    • Pour IAM_ROLE_ARN, entrez l'ARN du rôle IAM que vous avez créé dans. Étape 3 : créer un rôle IAM et associer votre politique IAM

    • Pour S3_BUCKET_ARN, entrez l'ARN du compartiment S3 à utiliser pour vos journaux d'audit DB2. Le bucket doit se trouver dans la même région que votre instance de base de données RDS pour DB2. La politique associée au rôle IAM que vous avez saisi doit autoriser les opérations requises sur cette ressource.

  3. Appliquez le groupe d'options à une instance de base de données nouvelle ou existante. Choisissez l'une des méthodes suivantes :

    • Si vous créez une nouvelle instance de base de données, appliquez le groupe d'options lorsque vous lancez l'instance.

    • Sur une instance de base de données existante, appliquez le groupe d'options en modifiant l'instance et en attachant le nouveau groupe d'options. Pour de plus amples informations, veuillez consulter Modification d'une instance de base de données Amazon RDS.

Étape 5 : Configuration de la politique d'audit

Pour configurer la politique d'audit de votre base de données RDS pour DB2, connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Appelez ensuite la procédure rdsadmin.configure_db_audit stockée avec le nom de base de données de votre base de données et les valeurs de paramètres applicables.

L'exemple suivant se connecte à la base de données et configure une politique d'audit pour les testdb catégories AUDIT, CHECKING, OBJMAINT, SECMAINT, SYSADMIN et VALIDATE. La valeur d'état BOTH enregistre les réussites et les échecs, et ERROR TYPE c'est le cas NORMAL par défaut. Pour plus d'informations sur l'utilisation de cette procédure stockée, consultezrdsadmin.configure_db_audit.

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

Étape 6 : Vérifiez la configuration de l'audit

Pour vous assurer que votre politique d'audit est correctement configurée, vérifiez l'état de votre configuration d'audit.

Pour vérifier la configuration, connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Exécutez ensuite l'instruction SQL suivante avec le nom de base de données de votre base de données. Dans l'exemple suivant, le nom de la base de données est 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.

Gestion de la journalisation des audits DB2

Après avoir configuré la journalisation d'audit DB2, vous pouvez modifier la politique d'audit pour une base de données spécifique ou désactiver la journalisation d'audit au niveau de la base de données ou pour l'ensemble de l'instance de base de données. Vous pouvez également modifier le compartiment Amazon S3 dans lequel vos fichiers journaux sont chargés.

Modification d'une politique d'audit DB2

Pour modifier la politique d'audit d'une base de données RDS pour DB2 spécifique, exécutez la procédure rdsadmin.configure_db_audit stockée. Avec cette procédure stockée, vous pouvez modifier les catégories, les paramètres des catégories et la configuration du type d'erreur de la politique d'audit. Pour de plus amples informations, veuillez consulter rdsadmin.configure_db_audit.

Modification de l'emplacement de vos fichiers journaux

Pour modifier le compartiment Amazon S3 dans lequel vos fichiers journaux sont chargés, effectuez l'une des opérations suivantes :

  • Modifiez le groupe d'options actuel attaché à votre instance de base de données RDS pour DB2 : mettez à jour le S3_BUCKET_ARN paramètre pour que l'DB2_AUDIToption pointe vers le nouveau compartiment. Assurez-vous également de mettre à jour la politique IAM attachée au rôle IAM spécifié par le IAM_ROLE_ARN paramètre du groupe d'options attaché. Cette politique IAM doit fournir à votre nouveau compartiment les autorisations d'accès requises. Pour plus d'informations sur les autorisations requises dans la politique IAM, consultezCréer une politique IAM.

  • Attachez votre instance de base de données RDS pour DB2 à un autre groupe d'options : modifiez votre instance de base de données pour changer le groupe d'options qui y est attaché. Assurez-vous que le nouveau groupe d'options est configuré avec S3_BUCKET_ARN les bons IAM_ROLE_ARN paramètres. Pour plus d'informations sur la configuration de ces paramètres pour l'DB2_AUDIToption, consultezConfiguration d'un groupe d'options.

Lorsque vous modifiez le groupe d'options, assurez-vous d'appliquer les modifications immédiatement. Pour de plus amples informations, veuillez consulter Modification d'une instance de base de données Amazon RDS.

Désactivation de la journalisation des audits DB2

Pour désactiver la journalisation des audits DB2, effectuez l'une des opérations suivantes :

  • Désactivez la journalisation des audits pour l'instance de base de données RDS pour DB2 : modifiez votre instance de base de données et supprimez le groupe d'options contenant l'DB2_AUDIToption. Pour de plus amples informations, veuillez consulter Modification d'une instance de base de données Amazon RDS.

  • Désactiver la journalisation des audits pour une base de données spécifique : arrêtez la journalisation des audits et supprimez la politique d'audit en appelant rdsadmin.disable_db_audit avec le nom de base de données de votre base de données. Pour de plus amples informations, veuillez consulter rdsadmin.disable_db_audit.

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

Consultation des journaux d'audit

Après avoir activé la journalisation des audits DB2, attendez au moins une heure avant de consulter les données d'audit dans votre compartiment Amazon S3. Amazon RDS envoie automatiquement les journaux de votre instance de base de données RDS pour DB2 aux emplacements suivants :

  • Journaux au niveau des instances de base de données — bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • Journaux au niveau des bases de données : bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

L'exemple de capture d'écran suivant de la console Amazon S3 montre une liste de dossiers pour les fichiers journaux au niveau de l'instance de base de données RDS for DB2.


                Console Amazon S3 avec onglet objets sélectionné, affichant une liste de dossiers pour les fichiers journaux au niveau de l'instance de base de données RDS for DB2.

L'exemple de capture d'écran suivant de la console Amazon S3 montre les fichiers journaux au niveau de la base de données pour l'instance de base de données RDS pour DB2.


                Console Amazon S3 avec onglet Objets sélectionné, affichant les fichiers journaux au niveau de la base de données pour l'instance de base de données RDS pour DB2.

Résolution des problèmes liés à l'enregistrement des audits DB2

Utilisez les informations suivantes pour résoudre les problèmes courants liés à la journalisation des audits DB2.

Impossible de configurer la politique d'audit

Si l'appel de la procédure stockée rdsadmin.configure_db_audit renvoie une erreur, il se peut que le groupe d'options contenant l'DB2_AUDIToption ne soit pas associé à l'instance de base de données RDS pour DB2. Modifiez l'instance de base de données pour ajouter le groupe d'options, puis réessayez d'appeler la procédure stockée. Pour de plus amples informations, veuillez consulter Modification d'une instance de base de données Amazon RDS.

Aucune donnée dans le compartiment Amazon S3

Si les données de journalisation sont absentes du compartiment Amazon S3, vérifiez les points suivants :

  • Le compartiment Amazon S3 se trouve dans la même région que votre instance de base de données RDS pour DB2.

  • Le rôle que vous avez spécifié dans le paramètre d'IAM_ROLE_ARNoption est configuré avec les autorisations requises pour télécharger des journaux dans votre compartiment Amazon S3. Pour de plus amples informations, veuillez consulter Créer une politique IAM.

  • Les ARN pour les paramètres d'S3_BUCKET_ARNoption IAM_ROLE_ARN et sont corrects dans le groupe d'options associé à votre instance de base de données RDS pour DB2. Pour de plus amples informations, veuillez consulter Configuration d'un groupe d'options.

Vous pouvez vérifier l'état des tâches de votre configuration de journalisation d'audit en vous connectant à la base de données et en exécutant une instruction SQL. Pour de plus amples informations, veuillez consulter Vérifiez la configuration de l'audit.

Vous pouvez également consulter les événements pour en savoir plus sur les raisons pour lesquelles les journaux peuvent être absents. Pour plus d'informations sur la façon d'afficher les événements, consultezAffichage des journaux, des événements et des flux dans la console Amazon RDS.