データキーを生成する
データキーは、データ (大量のデータと他のデータ暗号化キーを含む) を暗号化するために使用できる暗号化キーです。ダウンロードできない対称 KMS キーとは異なり、データキーは AWS KMS の外部での使用のためにユーザーに返されます。
AWS KMS はデータキーの生成時、即座に使用 (オプション) できるプレーンテキストのデータキーと、データと共に安全に保存できるデータキーの暗号化されたコピーを返します。データを復号する準備ができたら、最初に AWS KMS を要求して、暗号化されたデータキーを復号します。
AWS KMS はデータキーを生成、暗号化、復号します。ただし、AWS KMS はデータキーの保存、管理、追跡、またはデータキーの暗号化オペレーションを実行しません。AWS KMS の外部でデータキーを使用して管理する必要があります。データキーを安全に使用する方法については、「AWS Encryption SDK」を参照してください。
データキーの作成
データキーを作成するには、GenerateDataKey オペレーションを呼び出します。AWS KMS がデータキーを生成します。次に、ユーザーが指定する対称暗号化 KMS キーのデータキーのコピーを暗号化します。このオペレーションでは、データキーのプレーンテキストコピーと KMS キーで暗号化されたデータキーのコピーが返されます。以下の図では、このオペレーションを示しています。
AWS KMS は暗号化されたデータキーのみを返す GenerateDataKeyWithoutPlaintext オペレーションもサポートしています。データキーを使用する必要がある場合、AWS KMS にそのデータキーを復号するように求めます。
データキーを使用した暗号化オペレーションの仕組み
以下のトピックでは、GenerateDataKey または GenerateDataKeyWithoutPlaintext オペレーションによって生成されるデータキーがどのように機能するかについて説明します。
データキーでデータを暗号化する
AWS KMS は、データキーを使用してデータを暗号化することはできません。ただし、OpenSSL を使用するか、AWS Encryption SDK のような暗号化ライブラリを使用することで、AWS KMS の外部でデータキーを使用できます。
プレーンテキストのデータキーを使用してデータを暗号化したら、できる限り早急にメモリからそれを削除します。暗号化したデータと一緒に暗号化データキーを安全に保存して、データの復号に利用することができます。
データキーでデータを復号する
データを復号するには、Decrypt オペレーションに暗号化されたデータキーを渡します。AWS KMS は KMS キーを使用してデータキーを復号し、プレーンテキストのデータキーを返します。プレーンテキストのデータキーを使ってデータを復号し、続いてできる限り早急にメモリからプレーンテキストのデータキーを削除します。
以下の図では、Decrypt オペレーションを使用して暗号化されたデータキーを復号する方法を示しています。