AWS Encryption SDK とは - AWS Encryption SDK

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

AWS Encryption SDK とは

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

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

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

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

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

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

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

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

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

  • 次のデータキーはどのように使用しますかAWS KMSはを返します。

の使用AWS Encryption SDKと定義すると、マスターキープロバイダー(Java および Python)キーリング(C、C#/.NET、 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 つ以上のラップキーにより暗号化することでデータを暗号化するデータキーを保護します。複数のラップキーを使用してデータキーを暗号化するフレームワークを提供することにより、AWS Encryption SDK暗号化されたデータをポータブルにするのに役立ちます。

たとえば、以下のデータを暗号化します。AWS KMS keyにAWS KMSとオンプレミス HSM からのキーを指定します。いずれかのラッピングキーを使用してデータを復号できます。1 つが使用できない場合、または呼び出し元が両方のキーを使用する権限を持っていない場合。

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

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

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

オープンソースのリポジトリで開発された

-AWS Encryption SDKのオープンソースリポジトリで開発されている GitHub。これらのリポジトリを使用して、コードの表示、課題の読み取り、送信、言語実装に固有の情報を見つけることができます。

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

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 keysそしてデータキーマルチリージョン KMS キーを含むデータを保護します。例えば、AWS アカウント の 1 つ以上の AWS KMS keys を使用してデータを暗号化するように AWS Encryption SDK を設定できます。ただし、AWS Encryption SDK を使用してデータを復号する必要があります。

-AWS Encryption SDKという暗号文は復号できません。AWS KMS EncryptまたはReEncryptオペレーションは戻ります。同様に、AWS KMS Decrypt オペレーションは、AWS Encryption SDK が返す暗号化されたメッセージを復号化できません。

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

使用するライブラリまたはサービスの決定については、「AWS 暗号化サービスおよびツールガイド」の「How to Choose an Encryption Tool or Service」を参照してください。

Support メンテナンス

-AWS Encryption SDK同じを使用することメンテナンスポリシーということはAWSSDK と Tools は、バージョニングとライフサイクルのフェーズを含む、を使用します。としてベストプラクティスでは、利用可能な最新バージョンのAWS Encryption SDKあなたのプログラミング言語に対応し、新しいバージョンがリリースされるとアップグレードしてください。バージョンでのアップグレードなど、大幅な変更が必要な場合AWS Encryption SDK1.7 より前のバージョンxバージョン 2.0 に移行します。xそして後で、詳細な手順助けて。

の各プログラミング言語実装AWS Encryption SDK別のオープンソースで開発されている GitHub repository. 各バージョンのライフサイクルとサポートフェーズは、リポジトリによって異なる場合があります。たとえば、特定のバージョンのAWS Encryption SDK1つのプログラミング言語では一般的な可用性(フルサポート)段階にあるかもしれないが、 end-of-support別のプログラミング言語でのフェーズ。可能な限り完全にサポートされているバージョンを使用し、サポートされなくなったバージョンは避けてください。

のライフサイクルフェーズを見つけるにはAWS Encryption SDK使用しているプログラミング言語のバージョンは、SUPPORT_POLICY.rstそれぞれにファイルAWS Encryption SDKrepository.

詳細については、次を参照してください。AWS Encryption SDK のバージョンそしてAWSSDK とツールのメンテナンスポリシーのAWSSDK とツールのリファレンスガイド

詳細情報

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

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

フィードバックを送る

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

  • AWS Encryption SDK で潜在的なセキュリティの脆弱性を発見した場合は、AWS セキュリティまでご報告ください。パブリックを作成しないでください GitHub 問題。

  • に関するフィードバックを送信するにはAWS Encryption SDKで、問題を提出 GitHub 使用しているプログラミング言語のリポジトリです。

  • このドキュメントに関するフィードバックについては、フィードバックこのページのリンク。また、問題を提出したり、aws-encryption-sdk-docsで、このドキュメントのオープンソースリポジトリは GitHub。