Überprüfen der Objektintegrität auf Daten im Ruhezustand in Amazon S3 - Amazon Simple Storage Service

Überprüfen der Objektintegrität auf Daten im Ruhezustand in Amazon S3

Wenn Sie den Inhalt von in Amazon S3 gespeicherten Datensätzen überprüfen müssen, berechnet die Operation S3 Batch Operations Prüfsumme berechnen sowohl vollständige Objekt- als auch zusammengesetzte Prüfsummen für Objekte im Ruhezustand. Die Operation Prüfsumme berechnen verwendet Batch-Operationen, um die Prüfsummenwerte für eine Gruppe von Objekten asynchron zu berechnen und automatisch einen konsolidierten Integritätsbericht zu erstellen, ohne neue Kopien Ihrer Daten zu erstellen oder Daten wiederherzustellen oder herunterzuladen.

Mit der Operation Prüfsumme berechnen können Sie effizient Milliarden von Objekten mit einer einzigen Auftragsanfrage überprüfen. Für jede Prüfsumme berechnen-Auftragsanforderung berechnet S3 die Prüfsummenwerte und fügt sie in einen automatisch erstellten Integritätsbericht (auch als Abschlussbericht bezeichnet) ein. Anhand des Abschlussberichts können Sie dann die Integrität Ihres Datensatzes überprüfen.

Die Operation Prüfsumme berechnen funktioniert mit jedem in S3 gespeicherten Objekt, unabhängig von der Speicherklasse oder Objektgröße. Ganz gleich, ob Sie Ihre Objekte im Rahmen von Best Practices für die Datenaufbewahrung verifizieren oder Compliance-Anforderungen erfüllen müssen, die Operation Prüfsumme berechnen reduziert die Kosten, den Zeitaufwand und die Mühe, die für die Datenvalidierung erforderlich sind, indem sie Prüfsummenberechnungen im Ruhezustand durchführt. Informationen zu den Preisen für Compute Checksum finden Sie auf der Registerkarte Management and Insights unter Amazon S3-Preisen.

Anschließend können Sie die Ausgabe des generierten Abschlussberichts mit den Prüfsummenwerten vergleichen, die Sie in Ihren Datenbanken gespeichert haben, um zu überprüfen, ob Ihre Datensätze im Laufe der Zeit intakt bleiben. Dieser Ansatz hilft Ihnen, die Integrität der Daten durchgängig aufrechtzuerhalten, um den Anforderungen von Unternehmen und Compliance gerecht zu werden. Sie können zum Beispiel die Operation Prüfsumme berechnen verwenden, um eine Liste gespeicherter Objekte in S3 Glacier-Speicherklassen für jährliche Sicherheitsaudits zu übermitteln. Darüber hinaus können Sie durch die Vielzahl der unterstützten Prüfsummenalgorithmen die Kontinuität mit den in Ihren Anwendungen verwendeten Algorithmen wahren.

Verwenden unterstützter Prüfsummenalgorithmen

Für Daten im Ruhezustand können Sie Prüfsummen mit einem der unterstützten Prüfsummenalgorithmen berechnen:

  • CRC-64/NVME (CRC64NVME): Unterstützt nur den vollständigen Objekt-Prüfsummus.

  • CRC-32 (CRC32): Unterstützt sowohl vollständige Objekt- als auch zusammengesetzte Prüfsummustypen.

  • CRC-32C (CRC32C): Unterstützt sowohl vollständige Objekt- als auch zusammengesetzte Prüfsummustypen.

  • SHA-1 (SHA1): Unterstützt sowohl vollständige Objekt- als auch zusammengesetzte Prüfsummustypen.

  • SHA-256 (SHA256): Unterstützt sowohl vollständige Objekt- als auch zusammengesetzte Prüfsummustypen.

  • MD5 (MD5): Unterstützt sowohl vollständige Objekt- als auch zusammengesetzte Algorithmustypen.

Verwendung der Using Compute-Prüfsumme

Für Objekte, die in Amazon S3 gespeichert sind, können Sie die Operation Prüfsumme berechnen mit S3 Batch Operations verwenden, um den Inhalt der gespeicherten Daten im Ruhezustand zu überprüfen. Sie können einen Compute checksum-Batch-Operations-Auftrag über die Amazon-S3-Konsole, AWS Command Line Interface (AWS CLI), die REST-API oder das AWS SDK erstellen. Wenn der Auftrag Prüfsumme berechnen beendet ist, erhalten Sie einen Abschlussbericht. Weitere Informationen zur Verwendung des Abschlussberichts finden Sie unter Verfolgen des Auftragsstatus und Abschlussberichte.

