AWS Encryption SDK とは - AWS Encryption SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Encryption SDK とは

AWS Encryption SDK は、業界標準とベストプラクティスに従って、誰もが簡単にデータの暗号化と復号を行うことができるように設計されたクライアント側の暗号化ライブラリです。これにより、データの暗号化と復号の最善の方法ではなく、アプリケーションのコア機能に集中できるようになります。AWS Encryption SDK は、Apache 2.0 ライセンスに基づいて、無償で提供されています。

AWS Encryption SDK は、次のような問いへの回答となるものです。

  • どの暗号化アルゴリズムを使用するべきですか。

  • どのように、またはどのモードで、そのアルゴリズムを使用すべきですか。

  • 暗号化キーを生成するにはどうすればよいですか。

  • 暗号化キーを保護するにはどうすればよいですか。どこに保存するべきですか。

  • 暗号化されたデータをポータブルにするにはどうしたらよいですか。

  • 目的の受取人が暗号化されたデータを確実に読めるようにするにはどうすればよいですか。

  • 暗号化されたデータが書き込まれてから読み込まれるまでに変更されないようにするにはどうすればよいですか。

とAWS Encryption SDKを定義する場合、マスターキープロバイダー(Java または Python) か、キーリング (C または JavaScript) を使用します。その上で、AWS Encryption SDK が提供する専用のメソッドを使用して、データを暗号化および復号します。それ以外のことは、AWS Encryption SDK によって行われます。

AWS Encryption SDK がなければ、アプリケーションの重要な機能よりも暗号化ソリューションを構築するために多くの労力を費やすことになるおそれがあります。AWS Encryption SDK は、上記のような問いに次のような解決策を提供しています。

暗号化のベストプラクティスに従ったデフォルトの実装

AWS Encryption SDK は、暗号化する各データオブジェクトに対してデフォルトで一意のデータキーを生成します。各暗号化操作に一意のデータキーを使用する暗号化のベストプラクティスに従います。

AWS Encryption SDK は、安全かつ標準として認められている対称キーアルゴリズムを使用してデータを暗号化します。詳細については、「AWS Encryption SDK でサポートされているアルゴリズムスイート」を参照してください。

マスターキーを使用したデータキーの保護のフレームワーク

AWS Encryption SDK は、1 つ以上のマスターキーにより暗号化することでデータを暗号化するデータキーを保護します。1 つ以上のマスターキーを使用してデータキーを暗号化するフレームワークを提供することにより、AWS Encryption SDK は暗号化されたデータをポータブルにするのに役立ちます。

たとえば、それぞれが異なる AWS リージョンにある複数の AWS Key Management Service (AWS KMS) カスタマーマスターキー (CMK) でデータを暗号化できます。次に、暗号化されたデータをいずれかのリージョンにコピーし、そのリージョン内の CMK を使用して、復号することができます。AWS KMS の CMK および オンプレミスの HSM のマスターキーの下でデータを暗号化することにより、オプションのいずれかが使用できなくても、後でデータを復号できます。

暗号化されたデータと暗号化されたデータキーを一緒に保存する形式のメッセージ

AWS Encryption SDK は、暗号化されたデータと暗号化されたデータキーを所定のデータ形式の暗号化されたメッセージに一緒に保存します。データを暗号化したデータキーの追跡や保護は AWS Encryption SDK によって行われるため、お客様が行う必要はありません。

AWS Encryption SDK の一部の言語の実装では AWS SDK が必要ですが、AWS Encryption SDK は AWS アカウントを必須としておらず、どの AWS のサービスにも依存していません。必要なのはAWSアカウントを使用することを選択した場合にのみ使用します。AWS Key Management Service(AWS KMS) のカスタマーマスターキーを使用してデータを保護することができます。

暗号化ライブラリやサービスとの互換性

-AWS Encryption SDKは、複数ののプログラミング言語。言語実装はすべて相互運用可能です。ある言語実装で暗号化し、別の言語実装で復号できます。相互運用性は、言語の制約を受ける可能性があります。その場合の制約については、言語実装に関するトピックで説明します。また、暗号化および復号を行う場合は、互換性のあるキーリング、またはマスターキーとマスターキープロバイダーを使用する必要があります。詳細については、「キーリングの互換性」を参照してください。

ただし、AWS Encryption SDK は他のライブラリとは相互運用できません。各ライブラリは暗号化されたデータを異なる形式で返すため、あるライブラリで暗号化したデータを別のライブラリで復号することはできません。

DynamoDB 暗号化クライアントと Amazon S3 クライアント側の暗号化

-AWS Encryption SDKによって暗号化されたデータを復号化することはできません。DynamoDB 暗号化クライアントまたはAmazon S3 のクライアント側の暗号化。そして、これらのライブラリは暗号化されたメッセージのAWS Encryption SDKはを返します。

AWS Key Management Service (AWS KMS)

-AWS Encryption SDK使用できるAWS KMS カスタマーマスターキー(CMK) およびデータキーを使用してデータを保護することができます。たとえば、構成できます。AWS Encryption SDKの 1 つ以上の CMK を使用してデータを暗号化することもできます。AWSアカウント. ただし、AWS Encryption SDK を使用してデータを復号する必要があります。

AWS Encryption SDK では、AWS KMS の Encrypt オペレーションまたは ReEncrypt オペレーションから返された暗号化テキストは復号できません。同様に、AWS KMS Decryptオペレーションは復号化できません暗号化されたメッセージのAWS Encryption SDKはを返します。

-AWS Encryption SDKのみサポートされます。対称 CMK。使用することはできません。非対称 CMKを使用して暗号化するか、AWS Encryption SDK。AWS Encryption SDK は、メッセージに署名するアルゴリズムスイートに対して、独自の ECDSA 署名キーを生成します。

使用するライブラリまたはサービスの決定については、暗号化ツールまたはサービスの選択方法AWS暗号化サービスとツール

詳細情報

AWS Encryption SDK やクライアント側の暗号化の詳細については、以下を参照してください。

さまざまなプログラミング言語の AWS Encryption SDK の実装については、以下を参照してください。

フィードバックを送る

当社では、お客様からのフィードバックをお待ちしております。質問、コメント、ご報告いただく問題がある場合は、以下のリソースをご利用ください。

  • AWS Encryption SDK で潜在的なセキュリティの脆弱性を発見した場合は、AWS セキュリティまでご報告ください。GitHub で公開されている問題はご報告いただく必要はありません。

  • AWS Encryption SDK に関するフィードバックについては、使用されているプログラミング言語の GitHub リポジトリで issue を作成してください。

  • このドキュメントに関するフィードバックについては、該当のページのフィードバックを送信のリンクをご利用ください。また、GitHub のこのドキュメントのオープンソースリポジトリである aws-encryption-sdk-docs で issue の作成やご参加をいただくこともできます。