View a markdown version of this page

Protezioni dell'integrità dei dati per Amazon S3 - AWS SDK e strumenti

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Protezioni dell'integrità dei dati per Amazon S3

Nota

Per informazioni sulla comprensione del layout delle pagine delle impostazioni o sull'interpretazione della tabella Support by AWS SDKs and tools che segue, vedere. Informazioni sulle pagine delle impostazioni di questa guida

Da qualche tempo, AWS gli SDK supportano i controlli di integrità dei dati durante il caricamento o il download di dati da Amazon Simple Storage Service. In precedenza, questi controlli erano facoltativi. Ora, abbiamo abilitato questi controlli per impostazione predefinita, utilizzando CRC-based algoritmi come CRC32 o CRC64NVME. Sebbene ogni SDK o strumento abbia un algoritmo predefinito, puoi scegliere un algoritmo diverso. Se lo desideri, puoi anche continuare a fornire manualmente un checksum precalcolato per i caricamenti. Un comportamento coerente tra le modalità di caricamento, caricamento in più parti, download e crittografia semplifica i controlli di integrità sul lato client.

Le versioni più recenti dei nostri AWS SDK calcolano AWS CLI automaticamente un checksum basato sul controllo di ridondanza ciclico (CRC) per ogni caricamento e lo inviano ad Amazon S3. Amazon S3 calcola in modo indipendente un checksum sul lato server e lo convalida rispetto al valore fornito prima di archiviare in modo duraturo l'oggetto e il relativo checksum nei metadati dell'oggetto. Memorizzando il checksum nei metadati accanto all'oggetto, quando l'oggetto viene scaricato, lo stesso checksum può essere restituito automaticamente e utilizzato anche per convalidare i download. È inoltre possibile verificare il checksum memorizzato nei metadati dell'oggetto in qualsiasi momento.

Per ulteriori informazioni sulle operazioni di checksum, sui caricamenti in più parti o sull'elenco degli algoritmi di checksum supportati, consulta Checking object integrity in Amazon S3 nella Amazon Simple Storage Service User Guide.

Caricamenti in più parti:

Amazon S3 fornisce inoltre agli sviluppatori checksum completi e coerenti per i caricamenti di singole parti e multiparti.

Quando si caricano file in più parti, gli SDK calcolano i checksum per ciascuna parte. Amazon S3 utilizza questi checksum per verificare l'integrità di ciascuna parte tramite l'API. UploadPart Inoltre, Amazon S3 convalida le dimensioni e il checksum dell'intero file quando chiami l'API. CompleteMultipartUpload

Se il tuo SDK dispone di Amazon S3 Transfer Manager per facilitare i caricamenti in più parti, i checksum vengono convalidati per le parti utilizzando l'algoritmo predefinito riportato nella tabella. SDK-specific Supporto da parte di AWS SDK e strumenti Puoi attivare un checksum completo degli oggetti checksum_type impostando su o scegliendo di utilizzare l'algoritmo CRC64NVME. FULL_OBJECT

Se stai usando una versione precedente di SDK o: AWS CLI

Se l'applicazione utilizza una versione precedente a dicembre 2024 dell'SDK o dello strumento, Amazon S3 calcola comunque un checksum CRC64NVME sui nuovi oggetti e lo memorizza nei metadati degli oggetti per riferimento futuro. Successivamente puoi confrontare il CRC memorizzato con un CRC calcolato da te e verificare che la trasmissione di rete sia corretta. Inoltre, puoi comunque estendere manualmente la protezione dell'integrità fornendo i tuoi checksum precalcolati insieme alle tue PutObject UploadPart richieste, che è la tecnica standard per risolvere il problema nelle versioni precedenti.

Configurate questa funzionalità utilizzando quanto segue:

request_checksum_calculation- impostazione dei AWS config file condivisi
AWS_REQUEST_CHECKSUM_CALCULATION- variabile d'ambiente
aws.requestChecksumCalculation- Proprietà del sistema JVM: solo Java/Kotlin

Per impostazione predefinita, gli utenti accettano di calcolare il checksum di una richiesta quando inviano una richiesta. L'utente può scegliere uno qualsiasi degli algoritmi di checksum disponibili come parte della creazione della richiesta. Altrimenti, viene utilizzato un algoritmo SDK-specific predefinito. Consulta la Supporto da parte di AWS SDK e strumenti tabella per l'algoritmo predefinito per ogni SDK o strumento.

Valore predefinito: WHEN_SUPPORTED

