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.
SQL Server Audit
Dans Amazon RDS, vous pouvez effectuer un audit des bases de données Microsoft SQL Server à l'aide du mécanisme d'audit SQL Server intégré. Vous pouvez créer des audits et des spécifications d'audit de la même manière que pour des serveurs de base de données sur site.
RDS charge les journaux d'audit terminés dans votre compartiment S3 à l'aide du rôle IAM que vous fournissez. Si vous activez la rétention, RDS conserve vos journaux d'audit sur votre instance de base de données pendant la période configurée.
Pour de plus amples informations, veuillez consulter SQL Server Audit (Database Engine)
Audit SQL Server avec des flux d'activité de base de données
Vous pouvez utiliser Database Activity Streams for RDS pour intégrer les événements d'audit de SQL Server aux outils de surveillance de l'activité des bases de données d'Imperva et d' McAfeeIBM. Pour plus d'informations sur l'audit avec les flux d'activité de base de données pour RDS SQL Server, consultez Audit dans Microsoft SQL Server
Rubriques
- Prise en charge de SQL Server Audit
- Ajout de SQL Server Audit aux options d'instance de base de données
- Utilisation de SQL Server Audit
- Consultation des journaux d'audit
- Utilisation de SQL Server Audit avec des instances multi-AZ
- Configuration d'un compartiment S3
- Création manuelle d'un rôle IAM pour SQL Server Audit
Prise en charge de SQL Server Audit
Dans Amazon RDS à partir de SQL Server 2014, toutes les éditions de SQL Server prennent en charge les audits au niveau du serveur, et l'édition Enterprise prend également en charge les audits au niveau de la base de données. À partir de SQL Server 2016 (13.x) SP1, toutes les éditions prennent en charge les audits au niveau du serveur et au niveau de la base de données. Pour de plus amples informations, consultez SQL Server Audit (moteur de base de données)
RDS prend en charge la configuration des paramètres d'option suivants pour SQL Server Audit :
Paramètre d'option | Valeurs valides | Description |
---|---|---|
IAM_ROLE_ARN |
Un Amazon Resource Name (ARN) valide au format arn:aws:iam:: . |
L'ARN du rôle IAM accorde l'accès au compartiment S3 où vous voulez stocker vos journaux d'audit. Pour plus d'informations, consultez Amazon Resource Names (ARN) dans le document Références générales AWS. |
S3_BUCKET_ARN |
Un ARN valide au format arn:aws:s3::: ou arn:aws:s3::: |
L'ARN du compartiment S3 où vous voulez stocker vos journaux d'audit. |
ENABLE_COMPRESSION |
true ou false |
Contrôle la compression des journaux d'audit. Par défaut, la compression est activée (définie sur true ). |
RETENTION_TIME |
0 sur 840 |
Durée de conservation (en heures) pendant laquelle les enregistrements d'audit SQL Server sont conservés sur votre instance RDS. Par défaut, la conservation est désactivée. |
Ajout de SQL Server Audit aux options d'instance de base de données
L'activation de SQL Server Audit se fait en deux étapes : l'activation de l'option sur l'instance de base de données et l'activation de la fonction dans SQL Server. Le processus d'ajout de l'option SQL Server Audit à une instance de base de données est le suivant :
-
Créer un groupe d'options ou copier ou modifier un groupe existant.
-
Ajouter et configurer toutes les options requises.
-
Associez le groupe d'options à l'instance de base de données.
Une fois que vous avez ajouté l'option SQL Server Audit, 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 SQL Server Audit sur le groupe d'options d'une instance de base de données
-
Choisissez l'une des méthodes suivantes :
-
Utiliser un groupe d'options existant.
-
Créer un groupe d'options d'instance de base de données personnalisé et utiliser ce groupe d'options. Pour plus d'informations, consultez Création d'un groupe d'options.
-
-
Ajoutez l'option SQLSERVER_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 Rôle IAM, si vous avez déjà un rôle IAM avec les stratégies requises, vous pouvez choisir ce rôle. Pour créer un nouveau rôle IAM choisissez Créer un rôle. Pour plus d'informations sur les stratégies requises, consultez Création manuelle d'un rôle IAM pour SQL Server Audit.
-
Pour Select S3 destination (Sélectionner une destination S3), si vous avez déjà un compartiment S3 que vous souhaitez utiliser, choisissez-le. Pour créer un compartiment S3, choisissez Create a New S3 Bucket (Créer un nouveau compartiment S3).
-
Pour Enable Compression (Activer la compression), laissez cette option cochée pour compresser les fichiers d'audit. La compression est activée par défaut. Pour désactiver la compression, désélectionnez Enable Compression (Activer la compression).
-
Pour Audit log retention (Rétention des journaux d'audit), pour conserver les enregistrement sue l'instance de base de données, choisissez cette option. Spécifiez une durée de rétention en heures. La durée de rétention maximale est de 35 jours.
-
-
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 plus d'informations, consultez Modification d'une instance de base de données Amazon RDS.
-
Modification de l'option SQL Server Audit
Une fois que vous avez activé l'option SQL Server Audit, vous pouvez modifier les paramètres. Pour de plus amples informations sur la modification des paramètres d'option, veuillez consulter Modification d'un paramètre d'option.
Suppression de SQL Server Audit des options d'instance de base de données
Vous pouvez désactiver la fonction SQL Server Audit en désactivant les audits, puis en supprimant l'option.
Pour supprimer les audits
-
Désactivez tous les paramètres d'audit au sein de SQL Server. Pour savoir où les audits s'exécutent, interrogez les vues du catalogue de sécurité SQL Server. Pour plus d'informations, consultez Security Catalog Views
dans la documentation Microsoft SQL Server. -
Supprimez l'option SQL Server Audit de l'instance de base de données. Choisissez l'une des méthodes suivantes :
-
Supprimez l'option SQL Server Audit du groupe d'options utilisé par l'instance de base de données. Ce changement affecte toutes les instances de bases de données qui utilisent le même groupe d'options. Pour plus d'informations, consultez Suppression d'une option d'un groupe d'options.
-
Modifiez l'instance de base de données, puis choisissez le groupe d'options sans l'option SQL Server Audit. Cette modification affecte uniquement l'instance de base de données que vous modifiez. Vous pouvez spécifier le groupe d'options (vide) par défaut, ou un groupe d'options personnalisées différent. Pour plus d'informations, consultez Modification d'une instance de base de données Amazon RDS.
-
-
Après que vous avez supprimé l'option SQL Server Audit de l'instance de base de données, vous n'avez pas besoin de redémarrer l'instance. Supprimez les fichiers d'audit non requis de votre compartiment S3.
Utilisation de SQL Server Audit
Vous pouvez contrôler les audits de serveur, les spécifications d'audit de serveur et les spécifications d'audit de base de données, de la même manière que vous les contrôlez pour vos serveurs de base de données sur site.
Création d'audits
Vous pouvez créer des audits de serveur de la même manière que pour des serveurs de base de données sur site. Pour plus d'informations sur la création d'audits de serveur, consultez CREATE SERVER AUDIT
Pour éviter les erreurs, respectez les limitations suivantes :
-
Ne dépassez pas le nombre maximal d'audits de serveur pris en charge par instance de 50.
-
Demandez à SQL Server d'écrire les données dans un fichier binaire.
-
N'utilisez pas
RDS_
comme préfixe dans le nom de l'audit de serveur. -
Pour
FILEPATH
, spécifiezD:\rdsdbdata\SQLAudit
. -
Pour
MAXSIZE
, spécifiez une taille comprise entre 2 Mo et 50 Mo. -
Ne configurez pas
MAX_ROLLOVER_FILES
ouMAX_FILES
. -
Ne configurez pas SQL Server pour arrêter l'instance de bases de données s'il ne parvient pas à écrire l'enregistrement d'audit.
Création de spécifications d'audit
Vous créez des spécifications d'audit de serveur et des spécifications d'audit de base de données, de la même manière que vous les créez pour vos serveurs de base de données sur site. Pour plus d'informations sur la création de spécifications d'audit, consultez CREATE SERVER AUDIT SPECIFICATION
Pour éviter les erreurs, n'utilisez pas RDS_
comme préfixe dans le nom de la spécification d'audit de base de données ou la spécification d'audit de serveur.
Consultation des journaux d'audit
Vos journaux d'audit sont stockés dans D:\rdsdbdata\SQLAudit
.
Après que SQL Server a fini d'écrire dans un fichier de journal d'audit (quand le fichier atteint sa limite de taille), Amazon RDS charge le fichier dans votre compartiment S3. Si la rétention est activée, Amazon RDS déplace le fichier vers le dossier de rétention : D:\rdsdbdata\SQLAudit\transmitted
.
Pour plus d'informations sur la rétention, consultez Ajout de SQL Server Audit aux options d'instance de base de données.
Les enregistrements d'audit sont conservés sur l'instance de base de données jusqu'à ce que le fichier de journal soit chargé. Vous pouvez afficher les enregistrements d'audit en exécutant la commande suivante.
SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\*.sqlaudit' , default , default )
Vous pouvez utiliser la même commande pour afficher les enregistrements d'audit de votre dossier de rétention en modifiant le filtre en D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit
.
SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit' , default , default )
Utilisation de SQL Server Audit avec des instances multi-AZ
Pour les instances multi-AZ, le processus d'envoi de fichiers de journal d'audit à Amazon S3 est similaire au processus utilisé pour les instances mono-AZ. Cependant, il existe quelques différences importantes :
-
Les objets de spécification d'audit de base de données sont répliqués vers tous les nœuds.
-
Les audits de serveur et les spécifications d'audit de serveur ne sont pas répliqués vers les nœuds secondaires. Vous devez les créer et les modifier manuellement.
Pour capturer des audits de serveur ou une spécification d'audit de serveur depuis les deux nœuds :
-
Créez un audit de serveur ou une spécification d'audit de serveur sur le nœud primaire.
-
Basculez vers le nœud secondaire, puis créez un audit de serveur ou une spécification d'audit de serveur avec les mêmes nom et GUID sur le nœud secondaire. Utilisez le paramètre
AUDIT_GUID
pour spécifier le GUID.
Configuration d'un compartiment S3
Les fichiers journaux d'audit sont chargés automatiquement depuis l'instance de base de données vers votre compartiment S3. Les restrictions suivantes s'appliquent au compartiment S3 que vous utilisez comme cible pour vos fichiers d'audit :
-
Elle doit se trouver dans la même AWS région que l'instance de base de données.
-
Il ne doit pas être ouvert au public.
-
Le propriétaire du compartiment doit également être le propriétaire du rôle IAM.
La clé cible qui est utilisée pour stocker les données suit ce schéma de dénomination : DOC-EXAMPLE-BUCKET
/key-prefix/instance-name/audit-name/node_file-name.ext
Note
Vous définissez le nom du compartiment et les valeurs de préfixe de clé avec le paramètre d'option (S3_BUCKET_ARN
).
Le schéma est composé des éléments suivants :
-
DOC-EXAMPLE-BUCKET — Le nom de votre compartiment
S3. -
key-prefix
– Préfixe de clé personnalisé que vous souhaitez utiliser pour les journaux d'audit. -
instance-name
– Nom de votre instance Amazon RDS. -
audit-name
– Nom de l'audit. -
node
– Identifiant du nœud constituant la source des journaux d'audit (node1
ornode2
). Il existe un nœud pour une instance mono-AZ et deux nœuds de réplication pour une instance multi-AZ. Il ne s'agit pas des nœuds primaires et secondaires, car les rôles des nœuds primaires et secondaires au fil du temps. L'identificateur de nœud est une simple étiquette.-
node1
– Premier nœud de la réplication (une instance mono-AZ ne comporte qu'un seul nœud). -
node2
– Deuxième nœud de la réplication (une instance multi-AZ ne comporte deux nœuds).
-
-
file-name
– Nom du fichier cible. Le nom du fichier est pris tel quel de SQL Server. -
ext
– Extension du fichier (zip
ousqlaudit
):-
zip
– Si la compression est activée (par défaut). -
sqlaudit
– Si la compression est désactivée.
-
Création manuelle d'un rôle IAM pour SQL Server Audit
Généralement, lorsque vous créez une nouvelle option, le AWS Management Console rôle IAM et la politique de confiance IAM sont créés pour vous. Cependant, vous pouvez créer manuellement un rôle IAM à utiliser avec les audits SQL Server pour pouvoir le personnaliser avec les exigences supplémentaires que vous pourriez avoir. Pour ce faire, vous créez un rôle IAM et vous déléguez des autorisations pour que le service Amazon RDS puisse utiliser votre compartiment Amazon S3. Lorsque vous créez ce rôle IAM, vous attachez des politiques d'approbation et d'autorisation. La politique d'approbation permet à Amazon RDS d'assumer ce rôle. La politique d'autorisation définit les actions que ce rôle peut exécuter. Pour plus d'informations, consultez la section Création d'un rôle pour déléguer des autorisations à un AWS service dans le guide de l'utilisateur d'AWS Identity and Access Management.
Vous pouvez utiliser les exemples de cette section pour créer les relations d'approbation et les politiques d'autorisation dont vous avez besoin.
Voici un exemple de relation d'approbation de rôle pour SQL Server Audit. Elle utilise le principal de service rds.amazonaws.com
pour autoriser RDS à écrire dans le compartiment S3. Un principal de service est un identifiant utilisé pour accorder des autorisations à un service. Chaque fois que vous autorisez l'accès à rds.amazonaws.com
de cette manière, vous autorisez RDS à exécuter une action en votre nom. Pour en savoir plus sur les principaux de service, veuillez consulter Éléments de politique JSON d'AWS : Principal.
Exemple relation d'approbation pour SQL Server Audit
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "
rds.amazonaws.com
" }, "Action": "sts:AssumeRole" } ] }
Nous vous recommandons d'utiliser les clés de contexte de condition globale aws:SourceArn
et aws:SourceAccount
dans des relations d'approbation basées sur les ressources pour limiter les autorisations du service à une ressource spécifique. C'est le moyen le plus efficace de se protéger contre le problème du député confus.
Vous pouvez utiliser les deux clés de contexte de condition globale et faire en sorte que la valeur aws:SourceArn
contienne l'ID de compte. Dans ce cas, la valeur aws:SourceAccount
et le compte dans la valeur aws:SourceArn
doivent utiliser le même ID de compte lorsqu'ils sont utilisés dans la même instruction.
-
Utilisez
aws:SourceArn
si vous souhaitez un accès interservices pour une seule ressource. -
Utilisez
aws:SourceAccount
si vous souhaitez autoriser une ressource de ce compte à être associée à l'utilisation interservices.
Dans la relation d'approbation, assurez-vous d'utiliser la clé de contexte de condition globale aws:SourceArn
avec l'Amazon Resource Name (ARN) complet des ressources qui accèdent au rôle. Pour SQL Server Audit, veillez à inclure à la fois le groupe d'options de base de données et les instances de base de données, comme indiqué dans l'exemple suivant.
Exemple relation d'approbation avec la clé de contexte de condition globale pour SQL Server Audit
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:rds:
Region
:my_account_ID
:db:db_instance_identifier
", "arn:aws:rds:Region
:my_account_ID
:og:option_group_name
" ] } } } ] }
Dans l'exemple suivant de politique d'autorisation pour SQL Server Audit, nous spécifions un ARN pour le compartiment Amazon S3. Vous pouvez utiliser des ARN pour identifier un compte, un utilisateur ou un rôle spécifique auquel vous souhaitez accorder l'accès. Pour de plus amples informations sur l'utilisation des ARN, veuillez consulter Amazon Resource Names (ARN).
Exemple politique d'autorisations pour SQL Server Audit
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/key_prefix
/*" } ] }
Note
L's3:ListAllMyBuckets
action est requise pour vérifier que le même AWS compte possède à la fois le compartiment S3 et l'instance de base de données SQL Server. L'action répertorie les noms des compartiments du compte.
Les espaces de noms de compartiment S3 sont globaux. Si vous supprimez accidentellement votre compartiment, un autre utilisateur peut créer un compartiment portant le même nom dans un compte différent. Ensuite, les données d'audit SQL Server sont écrites dans le nouveau compartiment.