View a markdown version of this page

Protections de l'intégrité des données pour Amazon S3 - AWS SDK et outils

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.

Protections de l'intégrité des données pour Amazon S3

Note

Pour vous aider à comprendre la mise en page des pages de paramètres ou à interpréter le tableau « Support par AWS les SDK et les outils » qui suit, consultezComprendre les pages de paramètres de ce guide.

Depuis un certain temps, AWS les SDK prennent en charge les contrôles d'intégrité des données lors du chargement ou du téléchargement de données depuis Amazon Simple Storage Service. Auparavant, ces vérifications étaient facultatives. Nous avons maintenant activé ces vérifications par défaut, à l'aide d' CRC-based algorithmes tels que CRC32 ou CRC64NVME. Bien que chaque SDK ou outil possède un algorithme par défaut, vous pouvez en choisir un autre. Vous pouvez également continuer à fournir manuellement une somme de contrôle précalculée pour les téléchargements si vous le souhaitez. Un comportement cohérent entre les chargements, les chargements partitionnés, les téléchargements et les modes de chiffrement simplifie les contrôles d'intégrité côté client.

Les dernières versions de nos AWS SDK calculent AWS CLI automatiquement une somme de contrôle basée sur le contrôle de redondance cyclique (CRC) pour chaque téléchargement et l'envoie à Amazon S3. Amazon S3 calcule indépendamment une somme de contrôle côté serveur et la valide par rapport à la valeur fournie avant de stocker durablement l'objet et sa somme de contrôle dans les métadonnées de l'objet. En stockant la somme de contrôle dans les métadonnées à côté de l'objet, lorsque l'objet est téléchargé, la même somme de contrôle peut être automatiquement renvoyée et utilisée également pour valider les téléchargements. Vous pouvez également vérifier le checksum enregistré dans les métadonnées de l'objet à tout moment.

Pour en savoir plus sur les opérations de somme de contrôle, les téléchargements partitionnés ou la liste des algorithmes de somme de contrôle pris en charge, consultez la section Vérification de l'intégrité des objets dans Amazon S3 dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Téléchargements partitionnés :

Amazon S3 fournit également aux développeurs des totaux d'objets complets cohérents pour les téléchargements partiels ou partitionnés.

Lorsque vous chargez des fichiers en plusieurs parties, les SDK calculent les checksums pour chaque partie. Amazon S3 utilise ces sommes de contrôle pour vérifier l'intégrité de chaque partie par le biais de l'UploadPartAPI. En outre, Amazon S3 valide la taille complète du fichier et la somme de contrôle lorsque vous appelez l'CompleteMultipartUploadAPI.

Si votre SDK dispose d'un gestionnaire de transfert Amazon S3 pour faciliter les téléchargements partitionnés, les sommes de contrôle sont validées pour les parties à l'aide de l'algorithme SDK-specific par défaut indiqué dans le tableau. Support par AWS Kits SDK et outils Vous pouvez opter pour une somme de contrôle complète de l'objet en définissant le paramètre sur FULL_OBJECT ou en choisissant checksum_type d'utiliser l'algorithme CRC64NVME.

Si vous utilisez une ancienne version du SDK ou AWS CLI :

Si votre application utilise une version antérieure à décembre 2024 du SDK ou de l'outil, Amazon S3 calcule toujours une somme de contrôle CRC64NVME sur les nouveaux objets et la stocke dans les métadonnées de l'objet pour référence future. Vous pouvez ensuite comparer le CRC enregistré avec un CRC calculé de votre côté et vérifier que la transmission réseau était correcte. En outre, vous pouvez toujours étendre manuellement la protection de l'intégrité en fournissant vos propres sommes de contrôle précalculées avec vos UploadPartdemandes PutObjectOR, ce qui est la technique standard pour résoudre ce problème dans les anciennes versions.

Configurez cette fonctionnalité à l'aide des méthodes suivantes :

request_checksum_calculation- réglage AWS config du fichier partagé
AWS_REQUEST_CHECKSUM_CALCULATION- variable d'environnement
aws.requestChecksumCalculation- Propriété du système JVM : uniquement Java/Kotlin

Par défaut, les utilisateurs sont autorisés à calculer la somme de contrôle d'une demande lors de l'envoi d'une demande. L'utilisateur peut choisir l'un des algorithmes de somme de contrôle disponibles dans le cadre de la création de la demande. Dans le cas contraire, un algorithme SDK-specific par défaut est utilisé. Consultez le Support par AWS Kits SDK et outils tableau de l'algorithme par défaut pour chaque SDK ou outil.

Valeur par défaut : WHEN_SUPPORTED

