

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.

# Vérification de l’intégrité des données d’un objet au repos dans Amazon S3
<a name="checking-object-integrity-at-rest"></a>

Si vous devez vérifier le contenu des jeux de données stockés dans Amazon S3, l’opération [Calculer la somme de contrôle](https://docs.aws.amazon.com//AmazonS3/latest/userguide/batch-ops-compute-checksums.html) de S3 Batch Operations calcule à la fois la somme de contrôle des objets complets ou la somme de contrôle composite des objets au repos. L’opération **Calculer la somme de contrôle** utilise les opérations par lot pour calculer de manière asynchrone les valeurs de somme de contrôle d’un groupe d’objets, et génère automatiquement un rapport d’intégrité consolidé, sans créer de nouvelles copies de vos données, ni restaurer ou télécharger de données.

Avec l’opération **Calculer la somme de contrôle**, vous pouvez vérifier efficacement des milliards d’objets en une seule demande. Pour chaque demande de tâche **Calculer la somme de contrôle**, S3 calcule la valeur de somme de contrôle, et l’inclut dans un rapport d’intégrité généré automatiquement (également appelé rapport d’achèvement). Vous pouvez ensuite utiliser le rapport d’achèvement pour valider l’intégrité de votre jeu de données.

L’opération **Calculer la somme de contrôle** fonctionne avec n’importe quel objet stocké dans S3, indépendamment de la classe de stockage ou de la taille de l’objet. Que vous ayez besoin de vérifier vos objets dans le cadre des bonnes pratiques de conservation des données ou de respecter des exigences de conformité, l’opération **Calculer la somme de contrôle** réduit les coûts, le temps et les efforts nécessaires à la validation des données en effectuant les calculs de somme de contrôle au repos. Pour plus d’informations sur la tarification de l’opération **Calculer la somme de contrôle**, consultez l’onglet **Gestion et informations** de la page [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/).

Vous pouvez ensuite utiliser le rapport d’achèvement généré pour le comparer avec les valeurs de somme de contrôle que vous avez stockées dans vos bases de données afin de vérifier si vos jeux de données n’ont pas été modifiés au fil du temps. Cette approche vous aide à préserver l'intégrité end-to-end des données pour répondre aux besoins commerciaux et de conformité. Par exemple, vous pouvez utiliser l’opération **Calculer la somme de contrôle** pour soumettre une liste d’objets stockés dans les classes de stockage S3 Glacier aux fins des audits de sécurité annuels. En outre, la gamme d’algorithmes de somme de contrôle pris en charge vous permet de maintenir la continuité avec les algorithmes utilisés dans vos applications.

## Utilisation des algorithmes de total de contrôle pris en charge
<a name="using-additional-checksums-rest"></a>

Pour les données au repos, vous pouvez calculer les sommes de contrôle à l’aide de l’un des algorithmes de somme de contrôle pris en charge :
+ CRC-64/NVME (`CRC64NVME`) : prend en charge le type de somme de contrôle de l’objet complet uniquement.
+ CRC-32 (`CRC32`) : prend en charge à la fois le type de somme de contrôle de l’objet complet et le type de somme de contrôle composite.
+ CRC-32C (`CRC32C`) : prend en charge à la fois le type de somme de contrôle de l’objet complet et le type de somme de contrôle composite.
+ SHA-1 (`SHA1`) : prend en charge à la fois le type de somme de contrôle de l’objet complet et le type de somme de contrôle composite.
+ SHA-256 (`SHA256`) : prend en charge à la fois le type de somme de contrôle de l’objet complet et le type de somme de contrôle composite.
+ MD5 (`MD5`) : Supporte à la fois les types d'objet complet et de somme de contrôle composite.

## Utilisation de l’opération **Calculer la somme de contrôle**
<a name="Compute-checksums"></a>

Pour les objets stockés dans Amazon S3, vous pouvez utiliser l’opération **Calculer la somme de contrôle** avec S3 Batch Operations pour vérifier le contenu des données stockées au repos. Vous pouvez [créer une tâche Compute checksum Batch Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-create-job.html) à l'aide de la console Amazon S3, AWS Command Line Interface (AWS CLI), de l'API REST ou du AWS SDK. Lorsque la tâche **Calculer la somme de contrôle** est terminée, vous recevez un rapport d’achèvement. Pour plus d’informations sur l’utilisation du rapport d’achèvement, consultez [Suivi de l’état de la tâche et des rapports de fin de tâche](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-job-status.html).

Avant de créer votre tâche **Compute checksum**, vous devez créer un rôle S3 Batch Operations Gestion des identités et des accès AWS (IAM) pour autoriser Amazon S3 à effectuer des actions en votre nom. Vous devez l’autoriser à lire le fichier manifeste et à écrire un rapport d’achèvement dans le compartiment S3. Pour de plus amples informations, veuillez consulter [Calcul des sommes de contrôle](batch-ops-compute-checksums.md).

### Utilisation de la console S3
<a name="Compute-checksum-console"></a>

**Pour utiliser l’opération **Calculer la somme de contrôle****

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans la barre de navigation en haut de la page, choisissez le nom du fichier actuellement affiché Région AWS. Choisissez la région dans laquelle vous souhaitez créer la tâche.
**Note**  
Pour les opérations de copie, vous devez créer la tâche dans la même région que le compartiment de destination. Pour toutes les autres opérations, vous devez créer la tâche dans la même région que les objets figurant dans le manifeste.

1. Choisissez **Opérations par lot** dans le volet de navigation de gauche de la console Amazon S3.

1. Choisissez **Créer une tâche**.

1. Consultez l' Région AWS endroit où vous souhaitez créer votre emploi.
**Note**  
Pour les opérations de copie, vous devez créer la tâche dans la même région que le compartiment de destination. Pour toutes les autres opérations, vous devez créer la tâche dans la même région que les objets figurant dans le manifeste.

1. Sous **Format du manifeste**, choisissez le type d’objet manifeste à utiliser.
   + Si vous choisissez le **rapport S3 Inventory (manifest.json)**, saisissez le chemin d’accès à l’objet `manifest.json` et (éventuellement) l’**ID de version d’objet du manifeste** si vous souhaitez utiliser une version d’objet spécifique. Vous pouvez également choisir **Parcourir S3** et choisir le fichier manifeste JSON, qui renseigne automatiquement tous les champs de l’objet du manifeste.
   + Si vous choisissez **CSV**, choisissez le type d’emplacement du manifeste, puis saisissez le chemin d’accès à un objet du manifeste au format CSV ou choisissez **Parcourir S3** pour sélectionner un objet du manifeste. L’objet manifeste doit respecter le format décrit dans la console. Si vous souhaitez utiliser une version spécifique de l’objet du manifeste, vous pouvez également spécifier l’ID de version de l’objet.
   + Si vous choisissez **Créer un manifeste à l’aide de la configuration de réplication S3**, une liste d’objets est générée à l’aide de la configuration de réplication et éventuellement enregistrée dans la destination de votre choix. Lorsque vous utilisez une configuration de réplication pour générer le manifeste, la seule opération disponible est **Répliquer**.

1. Choisissez **Suivant**.

1. Sous **Opération**, choisissez l’opération **Calculer la somme de contrôle** pour calculer les sommes de contrôle de tous les objets répertoriés dans le manifeste. Choisissez le **type de somme de contrôle** et la **fonction de somme de contrôle** de votre tâche. Ensuite, choisissez **Suivant**.

1. Renseignez l’option **Configurer des options supplémentaires**, puis sélectionnez **Suivant**.

1. Sur la page **Configurer des options supplémentaires**, renseignez votre tâche **Calculer la somme de contrôle**.
**Note**  
Sous **Rapport d’achèvement**, veillez à confirmer la déclaration de reconnaissance. Cet déclaration confirme que vous comprenez que le rapport d’achèvement contient des valeurs de somme de contrôle qui sont utilisées pour vérifier l’intégrité des données stockées dans Amazon S3. Le rapport d’achèvement doit donc être partagé avec prudence. Sachez également que si vous créez une demande Compute checksum et que vous spécifiez l'emplacement du bucket d'un propriétaire de compte externe pour stocker votre rapport d'achèvement, assurez-vous de spécifier l' Compte AWS ID du propriétaire du bucket externe.

1. Choisissez **Suivant**.

1. Sur la page **Vérification**, passez en revue et confirmez vos paramètres.

1. (Facultatif) Si vous avez besoin d’apporter des modifications, choisissez **Précédent** pour revenir à la page précédente, ou choisissez **Modifier** pour mettre à jour une étape spécifique.

1. Après avoir confirmé vos modifications, choisissez **Créer une tâche**.

**Pour répertorier toutes les demandes **Calculer la somme de contrôle** et suivre leur progression**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation de gauche, choisissez **Opérations par lot**.

1. Sur la page **Opérations par lot**, vous pouvez passer en revue les détails de la tâche, tels que sa priorité, son taux d’achèvement et le nombre total d’objets.

1. Si vous souhaitez gérer ou cloner une tâche **Calculer la somme de contrôle** spécifique, cliquez sur l’**ID de la tâche** pour consulter des informations supplémentaires sur cette dernière.

1. Sur la page de la tâche **Calculer la somme de contrôle**, passez en revue les détails de celle-ci.

Chaque tâche d’opérations par lot progresse selon différents [statuts de tâche](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-job-status.html#batch-ops-job-status-table). Vous pouvez également [activer des événements AWS CloudTrail](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-cloudtrail-logging-for-s3.html) dans la console S3 pour recevoir des alertes en cas de changement du statut des tâches. Pour les tâches actives, vous pouvez consulter la tâche en cours d’exécution et son taux d’achèvement sur la page **Détails de la tâche**.

### En utilisant le AWS SDKs
<a name="Compute-checksum-sdk"></a>

------
#### [ Java ]

**Example Exemple : création d’une tâche **Calculer la somme de contrôle****  
L’exemple suivant vous montre comment créer une tâche **Calculer la somme de contrôle** (dans le cadre d’une demande **Créer une tâche**) et comment spécifier un manifeste :  

```
// Required parameters
String accountId = "111122223333";
String roleArn = "arn:aws:iam::111122223333:role/BatchOperations";
String manifestArn = "arn:aws:s3:::my_manifests/manifest.csv";
String manifestEtag = "60e460c9d1046e73f7dde5043ac3ae85";
String reportBucketArn = "arn:aws:s3:::amzn-s3-demo-completion-report-bucket";
String reportExpectedBucketOwner = "111122223333";
String reportPrefix = "demo-report";

// Job Operation
S3ComputeObjectChecksumOperation s3ComputeObjectChecksum = S3ComputeObjectChecksumOperation.builder()
    .checksumAlgorithm(ComputeObjectChecksumAlgorithm.CRC64)
    .checksumType(ComputeObjectChecksumType.COMPOSITE)
    .build();

JobOperation operation = JobOperation.builder()
    .s3ComputeObjectChecksum(s3ComputeObjectChecksum)
    .build();

// Job Manifest
JobManifestLocation location = JobManifestLocation.builder()
    .eTag(manifestEtag)
    .objectArn(manifestArn)
    .build();

JobManifestSpec spec = JobManifestSpec.builder()
    .format(JobManifestFormat.S3_BATCH_OPERATIONS_CSV_20180820)
    .fields(Arrays.asList(JobManifestFieldName.BUCKET, JobManifestFieldName.KEY))
    .build();

JobManifest manifest = JobManifest.builder()
    .location(location)
    .spec(spec)
    .build();

// Completion Report
JobReport report = JobReport.builder()
    .bucket(reportBucketArn)
    .enabled(true) // Must be true
    .expectedBucketOwner(reportExpectedBucketOwner)
    .format(JobReportFormat.REPORT_CSV_20180820)
    .prefix(reportPrefix)
    .reportScope(JobReportScope.ALL_TASKS)
    .build();

// Create Job Request
CreateJobRequest request = CreateJobRequest.builder()
    .accountId(accountId)
    .confirmationRequired(false)
    .manifest(manifest)
    .operation(operation)
    .priority(10)
    .report(report)
    .roleArn(roleArn);

// Create the client
S3ControlClient client = S3ControlClient.builder()
    .credentialsProvider(new ProfileCredentialsProvider())
    .region(Region.US_EAST_1)
    .build();

// Send the request
try {
    CreateJobResponse response = client.createJob(request);
    System.out.println(response);    
} catch (AwsServiceException e) {
    System.out.println("AwsServiceException: " + e.getMessage());
    throw new RuntimeException(e);
} catch (SdkClientException e) {
    System.out.println("SdkClientException: " + e.getMessage());
    throw new RuntimeException(e);
}
```

**Example Exemple : affichage des détails d’une tâche **Calculer la somme de contrôle****  
L’exemple suivant montre comment spécifier l’ID d’une tâche pour afficher les détails de celle-ci (notamment son taux d’achèvement) dans le cadre d’une demande de tâche **Calculer la somme de contrôle** :  

```
DescribeJobRequest request = DescribeJobRequest.builder()
        .accountId("1234567890")
        .jobId("a16217a1-e082-48e5-b04f-31fac3a66b13")
        .build();
```

------

### À l'aide du AWS CLI
<a name="Compute-checksum-cli"></a>

Vous pouvez utiliser la commande [https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html) pour créer une tâche d’opérations par lot et fournir la liste des objets. Spécifiez ensuite l’algorithme et le type de somme de contrôle, ainsi que le compartiment de destination dans lequel vous souhaitez enregistrer le rapport **Calculer la somme de contrôle**. L'exemple suivant crée une tâche de calcul de **somme de contrôle S3 Batch Operations Compute** en utilisant un manifeste généré par S3 pour le Compte AWS *111122223333*.

Pour utiliser cette commande, remplacez le *user input placeholders* par vos propres informations :

```
aws s3control create-job \
    --account-id 111122223333 \
    --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::my-manifest-bucket/manifest.csv","ETag":"e0e8bfc50e0f0c5d5a1a5f0e0e8bfc50"}}' \
    --manifest-generator '{
        "S3JobManifestGenerator": {
          "ExpectedBucketOwner": "111122223333",
          "SourceBucket": "arn:aws:s3:::amzn-s3-demo-source-bucket",
          "EnableManifestOutput": true,
          "ManifestOutputLocation": {
            "ExpectedManifestBucketOwner": "111122223333",
            "Bucket": "arn:aws:s3:::amzn-s3-demo-manifest-bucket",
            "ManifestPrefix": "prefix",
            "ManifestFormat": "S3InventoryReport_CSV_20211130"
          },
          "Filter": {
            "CreatedAfter": "2023-09-01",
            "CreatedBefore": "2023-10-01",
            "KeyNameConstraint": {
              "MatchAnyPrefix": [
                "prefix"
              ],
              "MatchAnySuffix": [
                "suffix"
              ]
            },
            "ObjectSizeGreaterThanBytes": 100,
            "ObjectSizeLessThanBytes": 200,
            "MatchAnyStorageClass": [
              "STANDARD",
              "STANDARD_IA"
            ]
          }
        }
      }' \
    --operation '{"S3ComputeObjectChecksum":{"ChecksumAlgorithm":"CRC64NVME","ChecksumType":"FULL_OBJECT"}}' \
    --report '{"Bucket":"arn:aws:s3:::my-report-bucket","Format":"Report_CSV_20180820","Enabled":true,"Prefix":"batch-op-reports/","ReportScope":"AllTasks","ExpectedBucketOwner":"111122223333"}' \
    --priority 10 \
    --role-arn arn:aws:iam::123456789012:role/S3BatchJobRole \
    --client-request-token 6e023a7e-4820-4654-8c81-7247361aeb73 \
    --description "Compute object checksums" \
    --region us-west-2
```

Après avoir soumis la tâche **Calculer la somme de contrôle**, vous recevez l’ID de la tâche en réponse. Celui-ci s’affiche sur la page de liste de S3 Batch Operations. Amazon S3 traite la liste des objets et calcule les sommes de contrôle de chaque objet. Une fois la tâche terminée, S3 fournit un rapport **Calculer la somme de contrôle** consolidé dans la destination spécifiée.

Pour suivre la progression de votre tâche **Calculer la somme de contrôle**, utilisez la commande [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/describe-job.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/describe-job.html). Cette commande vérifie le statut de la tâche d’opérations par lot spécifiée. Pour utiliser cette commande, remplacez les *user input placeholders* par vos propres informations.

Par exemple :

```
aws s3control describe-job --account-id 111122223333 --job-id 1234567890abcdef0
```

Pour [obtenir la liste](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-list-jobs.html) de toutes les tâches d’opérations par lot **actives** et **terminées**, consultez [Liste des tâches](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-list-jobs.html) ou [list-jobs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/list-jobs.html) dans la *Référence des commandes de l’AWS CLI *.

### Utilisation de l'API REST
<a name="Compute-checksum-api"></a>

Vous pouvez envoyer des requêtes REST pour vérifier l'intégrité des objets à l'aide de **Compute checksum** en utilisant [CreateJob](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html). Vous pouvez suivre la progression des demandes **Compute checksum** en envoyant des requêtes REST à l'opération [DescribeJob](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)API. Chaque tâche d’opérations par lot progresse en suivant les statuts ci-dessous :
+ **NOUVEAU**
+ **PRÉPARATION**
+ **PRÊT**
+ **ACTIF**
+ **SUSPENSION**
+ **SUSPENDU**
+ **TERMINÉ**
+ **ANNULATION**
+ **ÉCHEC**

La réponse de l’API vous informe du statut en cours de la tâche.