とは 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、マスターキープロバイダー (Python) またはキーリング (C、C#/.NET、Java、 JavaScript) を定義し、データを保護するために使用するラッピングキーを決定します。次に、 が提供する簡単な方法を使用してデータを暗号化および復号します 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 Encryption SDK は暗号化されたデータをポータブルにすることができます。

例えば、 AWS KMS key の AWS KMS とオンプレミスの のキーでデータを暗号化しますHSM。片方が利用できない場合や、呼び出し元に両方のキーを使用する権限がない場合に備えて、いずれかのラッピングキーを使用してデータを復号できます。

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

は、暗号化されたデータと暗号化されたデータキーを、定義されたデータ形式を使用する暗号化されたメッセージにまとめて AWS Encryption SDK 保存します。つまり、 がユーザー AWS Encryption SDK に代わってデータを暗号化するデータキーを追跡または保護する必要はありません。

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

オープンソースリポジトリで開発

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

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

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

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

DynamoDB 暗号化クライアントおよび Amazon S3 クライアント側の暗号化

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

AWS Key Management Service (AWS KMS)

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

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

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

サポートとメンテナンス

AWS Encryption SDK は、バージョニングフェーズやライフサイクルフェーズなど、 および Tools が AWS SDK使用するのと同じメンテナンスポリシーを使用します。ベストプラクティスとして、プログラミング言語 AWS Encryption SDK に最新バージョンの を使用し、新しいバージョンがリリースされたらアップグレードすることをお勧めします。バージョン 1.7.x より前の AWS Encryption SDK バージョンからバージョン 2.0.x 以降にアップグレードするなど、バージョンに大きな変更が必要な場合は、詳細な手順を提供します。

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

プログラミング言語 AWS Encryption SDK のバージョンライフサイクルフェーズを確認するには、各 AWS Encryption SDK リポジトリの SUPPORT_POLICY.rst ファイルを参照してください。

詳細については、「 のバージョン AWS Encryption SDKおよび Tools リファレンスガイド」の AWS SDKs「 および Tools メンテナンスポリシー」を参照してください。 AWS SDKs

詳細情報

AWS Encryption SDK およびクライアント側の暗号化の詳細については、これらのソースを試してください。

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

フィードバックを送る

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

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

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

  • このドキュメントに関するフィードバックについては、このページの [フィードバック] のリンクをご利用ください。また、 でこのドキュメントのオープンソースリポジトリである に問題を送信したりaws-encryption-sdk-docs、 に貢献したりすることもできます GitHub。