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

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

サポートとメンテナンス

AWS Encryption SDK は、バージョニングフェーズやライフサイクルフェーズを含め、 および ツールが 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およびツールリファレンスガイド」の AWS SDKs「」および「ツールメンテナンスポリシー」を参照してください。 AWS SDKs

詳細情報

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

AWS Encryption SDK さまざまなプログラミング言語での の実装について説明します。

フィードバックを送る

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

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

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

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