Valeurs valides:

  • WHEN_SUPPORTED— La validation de la somme de contrôle est effectuée sur toutes les charges utiles des demandes lorsqu'elles sont prises en charge par l'opération d'API, telles que les transferts de données vers Amazon S3.

  • WHEN_REQUIRED— La validation de la somme de contrôle est effectuée uniquement lorsque l'opération de l'API l'exige.

response_checksum_validation- réglage AWS config du fichier partagé
AWS_RESPONSE_CHECKSUM_VALIDATION- variable d'environnement
aws.responseChecksumValidation- Propriété du système JVM : uniquement Java/Kotlin

Par défaut, les utilisateurs sont autorisés à valider la somme de contrôle des réponses lorsqu'ils envoient une demande. Une somme de contrôle est calculée pour la charge utile de réponse et comparée à l'en-tête de réponse de somme de contrôle. Si la validation de la somme de contrôle échoue, une erreur est signalée à l'utilisateur lors de la lecture de la charge utile.

L'en-tête de réponse à la somme de contrôle indique également l'algorithme de la somme de contrôle. Le client Amazon S3 tente de valider les sommes de contrôle des réponses pour toutes les opérations d'API Amazon S3 qui prennent en charge les sommes de contrôle. Toutefois, si le SDK n'a pas implémenté l'algorithme de somme de contrôle spécifié, cette validation est ignorée.

Valeur par défaut : WHEN_SUPPORTED

Valeurs valides:

  • WHEN_SUPPORTED— La validation de la somme de contrôle est effectuée sur toutes les charges utiles de réponse lorsqu'elles sont prises en charge par l'opération d'API, telles que les transferts de données vers Amazon S3.

  • WHEN_REQUIRED— La validation de la somme de contrôle est effectuée uniquement si elle est prise en charge par l'opération d'API et si l'appelant a explicitement activé la somme de contrôle pour l'opération. Par exemple, lorsque l'GetObjectAPI Amazon S3 est appelée et que le ChecksumMode paramètre est défini sur Activé.

Support par AWS Kits SDK et outils

Les SDK suivants prennent en charge les fonctionnalités et les paramètres décrits dans cette rubrique. Toute exception partielle est notée. Tous les paramètres de propriété du système JVM sont pris en charge par le AWS SDK pour Java et le AWS SDK for Kotlin seul.

Note

Dans le tableau suivant, « CRT » fait référence à AWS bibliothèques CRT (Common Runtime) et peut nécessiter l'ajout d'une dépendance supplémentaire à votre projet.

Kit SDK Pris en charge Algorithme de somme de contrôle par défaut Algorithmes de somme de contrôle compatibles Remarques ou informations supplémentaires
AWS CLI   v2 Oui CRC64NVME CRC64NVME, CRC32, CRC32C, SHA1, SHA256, xxHash3, xxHash64, xxHash128, SHA512 Pour la AWS CLI version 1, l'algorithme par défaut et les algorithmes pris en charge seront identiques à ceux de Python (Boto3).
SDK pour C++ Oui CRC64NVME CRC64NVME, CRC32, CRC32C, SHA1, SHA256, xxHash3, xxHash64, xxHash128, SHA512
SDK pour Go V2 (1.x) Oui CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256
SDK pour Go 1.x (V1) Non
SDK pour Java 2.x Oui CRC32

CRC32, CRC32C, SHA1, SHA256

Par tube cathodique uniquement : CRC64NVME, xxHash3, xxHash64, xxHash128, SHA512

SDK pour Java 1.x Non
SDK pour 3.x JavaScript Oui CRC32 CRC32, CRC32C, SHA1, SHA256
SDK pour 2.x JavaScript Non
SDK pour Kotlin Oui CRC32 CRC32, CRC32C, SHA1, SHA256
SDK pour .NET 4.x Oui CRC32 CRC32, CRC32C, SHA1, SHA256, SHA512
SDK pour .NET 3.x Oui CRC32 CRC32, CRC32C, SHA1, SHA256, SHA512
SDK pour PHP 3.x Oui CRC32

CRC32, SHA1, SHA256

Par tube cathodique uniquement : CRC32C

awscrtune extension est requise pour utiliser CRC32C.
SDK pour Python (Boto3) Oui CRC32

CRC32, SHA1, SHA256

Par tube cathodique uniquement : CRC32C, CRC64NVME, xxHash3, xxHash64, xxHash128, SHA512

SDK pour Ruby 3.x Oui CRC32

CRC32, SHA1, SHA256

Par tube cathodique uniquement : CRC64NVME, CRC32C

SDK pour Rust Oui CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256
SDK pour Swift Oui CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256 Dépendance CRT requise pour tous les algorithmes.
Outils pour PowerShell V5 Oui CRC32 CRC32, CRC32C, SHA1, SHA256, xxHash3, SHA512
Outils pour PowerShell V4 Oui CRC32 CRC32, CRC32C, SHA1, SHA256, SHA512