

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
<a name="Appendix.SQLServer.Options.Audit"></a>

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 plus d’informations, consultez [SQL Server Audit (Database Engine)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) dans la documentation Microsoft SQL Server.

## Audit SQL Server avec des flux d'activité de base de données
<a name="Appendix.SQLServer.DAS.Audit"></a>

Vous pouvez utiliser les flux d’activité de base de données pour RDS pour intégrer les événements d'audit SQL Server aux outils de surveillance de l'activité de base de données d'Imperva, McAfee et IBM. 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](DBActivityStreams.md#DBActivityStreams.Overview.SQLServer-auditing) 

**Topics**
+ [Audit SQL Server avec des flux d'activité de base de données](#Appendix.SQLServer.DAS.Audit)
+ [Prise en charge de SQL Server Audit](#Appendix.SQLServer.Options.Audit.Support)
+ [Ajout de SQL Server Audit aux options d'instance de base de données](Appendix.SQLServer.Options.Audit.Adding.md)
+ [Utilisation de SQL Server Audit](Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications.md)
+ [Consultation des journaux d'audit](Appendix.SQLServer.Options.Audit.AuditRecords.md)
+ [Utilisation de SQL Server Audit avec des instances multi-AZ](#Appendix.SQLServer.Options.Audit.Multi-AZ)
+ [Configuration d'un compartiment S3](Appendix.SQLServer.Options.Audit.S3bucket.md)
+ [Création manuelle d'un rôle IAM pour SQL Server Audit](Appendix.SQLServer.Options.Audit.IAM.md)

## Prise en charge de SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.Support"></a>

Dans Amazon RDS à partir de SQL Server 2016, 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 plus d’informations, consultez [SQL Server Audit (moteur de base de données)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) dans la documentation SQL Server.

RDS prend en charge la configuration des paramètres d'option suivants pour SQL Server Audit : 


| Paramètre d’option | Valeurs valides | Description | 
| --- | --- | --- | 
| IAM\$1ROLE\$1ARN | Un Amazon Resource Name (ARN) valide au format arn:aws:iam::account-id:role/role-name. | 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)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) dans le document Références générales AWS. | 
| S3\$1BUCKET\$1ARN | Un ARN valide au format arn:aws:s3:::amzn-s3-demo-bucket ou arn:aws:s3:::amzn-s3-demo-bucket/key-prefix | L'ARN du compartiment S3 où vous voulez stocker vos journaux d'audit. | 
| ENABLE\$1COMPRESSION | true ou false | Contrôle la compression des journaux d'audit. Par défaut, la compression est activée (définie sur true). | 
| RETENTION\$1TIME | 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
<a name="Appendix.SQLServer.Options.Audit.Adding"></a>

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 : 

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

1. Ajouter et configurer toutes les options requises.

1. 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**

1. 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](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Ajoutez l'option **SQLSERVER\$1AUDIT** 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](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 
   + 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](Appendix.SQLServer.Options.Audit.IAM.md).
   + 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.

1. 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](Overview.DBInstance.Modifying.md). 

## Modification de l'option SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.Modifying"></a>

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](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

## Suppression de SQL Server Audit des options d'instance de base de données
<a name="Appendix.SQLServer.Options.Audit.Removing"></a>

Vous pouvez désactiver la fonction SQL Server Audit en désactivant les audits, puis en supprimant l'option. 

**Pour supprimer les audits**

1. 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](https://docs.microsoft.com/sql/relational-databases/system-catalog-views/security-catalog-views-transact-sql) dans la documentation Microsoft SQL Server. 

1. 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](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + 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](Overview.DBInstance.Modifying.md).

1. 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
<a name="Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications"></a>

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
<a name="Appendix.SQLServer.Options.Audit.CreateAudits"></a>

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](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-transact-sql) dans la documentation Microsoft SQL Server.

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écifiez `D:\rdsdbdata\SQLAudit`.
+ Pour `MAXSIZE`, spécifiez une taille comprise entre 2 Mo et 50 Mo.
+ Ne configurez pas `MAX_ROLLOVER_FILES` ou `MAX_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
<a name="Appendix.SQLServer.Options.Audit.CreateSpecifications"></a>

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](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-specification-transact-sql) et [CREATE DATABASE AUDIT SPECIFICATION](https://docs.microsoft.com/sql/t-sql/statements/create-database-audit-specification-transact-sql) dans la documentation Microsoft SQL Server.

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
<a name="Appendix.SQLServer.Options.Audit.AuditRecords"></a>

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](Appendix.SQLServer.Options.Audit.Adding.md).

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
<a name="Appendix.SQLServer.Options.Audit.Multi-AZ"></a>

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 :

1. Créez un audit de serveur ou une spécification d'audit de serveur sur le nœud primaire.

1. 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
<a name="Appendix.SQLServer.Options.Audit.S3bucket"></a>

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 et dans le même AWS compte 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.
+ Votre rôle IAM doit disposer d’autorisations pour la clé KMS gérée par le client associée au chiffrement côté serveur du compartiment S3.

La clé cible qui est utilisée pour stocker les données suit ce schéma de dénomination : `amzn-s3-demo-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 :
+ ***amzn-s3-demo-bucket*** – 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` or `node2`). 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’identifiant 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` ou `sqlaudit`):
  + **`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
<a name="Appendix.SQLServer.Options.Audit.IAM"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dans le *guide de l'utilisateur d'AWSIdentity 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

**Example 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 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

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.

**Example 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 l'utiliser ARNs pour identifier un compte, un utilisateur ou un rôle spécifique auquel vous souhaitez accorder l'accès. Pour plus d'informations sur l'utilisation ARNs, consultez [Amazon resource names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

**Example 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:::amzn-s3-demo-bucket"
	        },
	        {
	            "Effect": "Allow",
	            "Action": [
	                "s3:PutObject",
	                "s3:ListMultipartUploadParts",
	                "s3:AbortMultipartUpload"
	            ],
	            "Resource": "arn:aws:s3:::amzn-s3-demo-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.