Bevor Sie Ihren Compute-Prüfsummenauftrag erstellen, müssen Sie eine S3-Batch-Operations-AWS Identity and Access Management-Rolle (IAM) erstellen, um Amazon S3 die Berechtigungen zu erteilen, in Ihrem Namen Aktionen durchzuführen. Sie müssen die Berechtigung zum Lesen der Manifest-Datei und zum Schreiben eines Abschlussberichts in das S3 Bucket erteilen. Weitere Informationen finden Sie unter Berechnen von Prüfsummen.

So verwenden Sie die Operation Prüfsumme berechnen
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Navigationsleiste oben auf der Seite den Namen der aktuell angezeigten AWS-Region aus. Wählen Sie als Nächstes die Region aus, in der Sie Ihren Auftrag erstellen möchten.

    Anmerkung

    Für Kopiervorgänge müssen Sie den Auftrag in derselben Region wie jener des Ziel-Buckets erstellen. Für alle anderen Vorgänge müssen Sie den Auftrag in derselben Region wie jener der Objekte im Manifest erstellen.

  3. Klicken Sie im linken Navigationsbereich der Amazon-S3-Konsole auf Batch Operations.

  4. Wählen Sie Job erstellen aus.

  5. Sehen Sie die AWS-Region an, in der Sie Ihren Auftrag erstellen möchten.

    Anmerkung

    Für Kopiervorgänge müssen Sie den Auftrag in derselben Region wie jener des Ziel-Buckets erstellen. Für alle anderen Vorgänge müssen Sie den Auftrag in derselben Region wie jener der Objekte im Manifest erstellen.

  6. Wählen Sie unter Manifest format (Manifestformat) das zu verwendende Manifestobjekt aus.

    • Wenn Sie S3-Bestandsbericht (manifest.json) wählen, geben Sie den Pfad zum manifest.json-Objekt und (optional) die Manifest-Objektversions-ID ein, wenn Sie eine bestimmte Objektversion verwenden möchten. Alternativ können Sie S3 durchsuchen wählen und die Manifest-JSON-Datei auswählen, die alle Einträge in den Manifest-Objektfeldern automatisch ausfüllt.

    • Wenn Sie CSV wählen, wählen Sie den Manifest-Speicherorttyp. Geben Sie dann entweder den Pfad zu einem CSV-formatierten Manifestobjekt ein oder wählen Sie S3 durchsuchen, um ein Manifestobjekt auszuwählen. Das Manifestobjekt muss das in der Konsole beschriebene Format befolgen. Wenn Sie eine bestimmte Version des Manifests verwenden möchten, können Sie auch die Versionsnummer des Objekts angeben.

    • Wenn Sie Manifest unter Verwendung der S3-Replikationskonfiguration erstellenwählen, wird eine Liste von Objekten unter Verwendung der Replikationskonfiguration erstellt und optional an dem von Ihnen gewählten Ziel gespeichert. Wenn eine Replikationskonfiguration zur Erstellung des Manifests verwendet wird, ist der einzige verfügbare Vorgang Replizieren.

  7. Wählen Sie Weiter aus.

  8. Wählen Sie unter Operationdie Operation Prüfsumme berechnen, um die Prüfsummen für alle im Manifest aufgeführten Objekte zu berechnen. Wählen Sie die Prüfsummenart und Prüfsummenfunktion für Ihren Auftrag. Wählen Sie anschließend Weiter aus.

  9. Füllen Sie die Informationen für Zusätzliche Optionen konfigurierenaus, und wählen Sie dann Weiter.

  10. Geben Sie auf der Seite Zusätzliche Optionen konfigurieren die Informationen für Ihren Auftrag Prüfsumme berechnen ein.

    Anmerkung

    Vergewissern Sie sich unter Abschlussbericht, dass Sie die Anerkennungserklärung bestätigen. Mit dieser Anerkennungserklärung bestätigen Sie, dass Sie wissen, dass der Abschlussbericht Prüfsummenwerte enthält, die zur Überprüfung der Integrität der in Amazon S3 gespeicherten Daten verwendet werden. Daher sollte der Abschlussbericht nur mit Vorsicht weitergegeben werden. Wenn Sie eine Prüfsummenanforderung erstellen und den Bucket-Speicherort eines externen Kontoinhabers angeben, um Ihren Abschlussbericht zu speichern, müssen Sie außerdem die ID AWS-Konto des externen Bucket-Inhabers angeben.

  11. Wählen Sie Weiter aus.

  12. Überprüfen und bestätigen Sie die Einstellungen auf Ihrer Seite Review.

  13. (Optional) Wenn Sie Änderungen vornehmen müssen, wählen Sie Vorheriges, um zur vorherigen Seite zurückzukehren, oder wählen Sie Bearbeiten, um einen bestimmten Schritt zu aktualisieren.

  14. Nachdem Sie Ihre Änderungen bestätigt haben, wählen Sie Auftrag erstellen.

