すべてのプロダクト
Search
ドキュメントセンター

:AdvanceEncrypt

最終更新日:Jan 03, 2025

このトピックでは、平文を暗号文に暗号化する方法について説明します。

使用上の注意

この操作は、ソフトウェアキー管理タイプのKey Management Service (KMS) インスタンスの対称キーに対してのみ呼び出すことができます。 キーの仕様、暗号化モード、およびキーのバージョンの詳細については、「キーの種類と仕様」をご参照ください。

AdvanceEncrypt操作またはEncrypt操作を呼び出して、平文を暗号文に暗号化できます。 2つの操作の次の違いに注意してください。

  • AdvanceEncrypt: キーのプライマリバージョンは、平文を暗号文に暗号化するために使用されます。 暗号文を復号化するには、AdvanceDecrypt操作を呼び出す必要があります。

  • 暗号化: キーの初期バージョンは、平文を暗号文に暗号化するために使用されます。 Decrypt操作またはAdvanceDecrypt操作を呼び出して、暗号文を復号化できます。

重要

自動キーローテーションを有効にする場合は、AdvanceEncrypt操作を呼び出して、キーローテーション機能が無効にならないようにする必要があります。 自動キーローテーションの詳細については、「キーローテーションの設定」をご参照ください。

使用上の注意

プロトコルバッファを使用してすべてのリクエストパラメータをエンコードした後、リクエストボディの長さが3 MBを超えないようにしてください。 リクエストボディが3 MBを超えると、サーバーはリクエストを拒否し、HTTP 413ステータスコードを返します。 1回の操作で暗号化と復号化を行うには、データサイズを6 KBに制限することを推奨します。 データが制限を超える場合は、エンベロープ暗号化を使用することを推奨します。 詳細については、「エンベロープ暗号化の使用」をご参照ください。

説明

単一の暗号化または復号化で大量のデータを使用すると、ネットワーク障害のリスクが高まり、ネットワーク伝送に必要な時間が長くなり、KMSがデータを暗号化および復号化するのに必要な期間が長くなります。

リクエストパラメーター

パラメーター

必須 / 任意

説明

KeyId

String

対象

key-hzz62f1cb66fa42qo ****

キーのグローバル一意ID。 このパラメーターは、キーにバインドされているエイリアスに設定できます。

重要

ソフトウェアキー管理タイプのKMSインスタンスでは、キーは対称キーである必要があります。

Plaintext

バイト

対象

バイナリデータ

暗号化するプレーンテキスト。

アルゴリズム

String

非対象

AES_GCM

暗号化アルゴリズム。

このパラメーターを設定しない場合、KMSはデフォルト値を使用します。 詳細については、「キーの種類と仕様」をご参照ください。

Iv

バイト

非対象

バイナリデータ

データの暗号化に使用される初期ベクトル。

このパラメーターは、AlgorithmがAES_GCMまたはAES_CBCに設定されている場合にのみ有効になります。

  • AlgorithmがAES_CBCに設定される場合、Ivの値は16バイト長でなければならない。

  • AlgorithmがAES_GCMに設定されている場合、Ivの値は12バイトの長さでなければなりません。

このパラメーターを設定しない場合、KMSは乱数を生成します。

重要

設定しないことを推奨します。

Aad

binary

非対象

バイナリデータ

GCMモードを使用してデータキーを暗号化する場合の認証データ。

AlgorithmがAES_GCMに設定されている場合、ビジネス要件に基づいてこのパラメーターを使用できます。

重要

Aadが設定されている場合、AdvanceDecrypt操作を呼び出すときに同じパラメーターを設定する必要があります。

PaddingMode

String

非対象

PKCS7_PADDING

パディングモード。

このパラメーターは、AlgorithmがAES_CBCまたはAES_ECBに設定されている場合にのみ必要です。

有効な値:

  • PKCS7_PADDING: PKCS#7パディングが使用されます。 デフォルト値です。 平文または暗号文の長さは、バイト単位の暗号ブロックサイズの整数倍でなくてもよい。

    入力平文または暗号文の長さがLバイトである場合、システムは、K − (L mod K) バイトのパディング文字列を追加する。 各パディングストリングは、長さがK − (L mod K) バイトである。

  • NO_PADDING: パディング文字列はプレーンテキストに追加されません。 平文の長さは、バイト単位の暗号ブロックサイズの整数倍でなければならない。

レスポンスパラメーター

パラメーター

タイプ

説明

CiphertextBlob

バイト

バイナリデータ

キーを使用して暗号化された平文の暗号文。

説明

CiphertextBlobには、KeyId、Algorithm、PaddingMode、およびIvに関する情報が含まれています。 AdvanceDecrypt操作を呼び出してデータを復号する場合にのみ、CiphertextBlobを設定する必要があります。

アルゴリズム

String

AES_GCM

暗号化アルゴリズム。

KeyId

String

key-hzz62f1cb66fa42qo ****

キーのグローバル一意ID。 リクエストのKeyIdをキーのエイリアスに設定した場合、エイリアスがバインドされているキーのIDが返されます。

KeyVersionId

String

key-hzz62f1cb66fa42qopd9s-17kedv ****

キーのバージョン。 プライマリバージョンが使用されます。

Iv

バイト

バイナリデータ

データの暗号化に使用される初期ベクトル。

AlgorithmがAES_GCMまたはAES_CBCに設定されている場合にのみ、有効な値が返されます。他のシナリオでは、空の値が返されます。

PaddingMode

String

PKCS7_PADDING

パディングモード。 このパラメーターは、AlgorithmがAES_CBCまたはAES_ECBに設定されている場合にのみ有効な値を返します。 他のシナリオでは、空の値が返されます。

RequestId

String

c0037a6d-7784-4ef2-a692-288fdefc7b9d

リクエストのID。問題の特定とトラブルシューティングに使用されます。

エラーコード

HTTPステータスコード

エラーコード

エラーメッセージ

説明

404

Forbidden.OnlySymmetricKeySupported

キー % sは対称キーではありません。 APIは対称キーのみをサポートします。

対称キーのみがサポートされています。

説明

非対称暗号化は、セキュリティドメイン間のデータ暗号化または鍵交換に使用されます。 この場合、KMSは片側では使用されません。

エラーコードのリストについては、「サービスエラーコード」をご参照ください。