追加のチェックサムを使用して Amazon S3 のデータの完全性を確認する

チュートリアル

概要

組織は常にデジタルアセットを作成し、 Amazon S3 に移行しています。これらのアセットには、画像、バイナリファイル、本番後のレンダリングなどが含まれており、これらはすべてビジネスに不可欠です。アセットは移行され、ワークフロー全体で使用されるため、ネットワークの破損、ハードドライブの障害、または他の意図しない問題によってファイルが変更されないようにする必要があります。現在、業界ではアルゴリズムを使用してファイルをバイトごとにスキャンし、チェックサムと呼ばれる固有のフィンガープリントを生成しています。
 
チェックサムを使用すると、コピー時にアセットが変更されていないことを検証できます。チェックサムの実行では、ファイル内のすべてのバイトに対して順番にイテレーションを実行するアルゴリズムを使用します。

Amazon S3 は、データの完全性チェックを高速化する複数のチェックサムオプションを提供します。これらの機能は、お客様がオブジェクトをアップロードしたときにファイルのチェックサムを計算します。Amazon S3 に大量のデータを移行するお客様は、耐久性のベストプラクティスとしてこれらの完全性チェックを実行し、すべてのバイトが変更されずに転送されていることを確認したいと考えています。これにより、お客様はエンドツーエンドのデータの完全性を維持できます。チェックサムはオブジェクトがアップロードされた瞬間に作成され、オブジェクトの存続期間を通じて保存されます。エンドツーエンドのデータの完全性を提供するために、オブジェクトがダウンロードされる際、同じチェックサムが最後に検証されます。Amazon S3 でサポートされる追加のアルゴリズムは、SHA-1、SHA-256、CRC32、および CRC32-C です。これらの新しいデータの完全性チェック機能を使用すると、データ転送中、またはアップロードもしくはダウンロード中に、ファイルが変更されていないことを確認できます。

実行するアクション

  • Amazon S3 にファイルをアップロードする
  • Amazon S3 のチェックサムとローカルファイルを比較して、データの完全性を検証する

前提条件

 AWS の使用経験

初心者

 所要時間

20 分

 完了までのコスト

1 USD 未満 (Amazon S3 料金ページ)

 必要なもの

AWS アカウント

 利用するサービス

 最終更新日

2022 年 8 月 15 日

実装

ステップ 1: Amazon S3 バケットを作成する

  • 1.1 – Amazon S3 コンソールにサインインする
    • まだ作成していない場合は AWS アカウントを作成します。
    • アカウント情報を使用して、AWS マネジメントコンソールにログインします。
    • AWS コンソールのサービス検索バーから、S3 と入力します。 サービス検索結果セクションで、[S3] を選択します。S3 Glacier のオプションが表示される場合があります。このオプションは、Amazon S3 と統合する前の Glacier サービス用です。Amazon S3 Glacier ユーザーには、より優れたユーザーエクスペリエンスのために Amazon S3 コンソールを使用することをお勧めします。

  • 1.2 – S3 バケットを作成する
    • 左側の Amazon S3 メニューから [バケット] を選択し、[バケットを作成] ボタンを選択します。
  • 1.3
    • バケット用に、グローバルに一意であるわかりやすい名前を入力してください。バケットを作成する [AWS リージョン] を選択します。デフォルトの [ブロックパブリックアクセス] 設定はこのワークロードに適しているため、このセクションはそのままにしておきます。
    • 残りのオプションはデフォルトのままにすることができます。ページの一番下に移動して、[バケットを作成] を選択します。

ステップ 2: ファイルをアップロードして、チェックサムアルゴリズムを指定する

バケットの作成と設定が完了したので、ファイルをアップロードしてチェックサムを Amazon S3 で計算する準備ができました。
  • 2.1 – オブジェクトをアップロードする
  • 2.2
    • 次に、[オブジェクト] タブを選択します。その後、[オブジェクト] セクション内で [アップロード] ボタンを選択します。
  • 2.3 – ファイルを追加する
    • [ファイルを追加] ボタンを選択し、ファイルブラウザからアップロードするファイルを選択します。
  • 2.4 – プロパティを展開する
    • ページを下方向に移動して、[プロパティ] セクションを見つけます。その後、[プロパティ] を選択してセクションを展開します。
  • 2.5 – 追加のチェックサムを選択する
    • [追加のチェックサム] で [オン] オプションを選択し、[SHA-256] を選択します。

