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 kits SDK prennent en charge les contrôles d'intégrité des données lors du chargement de données vers ou depuis Amazon Simple Storage Service. Auparavant, ces contrôles étaient optionnels. À présent, nous avons 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 choisir un algorithme différent. 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 cryptage simplifie les contrôles d'intégrité côté client.

Les dernières versions de nos AWS kits 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'envoient à 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 celui-ci est téléchargé, la même somme de contrôle peut être automatiquement renvoyée et utilisée pour valider également les téléchargements. Vous pouvez également vérifier la somme de contrôle enregistrée dans les métadonnées de l'objet à tout moment.

Pour en savoir plus sur les opérations de somme de contrôle, les 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 en plusieurs parties :

Amazon S3 fournit également aux développeurs des sommes de contrôle complètes et cohérentes des objets lors des chargements partiels et partiels.

Lorsque vous chargez des fichiers en plusieurs parties, les SDK calculent des sommes de contrôle pour chaque partie. Amazon S3 utilise ces sommes de contrôle pour vérifier l'intégrité de chaque partie via 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 chargements partitionnés, les sommes de contrôle sont validées pour les parties à l'aide de l'algorithme SDK-specific par défaut figurant dans le tableau. Soutenu par AWS Kits SDK et outils Vous pouvez opter pour une somme de contrôle complète de l'objet en réglant 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 :

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 ultérieure. Vous pourrez 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 UploadPart requêtes PutObject OR, 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 des AWS config fichiers partagés
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 Soutenu par AWS Kits SDK et outils tableau pour connaître 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 le fonctionnement de l'API, comme les transferts de données vers Amazon S3.

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

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

Par défaut, les utilisateurs sont invités à accepter la validation de la somme de contrôle des réponses lors de l'envoi d'une demande. Une somme de contrôle est calculée pour la charge utile de la réponse et comparée à l'en-tête de réponse de la 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 de 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 par somme de contrôle est effectuée sur toutes les charges utiles de réponse lorsqu'elles sont prises en charge par le fonctionnement de l'API, comme les transferts de données vers Amazon S3.

  • WHEN_REQUIRED— La validation de la somme de contrôle n'est effectuée que lorsqu'elle est prise en charge par l'opération d'API et que 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é.

Soutenu par AWS Kits SDK et outils

Les kits SDK suivants prennent en charge les fonctionnalités et les paramètres décrits dans cette rubrique. Toutes les exceptions partielles sont notées. 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 pour 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 v1, 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

Via CRT 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

Via CRT uniquement : CRC32C

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

CRC32, SHA1, SHA256

Via CRT uniquement : CRC32C, CRC64NVME, xxHash3, xxHash64, xxHash128, SHA512

SDK pour Ruby 3.x Oui CRC32

CRC32, SHA1, SHA256

Via CRT 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