プレーンテキストを暗号文に暗号化します。
操作の概要
Key Management Service (KMS) には、Encrypt と AdvanceEncrypt の 2 種類の暗号化操作があります。主な違いは、使用されるキーのバージョンと、後続で呼び出す必要のある復号操作です。
| Encrypt | AdvanceEncrypt | |
|---|---|---|
| 使用されるキーのバージョン | 初期バージョン | プライマリバージョン |
| 互換性のある復号操作 | Decrypt または AdvanceDecrypt | AdvanceDecrypt のみ |
ソフトウェアキー管理インスタンスで対称キーを使用し、自動回転を有効にしている場合は、Encrypt の代わりに AdvanceEncrypt を使用してください。自動回転が有効な状態で Encrypt を使用すると、キーのローテーション機能が動作しなくなります。詳細については、「キーのローテーションの設定」をご参照ください。
キー仕様、暗号化モード、およびキーのバージョンの詳細については、「キーの種類と仕様」をご参照ください。
注意事項
Protocol Buffers でエンコーディング後のリクエストボディは 3 MB を超えてはなりません。制限を超えると、サーバーはリクエストを拒否し、HTTP 413 を返します。
単一の暗号化または復号操作では、以下のデータサイズ制限内に収めてください。
対称キー:6 KB
非対称キー:1 KB
より大きなデータを処理する場合は、エンベロープ暗号化を使用してください。
ペイロードが大きいと、ネットワーク障害のリスクが高まり、伝送時間が長くなり、KMS 処理の遅延が発生します。
リクエストパラメーター
| パラメーター | タイプ | 必須 | 例 | 説明 |
|---|---|---|---|---|
| KeyId | string | はい | key-hzz62f1cb66fa42qo**** | キーのグローバルに一意な ID です。キーにバインドされたエイリアスを指定することもできます。 |
| Plaintext | bytes | はい | バイナリデータ | 暗号化するプレーンテキストです。 |
| Algorithm | string | いいえ | AES_GCM | 暗号化アルゴリズムです。指定しない場合、KMS はキーのデフォルトのアルゴリズムを使用します。詳細については、「キーの種類と仕様」をご参照ください。 |
| Iv | bytes | いいえ | バイナリデータ | 暗号化に使用する初期化ベクトル (IV) です。Algorithm が AES_GCM または AES_CBC の場合にのみ適用されます。有効な長さは、AES_GCM の場合は 12 バイト、AES_CBC の場合は 16 バイトです。指定しない場合、KMS はランダムな値を生成します。このパラメーターを設定しないでください。 |
| Aad | binary | いいえ | バイナリデータ | GCM モード認証用の追加認証データ (AAD) です。対称キーを使用し、かつ Algorithm が AES_GCM または SM4_GCM の場合に適用されます。指定した場合は、Decrypt を呼び出す際にも同じ値を渡す必要があります。 |
| PaddingMode | string | いいえ | PKCS7_PADDING | パディングモードです。Algorithm が AES_CBC または AES_ECB の場合にのみ必要です。有効な値は、PKCS7_PADDING (デフォルト) および NO_PADDING です。 |
PaddingMode の値
`PKCS7_PADDING` (デフォルト):PKCS#7 パディングを使用します。入力が L バイトの場合、KMS は K − (L mod K) バイトのパディングを追加します。ここで K は暗号ブロックサイズです。
`NO_PADDING`:パディングは追加されません。プレーンテキストの長さは、暗号ブロックサイズの整数倍である必要があります。
レスポンス要素
| パラメーター | タイプ | 例 | 説明 |
|---|---|---|---|
| Iv | bytes | バイナリデータ | 暗号化に使用された初期化ベクトル (IV) です。Algorithm が AES_GCM または AES_CBC の場合にのみ値が返され、それ以外の場合は空になります。 |
| CiphertextBlob | bytes | バイナリデータ | 暗号化された暗号文です。楕円曲線統合暗号方式 (ECIES) アルゴリズムを使用する場合、暗号文のフォーマットはSEC 1:Elliptic Curve Cryptography, Version 2.0 標準に従います。 |
| KeyId | string | key-hzz62f1cb66fa42qo**** | キーのグローバルに一意な ID です。リクエストでエイリアスを指定した場合、このフィールドにはそのエイリアスにバインドされたキーの ID が返されます。 |
| Algorithm | string | AES_GCM | 暗号化アルゴリズムです。 |
| PaddingMode | string | PKCS7_PADDING | パディングモードです。Algorithm が AES_CBC または AES_ECB の場合にのみ値が返され、それ以外の場合は空になります。 |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | リクエスト ID です。問題の特定やトラブルシューティングに使用します。 |
エラーコード
エラーコードの一覧については、「サービスエラーコード」をご参照ください。