Valori validi:

  • WHEN_SUPPORTED— La convalida del checksum viene eseguita su tutti i payload delle richieste se supportata dal funzionamento dell'API, ad esempio i trasferimenti di dati su Amazon S3.

  • WHEN_REQUIRED— La convalida del checksum viene eseguita solo quando richiesto dall'operazione API.

response_checksum_validation- impostazione dei file condivisi AWS config
AWS_RESPONSE_CHECKSUM_VALIDATION- variabile d'ambiente
aws.responseChecksumValidation- Proprietà del sistema JVM: solo Java/Kotlin

Per impostazione predefinita, gli utenti accettano la convalida del checksum della risposta quando inviano una richiesta. Un checksum viene calcolato per il payload della risposta e confrontato con l'intestazione della risposta checksum. Se la convalida del checksum fallisce, all'utente viene segnalato un errore durante la lettura del payload.

L'intestazione della risposta checksum indica anche l'algoritmo per il checksum. Il client Amazon S3 tenta di convalidare i checksum di risposta per tutte le operazioni API di Amazon S3 che supportano i checksum. Tuttavia, se l'SDK non ha implementato l'algoritmo di checksum specificato, questa convalida viene ignorata.

Valore predefinito: WHEN_SUPPORTED

Valori validi:

  • WHEN_SUPPORTED— La convalida del checksum viene eseguita su tutti i payload di risposta se supportata dall'operazione API, ad esempio i trasferimenti di dati ad Amazon S3.

  • WHEN_REQUIRED— La convalida del checksum viene eseguita solo se supportata dall'operazione API e il chiamante ha abilitato esplicitamente il checksum per l'operazione. Ad esempio, quando viene chiamata l'GetObjectAPI Amazon S3 e il parametro è impostato su abilitato. ChecksumMode

Supporto da parte di AWS SDK e strumenti

I seguenti SDK supportano le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali. Tutte le impostazioni delle proprietà del sistema JVM sono supportate da AWS SDK per Java and the only. AWS SDK per Kotlin

Nota

Nella tabella seguente, «CRT» si riferisce a AWS Librerie Common Runtime (CRT) e potrebbe richiedere l'aggiunta di un'ulteriore dipendenza al progetto.

SDK Supportata Algoritmo di checksum predefinito Algoritmi di checksum supportati Note o ulteriori informazioni
AWS CLI   v2 Sì CRC64NVME CRC64NVME, CRC32, CRC32C, SHA1, SHA256, xxHash3, xxHash64, xxHash128, SHA512 Per la versione 1 AWS CLI , l'algoritmo predefinito e gli algoritmi supportati saranno identici a Python (Boto3).
SDK per C++ Sì CRC64NVME CRC64NVME, CRC32, CRC32C, SHA1, SHA256, xxHash3, xxHash64, xxHash128, SHA512
SDK per Go V2 (1.x) Sì CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256
SDK per Go 1.x (V1) No
SDK per Java 2.x Sì CRC32

CRC32, CRC32C, SHA1, SHA256

Solo tramite CRT: CRC64NVME, xxHash3, xxHash64, xxHash128, SHA512

SDK per Java 1.x No
SDK per 3.x JavaScript Sì CRC32 CRC32, CRC32C, SHA1, SHA256
SDK JavaScript per 2.x No
SDK per Kotlin Sì CRC32 CRC32, CRC32C, SHA1, SHA256
SDK per .NET 4.x Sì CRC32 CRC32, CRC32C, SHA1, SHA256, SHA512
SDK per .NET 3.x Sì CRC32 CRC32, CRC32C, SHA1, SHA256, SHA512
SDK per PHP 3.x Sì CRC32

CRC32, SHA1, SHA256

Solo tramite CRT: CRC32C

awscrtl'estensione è necessaria per utilizzare CRC32C.
SDK per Python (Boto3) Sì CRC32

CRC32, SHA1, SHA256

Solo tramite CRT: CRC32C, CRC64NVME, xxHash3, xxHash64, xxHash128, SHA512

SDK per Ruby 3.x Sì CRC32

CRC32, SHA1, SHA256

Solo tramite CRT: CRC64NVME, CRC32C

SDK per Rust Sì CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256
SDK per Swift Sì CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256 Dipendenza CRT richiesta per tutti gli algoritmi.
Utensili per PowerShell V5 Sì CRC32 CRC32, CRC32C, SHA1, SHA256, xxHash3, SHA512
Strumenti PowerShell per V4 Sì CRC32 CRC32, CRC32C, SHA1, SHA256, SHA512