オブジェクトが 16 MB 未満で、既に SHA-256 チェックサム (base64 エンコード) を計算している場合は、それを [事前計算済みの値] の入力ボックスに入力できます。16 MB を超えるオブジェクトでこの機能を使用するには、CLI または SDK を使用できます。Amazon S3 はオブジェクトを受け取ると、指定されたアルゴリズムを使用してチェックサムを計算します。チェックサムの値が一致しない場合、Amazon S3 は、スクリーンショットに示すように、エラーを生成してアップロードを拒否します。

  • 2.6 – アップロードする
    • ページを下方向に移動して、[アップロード] ボタンを選択します。
  • 2.7
    • アップロードが完了したら、[閉じる] ボタンを選択します。

ステップ 3: チェックサムを検証する

  • 3.1
    • ファイル名を選択して、アップロードしたファイルを選択します。これにより、[プロパティ] ページに移動します。
  • 3.2 – チェックサムの値を見つける
    • [プロパティ] ページを下方向に移動すると、[追加のチェックサム] セクションが表示されます。
    • このセクションには、Amazon S3 がアップロード時に計算および検証した base64 でエンコードされたチェックサムが表示されます。
  • 3.3 – 比較する
    • ローカルコンピュータ内のオブジェクトを比較するには、ターミナルウィンドウを開き、ファイルがある場所に移動します。
    • shasum などのユーティリティを使用してファイルを計算します。次のコマンドは、同じファイルに対して sha256 計算を実行し、16 進数出力を base64 に変換します: shasum -a 256 image.jpg | cut -f1 -d\ | xxd -r -p | base64
    • この値を比較する場合、Amazon S3 コンソールの値と一致する必要があります。

ステップ 4: クリーンアップ

次のステップでは、このチュートリアルで作成したリソースをクリーンアップします。意図しない料金が発生しないように、使用しなくなったリソースを削除するのがベストプラクティスです。
  • 4.1 – テストオブジェクトを削除する
    • AWS マネジメントコンソールセッションからログアウトした場合、ログインし直します。S3 コンソールに移動し、[バケット] メニューオプションを選択します。最初に、テストバケットからテストオブジェクトを削除する必要があります。このチュートリアルのために作業しているバケットの名前を選択します。テストオブジェクト名の左側にあるチェックボックスにチェックマークを付けて、[削除] ボタンを選択します。[オブジェクトを削除] ページで、削除する適切なオブジェクトを選択していることを確認し、[オブジェクトを完全に削除] 確認ボックスに完全に削除と入力します。その後、[オブジェクトを削除] ボタンを選択して続行します。次に、削除が成功したかどうかを示すバナーが表示されます。
  • 4.2 – テストバケットを削除する
    • 最後に、作成したテストバケットを削除する必要があります。アカウント内のバケット一覧に戻ります。このチュートリアル用に作成したバケットの左側にあるラジオボタンを選択し、[削除] ボタンを選択します。警告メッセージを確認します。このバケットの削除を続行する場合は、[バケットを削除] 確認ボックスにバケット名を入力し、[バケットを削除] を選択します。

まとめ

お疲れさまでした。 Amazon S3 にファイルをアップロードする方法、追加のチェックサムを計算する方法、Amazon S3 とローカルファイルのチェックサムを比較してデータの完全性を検証する方法を学習しました。

このページはお役に立ちましたか?

次のステップ

チェックサムの詳細については、次のリソースにアクセスしてください。

その他のチェックサムを見る

Amazon S3 のその他のチェックサムの詳細については、リリースブログと「オブジェクトの整合性をチェックする」ドキュメントにアクセスしてください。

追跡チェックサムについて知る

Amazon S3 は、AWS SDK の新機能である追跡チェックサムも導入しました。SDK は、追跡チェックサムを使用して、ファイルを Amazon S3 にアップロードするときに単一のパスでチェックサムを計算します。詳細については、ブログ記事「Building scalable checksums」でお読みいただけます。