翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
とは 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 for C — aws-encryption-sdk-c
AWS Encryption SDK for .NET —
aws-encryption-sdk-dafny
リポジトリの aws-encryption-sdk-netディレクトリ。 AWS 暗号化 CLI — aws-encryption-sdk-cli
AWS Encryption SDK for Java — aws-encryption-sdk-java
AWS Encryption SDK for JavaScript — aws-encryption-sdk-javascript
AWS Encryption SDK for Python — aws-encryption-sdk-python
暗号化ライブラリやサービスとの互換性
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 for C — SUPPORT_POLICY.rst
AWS Encryption SDK の .NET — SUPPORT_POLICY.rst
AWS 暗号化 CLI — SUPPORT_POLICY.rst
AWS Encryption SDK for Java — SUPPORT_POLICY.rst
AWS Encryption SDK for JavaScript — SUPPORT_POLICY.rst
AWS Encryption SDK for Python — SUPPORT_POLICY.rst
詳細については、「 のバージョン AWS Encryption SDKおよびツールリファレンスガイド」の AWS SDKs「」および「ツールメンテナンスポリシー」を参照してください。 AWS SDKs
詳細情報
AWS Encryption SDK およびクライアント側の暗号化の詳細については、以下のソースを試してください。
-
この で使用される用語と概念についてはSDK、「」を参照してくださいの概念 AWS Encryption SDK。
-
ベストプラクティスのガイドラインについては、「AWS Encryption SDK のベストプラクティス」を参照してください。
-
このSDK仕組みについては、「」を参照してくださいSDK のしくみ。
-
でオプションを設定する方法を示す例については AWS Encryption SDK、「」を参照してくださいの設定 AWS Encryption SDK。
-
技術情報の詳細については、「AWS Encryption SDK リファレンス」を参照してください。
の技術仕様については AWS Encryption SDK、 のAWS Encryption SDK 仕様
を参照してください GitHub。 -
の使用に関するご質問への回答については AWS Encryption SDK、AWS Crypto Tools ディスカッションフォーラム
で を読み、投稿してください。
AWS Encryption SDK さまざまなプログラミング言語での の実装について説明します。
-
C: AWS Encryption SDK for C、 AWS Encryption SDK C ドキュメント
、および aws-encryption-sdk-c リポジトリを参照してください GitHub。 -
C#/.NET: AWS Encryption SDK の 。NETリポジトリの aws-encryption-sdk-net
ディレクトリ aws-encryption-sdk-dafny
を参照してください GitHub。 -
コマンドラインインターフェイス: AWS Encryption SDK コマンドラインインターフェイス 「」、 AWS 「暗号化 の ドキュメントを読み取るCLI」、およびaws-encryption-sdk-cli
「」リポジトリを参照してください GitHub。 https://aws-encryption-sdk-cli.readthedocs.io/en/latest/ -
Java: AWS Encryption SDK for Java、 AWS Encryption SDK Javadoc
、および の aws-encryption-sdk-java リポジトリを参照してください GitHub。 JavaScript: の AWS Encryption SDK for JavaScriptおよび aws-encryption-sdk-javascript
リポジトリを参照してください GitHub。 -
Python: AWS Encryption SDK for Python、 AWS Encryption SDK Python ドキュメント
、 aws-encryption-sdk-python リポジトリを参照してください GitHub。
フィードバックを送る
当社では、お客様からのフィードバックをお待ちしております。質問、コメント、ご報告いただく問題がある場合は、以下のリソースをご利用ください。
-
で潜在的なセキュリティ脆弱性を発見した場合は AWS Encryption SDK、AWS セキュリティに通知
してください。パブリック GitHub 問題を作成しないでください。 -
に関するフィードバックを提供するには AWS Encryption SDK、使用しているプログラミング言語の GitHub リポジトリに問題を提出します。
-
このドキュメントに関するフィードバックについては、このページの [フィードバック] のリンクをご利用ください。また、このドキュメントのオープンソースリポジトリである に問題を提出したりaws-encryption-sdk-docs
、投稿したりすることもできます GitHub。