

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.

# Exportez les données du journal vers Amazon S3 à l'aide du AWS CLI
<a name="S3ExportTasks"></a>

Dans l'exemple suivant, vous utilisez une tâche d'exportation pour exporter toutes les données d'un groupe de CloudWatch journaux Logs nommé `my-log-group` vers un compartiment Amazon S3 nommé`amzn-s3-demo-bucket`. Cet exemple suppose que vous avez déjà créé un groupe de journaux appelé `my-log-group`.

L'exportation des données du journal vers des compartiments S3 chiffrés par AWS KMS est prise en charge. L'exportation vers les compartiments chiffrés avec DSSE-KMS n'est pas prise en charge.

Les détails de la configuration de l'exportation varient selon que le compartiment Amazon S3 vers lequel vous souhaitez exporter se trouve dans le même compte que vos journaux à exporter ou dans un compte différent.

**Topics**
+ [Exportation sur le même compte (CLI)](#ExportSingleAccount-CLI)
+ [Exportation entre comptes (CLI)](#ExportCrossAccount-CLI)

## Exportation sur le même compte (CLI)
<a name="ExportSingleAccount-CLI"></a>

Si le compartiment Amazon S3 se trouve dans le même compte que les journaux à exporter, suivez les instructions de cette section.

**Topics**
+ [Création d'un compartiment S3 (CLI)](#CreateS3Bucket)
+ [Configurer les autorisations d'accès (CLI)](#CreateIAMUser-With-S3-Access-CLI)
+ [Définir des autorisations sur un compartiment S3 (CLI)](#S3Permissions)
+ [(Facultatif) Exportation vers un compartiment Amazon S3 de destination chiffré avec SSE-KMS (CLI)](#S3-Export-KMSEncrypted-CLI)
+ [Création d'une tâche d'exportation (CLI)](#CreateExportTask)

### Création d'un compartiment S3 (CLI)
<a name="CreateS3Bucket"></a>

Nous vous recommandons d'utiliser un bucket créé spécifiquement pour CloudWatch Logs. Toutefois, si vous souhaitez utiliser un bucket existant, vous pouvez ignorer cette procédure.

**Note**  
Le compartiment S3 doit résider dans la même région que les données de journal à exporter. CloudWatch Logs ne prend pas en charge l'exportation de données vers des compartiments S3 d'une autre région.

**Pour créer un compartiment S3 à l'aide du AWS CLI**  
À partir d'une invite de commande, exécutez la commande [create-bucket](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html) suivante, où `LocationConstraint` correspond à la région dans laquelle vous exportez les données de journal.

```
aws s3api create-bucket --bucket {{amzn-s3-demo-bucket}} --create-bucket-configuration LocationConstraint={{us-east-2}}
```

Voici un exemple de sortie.

```
{
    "Location": "/{{amzn-s3-demo-bucket}}"
}
```

### Configurer les autorisations d'accès (CLI)
<a name="CreateIAMUser-With-S3-Access-CLI"></a>

Pour créer la tâche d'exportation ultérieurement, vous devez être connecté avec le rôle `AmazonS3ReadOnlyAccess` IAM et disposer des autorisations suivantes :
+ `logs:CreateExportTask`
+ `logs:CancelExportTask`
+ `logs:DescribeExportTasks`
+ `logs:DescribeLogStreams`
+ `logs:DescribeLogGroups`

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
+ Utilisateurs et groupes dans AWS IAM Identity Center :

  Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
+ Utilisateurs gérés dans IAM par un fournisseur d’identité :

  Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
+ Utilisateurs IAM :
  + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
  + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

### Définir des autorisations sur un compartiment S3 (CLI)
<a name="S3Permissions"></a>

Par défaut, tous les objets et les compartiments S3 sont privés. Seul le propriétaire de la ressource, le compte ayant créé le compartiment, peut accéder au compartiment et aux objets qu’il contient. Le propriétaire de la ressource peut toutefois accorder des autorisations d'accès à d'autres ressources et à d'autres utilisateurs en créant une stratégie d'accès.

**Important**  
Pour sécuriser davantage les exportations vers les compartiments S3, nous vous demandons désormais de spécifier la liste des comptes sources autorisés à exporter les données des journaux vers votre compartiment S3.   
Dans l'exemple suivant, la liste des comptes figurant IDs dans la `aws:SourceAccount` clé correspond aux comptes à partir desquels un utilisateur peut exporter des données de journal vers votre compartiment S3. La clé `aws:SourceArn` correspond à la ressource pour laquelle l'action est entreprise. Vous pouvez limiter cela à un groupe de journaux spécifique ou utiliser un caractère générique, comme indiqué dans cet exemple.  
Nous vous recommandons d'inclure également l'ID du compte sur lequel le compartiment S3 est créé, afin de permettre l'exportation au sein du même compte.

**Définition des autorisations sur un compartiment S3**

1. Créez un fichier nommé `policy.json` et ajoutez la stratégie d'accès suivante, en changeant `amzn-s3-demo-bucket` par le nom de votre compartiment S3 et `Principal` par le point de terminaison de la région où vous exportez les données du journal, tel que `us-east-1`. Utilisez un éditeur de texte créer ce fichier de stratégie. N'utilisez pas la console IAM.

------
#### [ JSON ]

****  

   ```
    
       {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
             "Sid": "AllowGetBucketAcl",
             "Action": "s3:GetBucketAcl",
             "Effect": "Allow",
             "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
             "Principal": { "Service": "logs.{{us-east-1}}.amazonaws.com" },
             "Condition": {
               "StringEquals": {
                   "aws:SourceAccount": [
                       "{{123456789012}}",
                       "{{111122223333}}"
                   ]
               },
               "ArnLike": {
                       "aws:SourceArn": [
                           "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:*",
                           "arn:aws:logs:{{us-east-1}}:{{111122223333}}:log-group:*"
                       ]
               }
             }
         },
         {
             "Sid": "AllowPutObject",
             "Action": "s3:PutObject",
             "Effect": "Allow",
             "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*",
             "Principal": { "Service": "logs.{{us-east-1}}.amazonaws.com" },
             "Condition": {
               "StringEquals": {
                   "s3:x-amz-acl": "bucket-owner-full-control",
                   "aws:SourceAccount": [
                       "{{123456789012}}",
                       "{{111122223333}}"
                   ]
               },
               "ArnLike": {
                       "aws:SourceArn": [
                           "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:*",
                           "arn:aws:logs:{{us-east-1}}:{{111122223333}}:log-group:*"
                       ]
               }
             }
         }
       ]
   }
   ```

------

1. Définissez la politique que vous venez d'ajouter comme politique d'accès à votre compartiment à l'aide de la [put-bucket-policy](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html)commande. Cette politique permet à CloudWatch Logs d'exporter les données des journaux vers votre compartiment S3. Le propriétaire du compartiment disposera des autorisations d'accès complet à tous les objets exportés.

   ```
   aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json
   ```
**Avertissement**  
Si une ou plusieurs politiques sont déjà associées au bucket existant, ajoutez les instructions pour l'accès aux CloudWatch journaux à cette ou ces politiques. Nous vous recommandons d'évaluer le jeu d'autorisations obtenu pour vérifier son adéquation pour les utilisateurs appelés à accéder au compartiment.

### (Facultatif) Exportation vers un compartiment Amazon S3 de destination chiffré avec SSE-KMS (CLI)
<a name="S3-Export-KMSEncrypted-CLI"></a>

Cette procédure n'est nécessaire que si vous exportez vers un compartiment S3 qui utilise le chiffrement côté serveur avec. AWS KMS keys Ce chiffrement est connu sous le nom de SSE-KMS. 

**Exportation vers un compartiment chiffré avec SSE-KMS**

1. Utilisez un éditeur de texte pour créer un fichier nommé `key_policy.json` et ajoutez la stratégie d'accès suivante. Lorsque vous ajoutez la politique, apportez les modifications suivantes :
   + Remplacez {{Region}} par la région de vos journaux. 
   + {{account-ARN}}Remplacez-le par l'ARN du compte propriétaire de la clé KMS.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Allow CWL Service Principal usage",
               "Effect": "Allow",
               "Principal": {
                   "Service": "logs.{{Region}}.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "*"
           },
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "{{account-ARN}}"
               },
               "Action": [
                   "kms:GetKeyPolicy*",
                   "kms:PutKeyPolicy*",
                   "kms:DescribeKey*",
                   "kms:CreateAlias*",
                   "kms:ScheduleKeyDeletion*",
                   "kms:Decrypt"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Entrez la commande suivante :

   ```
   aws kms create-key --policy file://key_policy.json
   ```

   Voici un exemple de sortie de la commande :

   ```
   {
       "KeyMetadata": {
           "AWSAccountId": "{{account_id}}",
           "KeyId": "{{key_id}}",
           "Arn": "arn:aws:kms:us-east-2:{{account-ARN}}:key/{{key_id}}",
           "CreationDate": "{{time}}",
           "Enabled": true,
           "Description": "",
           "KeyUsage": "ENCRYPT_DECRYPT",
           "KeyState": "Enabled",
           "Origin": "AWS_KMS",
           "KeyManager": "CUSTOMER",
           "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
           "KeySpec": "SYMMETRIC_DEFAULT",
           "EncryptionAlgorithms": [
               "SYMMETRIC_DEFAULT"
           ],
           "MultiRegion": false
       }
   ```

1. À l'aide d'un éditeur de texte, créez un fichier nommé `bucketencryption.json` avec le contenu suivant.

   ```
   {
     "Rules": [
       {
         "ApplyServerSideEncryptionByDefault": {
           "SSEAlgorithm": "aws:kms",
           "KMSMasterKeyID": "{KMS Key ARN}"
         },
         "BucketKeyEnabled": true
       }
     ]
   }
   ```

1. Entrez la commande suivante, en la {{amzn-s3-demo-bucket}} remplaçant par le nom du compartiment vers lequel vous exportez les journaux.

   ```
   aws s3api put-bucket-encryption --bucket {{amzn-s3-demo-bucket}} --server-side-encryption-configuration file://bucketencryption.json
   ```

   Si la commande ne renvoie pas d'erreur, le processus est réussi.

### Création d'une tâche d'exportation (CLI)
<a name="CreateExportTask"></a>

Utilisez la commande suivante pour créer la tâche d'exportation. Une fois que vous l'avez créée, la tâche d'exportation peut prendre de quelques secondes à quelques heures, en fonction de la taille des données à exporter.

**Pour exporter des données vers Amazon S3 à l'aide du AWS CLI**

1. Connectez-vous avec les autorisations suffisantes, comme indiqué dans [Configurer les autorisations d'accès (CLI)](#CreateIAMUser-With-S3-Access-CLI).

1. À l'invite de commandes, utilisez la [create-export-task](https://docs.aws.amazon.com/cli/latest/reference/logs/create-export-task.html)commande suivante pour créer la tâche d'exportation.

   ```
   aws logs create-export-task --profile CWLExportUser --task-name "{{my-log-group-09-10-2015}}" --log-group-name "{{my-log-group}}" --from {{1441490400000}} --to {{1441494000000}} --destination "{{amzn-s3-demo-bucket}}" --destination-prefix "{{export-task-output}}"
   ```

   Voici un exemple de sortie.

   ```
   {
       "taskId": "{{cda45419-90ea-4db5-9833-aade86253e66}}"
   }
   ```

## Exportation entre comptes (CLI)
<a name="ExportCrossAccount-CLI"></a>

Si le compartiment Amazon S3 se trouve dans un compte différent de celui des journaux à exporter, suivez les instructions de cette section.

**Topics**
+ [Création d'un compartiment S3 pour l'exportation entre comptes (CLI)](#CreateS3Bucket-CLI-crossaccount)
+ [Configurer les autorisations d'accès pour l'exportation entre comptes (CLI)](#CreateIAMUser-With-S3-Access-CLI-crossaccount)
+ [Définissez des autorisations sur un compartiment S3 pour l'exportation entre comptes (CLI)](#S3Permissions-CLI-crossaccount)
+ [(Facultatif) Exportation vers un compartiment Amazon S3 de destination chiffré avec SSE-KMS pour l'exportation entre comptes (CLI)](#S3-Export-KMSEncrypted-CLI-crossaccount)
+ [Création d'une tâche d'exportation pour l'exportation entre comptes (CLI)](#CreateExportTask-CLI-crossaccount)

### Création d'un compartiment S3 pour l'exportation entre comptes (CLI)
<a name="CreateS3Bucket-CLI-crossaccount"></a>

Nous vous recommandons d'utiliser un bucket créé spécifiquement pour CloudWatch Logs. Cependant, si vous souhaitez utiliser un compartiment existant, vous pouvez passer à l'étape 2.

**Note**  
Le compartiment S3 doit résider dans la même région que les données de journal à exporter. CloudWatch Logs ne prend pas en charge l'exportation de données vers des compartiments S3 d'une autre région.

**Pour créer un compartiment S3 à l'aide du AWS CLI**  
À partir d'une invite de commande, exécutez la commande [create-bucket](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html) suivante, où `LocationConstraint` correspond à la région dans laquelle vous exportez les données de journal.

```
aws s3api create-bucket --bucket {{amzn-s3-demo-bucket}} --create-bucket-configuration LocationConstraint={{us-east-2}}
```

Voici un exemple de sortie.

```
{
    "Location": "/{{amzn-s3-demo-bucket}}"
}
```

### Configurer les autorisations d'accès pour l'exportation entre comptes (CLI)
<a name="CreateIAMUser-With-S3-Access-CLI-crossaccount"></a>

Tout d'abord, vous devez créer une nouvelle politique IAM pour permettre à CloudWatch Logs d'avoir l'`s3:PutObject`action pour le compartiment Amazon S3 de destination dans le compte de destination. 

Outre les `s3:PutObject` actions, les actions supplémentaires incluses dans la politique varient selon que le compartiment de destination utilise le AWS KMS chiffrement ou qu'il a été ACLs activé à l'aide du paramètre [S3 Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). 
+ Si vous utilisez le chiffrement KMS, ajoutez les `kms:Decrypt` actions `kms:GenerateDataKey` et pour la ressource clé
+ Si ACLs elles sont activées sur le bucket, ajoutez l'`s3:PutObjectAcl`action pour la ressource du bucket.

Modifiez `amzn-s3-demo-bucket` le nom de votre compartiment S3 de destination dans les politiques suivantes.

La politique que vous créez varie selon que le compartiment de destination utilise ou non le chiffrement AWS KMS . S'il n'utilise pas AWS KMS le chiffrement, créez une politique avec le contenu suivant.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
        }
    ]
}
```

------

Si le compartiment de destination utilise AWS KMS le chiffrement, créez une politique avec le contenu suivant.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
        }
    ]
}
```

------

S' ACLs ils sont activés sur le compartiment de destination, ajoutez s3 : PutObjectAcl au bloc s3 : PutObject Action dans les politiques ci-dessus.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
               "s3:PutObject",
               "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
        }
    ]
}
```

------

Pour créer une tâche d'exportation, vous devez être connecté avec un rôle IAM auquel est attachée la politique `AmazonS3ReadOnlyAccess` gérée, la stratégie IAM créée ci-dessus, et également avec les autorisations suivantes :
+ `logs:CreateExportTask`
+ `logs:CancelExportTask`
+ `logs:DescribeExportTasks`
+ `logs:DescribeLogStreams`
+ `logs:DescribeLogGroups`

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
+ Utilisateurs et groupes dans AWS IAM Identity Center :

  Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
+ Utilisateurs gérés dans IAM par un fournisseur d’identité :

  Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
+ Utilisateurs IAM :
  + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
  + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

### Définissez des autorisations sur un compartiment S3 pour l'exportation entre comptes (CLI)
<a name="S3Permissions-CLI-crossaccount"></a>

Par défaut, tous les objets et les compartiments S3 sont privés. Seul le propriétaire de la ressource, le compte ayant créé le compartiment, peut accéder au compartiment et aux objets qu’il contient. Le propriétaire de la ressource peut toutefois accorder des autorisations d'accès à d'autres ressources et à d'autres utilisateurs en créant une stratégie d'accès.

**Important**  
Pour sécuriser davantage les exportations vers les compartiments S3, nous vous demandons désormais de spécifier la liste des comptes sources autorisés à exporter les données des journaux vers votre compartiment S3.   
Dans l'exemple suivant, la liste des comptes figurant IDs dans la `aws:SourceAccount` clé correspond aux comptes à partir desquels un utilisateur peut exporter des données de journal vers votre compartiment S3. La clé `aws:SourceArn` correspond à la ressource pour laquelle l'action est entreprise. Vous pouvez limiter cela à un groupe de journaux spécifique ou utiliser un caractère générique, comme indiqué dans cet exemple.  
Nous vous recommandons d'inclure également l'ID du compte sur lequel le compartiment S3 est créé, afin de permettre l'exportation au sein du même compte.

**Définition des autorisations sur un compartiment S3**

1. Créez un fichier nommé `policy.json` et ajoutez la politique d'accès suivante, en remplaçant `amzn-s3-demo-bucket` le nom de votre compartiment S3 de destination, `Principal` au point de terminaison de la région dans laquelle vous exportez les données de journal, par exemple`us-west-1`. Utilisez un éditeur de texte créer ce fichier de stratégie. N'utilisez pas la console IAM.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
             "Action": "s3:GetBucketAcl",
             "Effect": "Allow",
             "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
             "Principal": { "Service": "logs.{{us-east-1}}.amazonaws.com" },
             "Condition": {
               "StringEquals": {
                   "aws:SourceAccount": [
                   "{{123456789012}}",
                   "{{111122223333}}"
                   ]
               },
               "ArnLike": {
                       "aws:SourceArn": [
                       "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:*",
                       "arn:aws:logs:{{us-east-1}}:{{111122223333}}:log-group:*"
                        ]
               }
             }
         },
         {
             "Action": "s3:PutObject" ,
             "Effect": "Allow",
             "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*",
             "Principal": { "Service": "logs.{{us-east-1}}.amazonaws.com" },
             "Condition": {
               "StringEquals": {
                   "s3:x-amz-acl": "bucket-owner-full-control",
                   "aws:SourceAccount": [
                   "{{123456789012}}",
                   "{{111122223333}}"
                   ]
               },
               "ArnLike": {
                       "aws:SourceArn": [
                       "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:*",
                       "arn:aws:logs:{{us-east-1}}:{{111122223333}}:log-group:*"
                       ]
               }
             }
         },
         {
             "Effect": "Allow",
             "Principal": {
             "AWS": "arn:aws:iam::{{111122223333}}:role/{{role_name}}"
             },
             "Action": "s3:PutObject",
             "Resource": "arn:aws:s3:::>amzn-s3-demo-bucket/*",
             "Condition": {
               "StringEquals": {
                   "s3:x-amz-acl": "bucket-owner-full-control"
               }
             }
          }
       ]
   }
   ```

------

1. Définissez la politique que vous venez d'ajouter comme politique d'accès à votre compartiment à l'aide de la [put-bucket-policy](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html)commande. Cette politique permet à CloudWatch Logs d'exporter les données des journaux vers votre compartiment S3. Le propriétaire du compartiment disposera des autorisations d'accès complet à tous les objets exportés.

   ```
   aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json
   ```
**Avertissement**  
Si une ou plusieurs politiques sont déjà associées au bucket existant, ajoutez les instructions pour l'accès aux CloudWatch journaux à cette ou ces politiques. Nous vous recommandons d'évaluer le jeu d'autorisations obtenu pour vérifier son adéquation pour les utilisateurs appelés à accéder au compartiment.

### (Facultatif) Exportation vers un compartiment Amazon S3 de destination chiffré avec SSE-KMS pour l'exportation entre comptes (CLI)
<a name="S3-Export-KMSEncrypted-CLI-crossaccount"></a>

Cette procédure n'est nécessaire que si vous exportez vers un compartiment S3 qui utilise le chiffrement côté serveur avec. AWS KMS keys Ce chiffrement est connu sous le nom de SSE-KMS. 

**Exportation vers un compartiment chiffré avec SSE-KMS**

1. Utilisez un éditeur de texte pour créer un fichier nommé `key_policy.json` et ajoutez la stratégie d'accès suivante. Lorsque vous ajoutez la politique, apportez les modifications suivantes :
   + Remplacez {{us-east-1}} par la région de vos journaux. 
   + {{account-ARN}}Remplacez-le par l'ARN du compte propriétaire de la clé KMS.
   + {{123456789012}}Remplacez-le par le numéro de compte auquel appartient la clé KMS.
   + {{key\_id}}avec l'identifiant de la clé KMS.
   + {{role\_name}}avec le rôle utilisé pour créer la tâche d'exportation.

------
#### [ JSON ]

****  

   ```
       {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCWLServicePrincipalUsage",
               "Effect": "Allow",
               "Principal": {
                   "Service": "logs.{{us-east-1}}.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "*"
           },
           {
               "Sid": "EnableIAMUserPermissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "{{account-ARN}}"
               },
               "Action": [
                   "kms:GetKeyPolicy*",
                   "kms:PutKeyPolicy*",
                   "kms:DescribeKey*",
                   "kms:CreateAlias*",
                   "kms:ScheduleKeyDeletion*",
                   "kms:Decrypt"
               ],
               "Resource": "*"
           },
           {
               "Sid": "EnableIAMRolePermissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::{{111122223333}}:role/{{role_name}}"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
           }
       ]
   }
   ```

------

1. Entrez la commande suivante :

   ```
   aws kms create-key --policy file://key_policy.json
   ```

   Voici un exemple de sortie de la commande :

   ```
   {
       "KeyMetadata": {
           "AWSAccountId": "{{account_id}}",
           "KeyId": "{{key_id}}",
           "Arn": "arn:aws:kms:us-east-1:{{123456789012}}:key/{{key_id}}",
           "CreationDate": "{{time}}",
           "Enabled": true,
           "Description": "",
           "KeyUsage": "ENCRYPT_DECRYPT",
           "KeyState": "Enabled",
           "Origin": "AWS_KMS",
           "KeyManager": "CUSTOMER",
           "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
           "KeySpec": "SYMMETRIC_DEFAULT",
           "EncryptionAlgorithms": [
               "SYMMETRIC_DEFAULT"
           ],
           "MultiRegion": false
       }
   ```

1. À l'aide d'un éditeur de texte, créez un fichier nommé `bucketencryption.json` avec le contenu suivant.

   ```
   {
     "Rules": [
       {
         "ApplyServerSideEncryptionByDefault": {
           "SSEAlgorithm": "aws:kms",
           "KMSMasterKeyID": "{KMS Key ARN}"
         },
         "BucketKeyEnabled": true
       }
     ]
   }
   ```

1. Entrez la commande suivante, en la {{amzn-s3-demo-bucket}} remplaçant par le nom du compartiment vers lequel vous exportez les journaux.

   ```
   aws s3api put-bucket-encryption --bucket {{amzn-s3-demo-bucket}} --server-side-encryption-configuration file://bucketencryption.json
   ```

   Si la commande ne renvoie pas d'erreur, le processus est réussi.

### Création d'une tâche d'exportation pour l'exportation entre comptes (CLI)
<a name="CreateExportTask-CLI-crossaccount"></a>

Utilisez la commande suivante pour créer la tâche d'exportation. Une fois que vous l'avez créée, la tâche d'exportation peut prendre de quelques secondes à quelques heures, en fonction de la taille des données à exporter.

**Pour exporter des données vers Amazon S3 à l'aide du AWS CLI**

1. Connectez-vous avec les autorisations suffisantes, comme indiqué dans [Configurer les autorisations d'accès (CLI)](#CreateIAMUser-With-S3-Access-CLI).

1. À l'invite de commandes, utilisez la [create-export-task](https://docs.aws.amazon.com/cli/latest/reference/logs/create-export-task.html)commande suivante pour créer la tâche d'exportation.

   ```
   aws logs create-export-task --profile CWLExportUser --task-name "{{my-log-group-09-10-2015}}" --log-group-name "{{my-log-group}}" --from {{1441490400000}} --to {{1441494000000}} --destination "{{amzn-s3-demo-bucket}}" --destination-prefix "{{export-task-output}}"
   ```

   Voici un exemple de sortie.

   ```
   {
       "taskId": "{{cda45419-90ea-4db5-9833-aade86253e66}}"
   }
   ```