Auflisten und Überwachen des Fortschritts aller Prüfsumme berechnen Anfragen
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Klicken Sie im linken Navigationsbereich auf Batchvorgänge.

  3. Auf der Seite Batch-Operationen können Sie Auftragsdetails wie die Auftragspriorität, die Fertigstellungsrate und die Gesamtanzahl der Objekte überprüfen.

  4. Wenn Sie einen bestimmten Prüfsummenberechnungsauftrag verwalten oder klonen möchten, klicken Sie auf die Auftrags-ID, um zusätzliche Auftragsinformationen anzuzeigen.

  5. Überprüfen Sie auf der Seite des Auftrags Prüfsumme berechnen die Auftragsdetails.

Jeder Stapelverarbeitungsauftrag durchläuft verschiedene Auftragsstatus. Sie können auch AWS CloudTrail Ereignisse in der S3-Konsole aktivieren, um Benachrichtigungen über Änderungen des Auftragsstatus zu erhalten. Bei aktiven Aufträgen können Sie auf der Seite Auftragsdetails den laufenden Auftrag und die Abschlussrate überprüfen.

Java
Beispiel: Erstellen eines Prüfsummenberechnungsauftrags

Das folgende Beispiel zeigt, wie ein Prüfsumme berechnen-Auftrag (als Teil einer Auftrag erstellen-Anfrage) erstellt wird und wie ein Manifest angegeben wird:

// 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); }
Beispiel: Anzeigen von Prüfsumme berechnen Auftragsdetails

Das folgende Beispiel zeigt, wie Sie eine Auftragskennung angeben können, um die Auftragsdetails (z. B. die Auftragsabschlußrate) für eine Auftragsanforderung Prüfsumme berechnen anzuzeigen:

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

Sie können den Befehl create-job verwenden, um einen neuen Stapelverarbeitungsauftrag zu erstellen und die Liste der Objekte anzugeben. Geben Sie dann den Prüfsummenalgorithmus und den Prüfsummentyp sowie den Ziel-Bucket an, in dem Sie den Bericht Prüfsumme berechnen speichern möchten. Im folgenden Beispiel wird ein S3-Batch-Operations-Compute-Prüfsummenauftrag erstellt, indem ein von S3 generiertes Manifest für das AWS-Konto 111122223333 verwendet wird.

Um diesen Befehl zu verwenden, ersetzen Sie die Benutzereingabe-Platzhalter durch Ihre eigenen Informationen:

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

Nachdem Sie den Auftrag Prüfsumme berechnen übermittelt haben, erhalten Sie die Auftragskennung als Antwort, und er wird auf der Seite mit der Liste der S3-Stapelvorgänge angezeigt. Amazon S3 verarbeitet die Liste der Objekte und berechnet die Prüfsummen für jedes Objekt. Nach Beendigung des Auftrags liefert S3 einen konsolidierten Prüfsummenbericht an das angegebene Ziel.

Um den Fortschritt Ihres Auftrags Prüfsumme berechnen zu überwachen, verwenden Sie den Befehl describe-job. Dieser Befehl prüft den Status des angegebenen Stapelverarbeitungsauftrags. Um diesen Befehl zu verwenden, ersetzen Sie die Benutzereingabe-Platzhalter durch Ihre eigenen Informationen.

Zum Beispiel:

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

Um eine Liste aller aktiven und abgeschlossenen Batch-Operations-Jobs zu erhalten, siehe Jobs auflisten oder list-jobs in der AWS CLI Befehlsreferenz.

Sie können REST-Anfragen zur Überprüfung der Objektintegrität mit Prüfsumme berechnen unter Verwendung von CreateJob senden. Sie können den Fortschritt von Prüfsumme berechnen-Anforderungen überwachen, indem Sie REST-Anforderungen an den API-Vorgang DescribeJob senden. Jeder Stapelverarbeitungsauftrag durchläuft die folgenden Status:

  • NEW

  • VORBEREITEN

  • BEREIT

  • ACTIVE

  • PAUSING

  • PAUSED

  • ABGESCHLOSSEN

  • CANCELLING

  • FEHLGESCHLAGEN

Die API-Antwort informiert Sie über den aktuellen Auftragsstatus.