

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Encryption SDK CLI 語法和參數參考
<a name="crypto-cli-reference"></a>

本主題提供語法圖表和概要參數描述，以協助您使用 AWS Encryption SDK 命令列界面 (CLI)。如需包裝金鑰和其他參數的說明，請參閱 [如何使用 AWS 加密 CLI](crypto-cli-how-to.md)。如需範例，請參閱 [AWS 加密 CLI 的範例](crypto-cli-examples.md)。如需完整的文件，請參閱[閱讀相關文件](https://aws-encryption-sdk-cli.readthedocs.io/en/latest/)。

**Topics**
+ [AWS 加密 CLI 語法](#crypto-cli-syntax)
+ [AWS 加密 CLI 命令列參數](#crypto-cli-parameters)
+ [進階參數](#cli-advanced-parameters)

## AWS 加密 CLI 語法
<a name="crypto-cli-syntax"></a>

這些 AWS Encryption CLI 語法圖表顯示您使用 AWS Encryption CLI 執行的每個任務的語法。它們代表 AWS 加密 CLI 2.1.*x* 版和更新版本中建議的語法。

新的安全功能最初在 AWS 加密 CLI 版本 1.7.*x* 和 2.0.*x* 中發行。不過， AWS Encryption CLI 1.8.*x* 版取代了 1.7.*x* 版，而 AWS Encryption CLI 2.1.*x* 版取代了 2.0.*x*。如需詳細資訊，請參閱 GitHub 上 [aws-encryption-sdk-cli](https://github.com/aws/aws-encryption-sdk-cli/) 儲存庫中的相關[安全建議](https://github.com/aws/aws-encryption-sdk-cli/security/advisories/GHSA-2xwp-m7mq-7q3r)。

**注意**  
除非在參數描述中另有說明，否則每個參數或屬性在每個命令中只能使用一次。  
如果您使用 參數不支援的屬性， AWS Encryption CLI 會忽略該不支援的屬性，而不會出現警告或錯誤。

**取得說明**  
若要取得具有參數描述的完整 AWS 加密 CLI 語法，請使用 `--help`或 `-h`。  

```
aws-encryption-cli (--help | -h)
```

**取得版本**  
若要取得您 AWS Encryption CLI 安裝的版本編號，請使用 `--version`。當您提出問題、回報問題或分享有關使用 AWS 加密 CLI 的秘訣時，請務必包含 版本。  

```
aws-encryption-cli --version
```

**加密資料**  
下列語法圖表顯示 **encrypt** 命令使用的參數。  

```
aws-encryption-cli --encrypt
                   --input <input> [--recursive] [--decode]
                   --output <output> [--interactive] [--no-overwrite] [--suffix [<suffix>]] [--encode]
                   --wrapping-keys  [--wrapping-keys] ...
                       key=<keyID> [key=<keyID>] ...
                       [provider=<provider-name>] [region=<aws-region>] [profile=<aws-profile>]
                   --metadata-output <location> [--overwrite-metadata] | --suppress-metadata]
                   [--commitment-policy <commitment-policy>]
                   [--encryption-context <encryption_context> [<encryption_context> ...]]
                   [--max-encrypted-data-keys <integer>]
                   [--algorithm <algorithm_suite>]
                   [--caching <attributes>] 
                   [--frame-length <length>]
                   [-v | -vv | -vvv | -vvvv]
                   [--quiet]
```

**解密資料**  
下列語法圖表顯示 **decrypt** 命令使用的參數。  
在 1.8.*x* 版中， 參數在解密時`--wrapping-keys`為選用，但建議使用。從 2.1.*x* 版開始，在加密和解密時需要 `--wrapping-keys` 參數。對於 AWS KMS keys，您可以使用**金鑰**屬性來指定包裝金鑰 （最佳實務） 或將**探索**屬性設定為 `true`，這不會限制 AWS 加密 CLI 可以使用的包裝金鑰。  

```
aws-encryption-cli --decrypt (or [--decrypt-unsigned]) 
                   --input <input> [--recursive] [--decode]
                   --output <output> [--interactive] [--no-overwrite]  [--suffix [<suffix>]] [--encode]           
                   --wrapping-keys  [--wrapping-keys] ...
                       [key=<keyID>] [key=<keyID>] ...
                       [discovery={true|false}] [discovery-partition=<aws-partition-name> discovery-account=<aws-account-ID> [discovery-account=<aws-account-ID>] ...] 
                       [provider=<provider-name>] [region=<aws-region>] [profile=<aws-profile>]
                   --metadata-output <location> [--overwrite-metadata] | --suppress-metadata]
                   [--commitment-policy <commitment-policy>]
                   [--encryption-context <encryption_context> [<encryption_context> ...]]
                   [--buffer]
                   [--max-encrypted-data-keys <integer>]
                   [--caching <attributes>]
                   [--max-length <length>]
                   [-v | -vv | -vvv | -vvvv]
                   [--quiet]
```

**使用組態檔案**  
您可以參考包含參數及其值的組態檔案。這相當於在命令中輸入參數和值。如需範例，請參閱 [如何在組態檔案中存放參數](crypto-cli-how-to.md#crypto-cli-config-file)。  

```
aws-encryption-cli @<configuration_file>

# In a PowerShell console, use a backtick to escape the @.
aws-encryption-cli `@<configuration_file>
```

## AWS 加密 CLI 命令列參數
<a name="crypto-cli-parameters"></a>

此清單提供 AWS 加密 CLI 命令參數的基本說明。如需完整說明，請參閱 [aws-encryption-sdk-cli 文件](http://aws-encryption-sdk-cli.readthedocs.io/en/latest/)。

**--encrypt (-e)**  
加密輸入資料。每個命令都必須有 `--encrypt`、 或 `--decrypt`或 `--decrypt-unsigned` 參數。

**--decrypt (-d)**  
解密輸入資料。每個命令都必須有 `--encrypt`、 `--decrypt`或 `--decrypt-unsigned` 參數。

**--decrypt-unsigned 【在 1.9.*x* 和 2.2.*x* 版中介紹】**  
`--decrypt-unsigned` 參數會解密加密文字，並確保訊息在解密之前未簽署。如果您使用 參數並選取沒有數位簽署的演算法套件來加密資料，請使用此`--algorithm`參數。如果簽署加密文字，解密會失敗。  
您可以使用 `--decrypt`或 `--decrypt-unsigned` 進行解密，但不能同時使用兩者。

**--wrapping-keys (-w) 【1.8.*x* 版中介紹】**  <a name="wrapping-keys"></a>
指定用於加密和解密操作的[包裝金鑰](concepts.md#master-key) （或*主金鑰*)。您可以在每個命令中使用[多個`--wrapping-keys`參數](crypto-cli-how-to.md#cli-many-cmks)。  
從 2.1.*x* 版開始，在加密和解密命令中需要 `--wrapping-keys` 參數。在 1.8.*x* 版中，加密命令需要 `--wrapping-keys`或 `--master-keys` 參數。在 1.8.*x* 版解密命令中，`--wrapping-keys`參數是選用的，但建議使用。  
使用自訂主金鑰提供者時，加密和解密命令需要**金鑰**和**提供者**屬性。使用 時 AWS KMS keys，加密命令需要**金鑰**屬性。解密命令需要**金鑰**屬性或值為 `true`（但不是兩者） 的**探索**屬性。解密時使用**金鑰**屬性是[AWS Encryption SDK 最佳實務](best-practices.md)。如果您要解密不熟悉的訊息批次，例如 Amazon S3 儲存貯體或 Amazon SQS 佇列中的訊息，尤其重要。  
如需示範如何使用 AWS KMS 多區域金鑰做為包裝金鑰的範例，請參閱 [使用多區域 AWS KMS keys](configure.md#config-mrks)。  
**屬性**：`--wrapping-keys` 參數的值包含下列屬性。格式是 `attribute_name=value`。    
**金鑰**  
識別 操作中使用的包裝金鑰。格式是 **key**=ID 對組。您可以在每個`--wrapping-keys`參數值中指定多個**金鑰**屬性。  
+ **加密命令**：所有加密命令都需要**金鑰**屬性 。當您在加密命令 AWS KMS key 中使用 時，**金鑰**屬性的值可以是金鑰 ID、金鑰 ARN、別名名稱或別名 ARN。如需 AWS KMS 金鑰識別符的說明，請參閱《 *AWS Key Management Service 開發人員指南*》中的[金鑰識別符](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)。
+ **解密命令**：使用 解密時 AWS KMS keys， `--wrapping-keys` 參數需要**金鑰** [ARN 值的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)屬性，或值為 的**探索**屬性 `true`（但不是兩者）。使用**金鑰**屬性是[AWS Encryption SDK 最佳實務](best-practices.md)。使用自訂主金鑰提供者解密時，需要**金鑰**屬性。
**注意**  
若要在解密命令中指定 AWS KMS 包裝金鑰，**金鑰**屬性的值必須是金鑰 ARN。如果您使用金鑰 ID、別名名稱或別名 ARN， AWS 加密 CLI 無法辨識包裝金鑰。
您可以在每個`--wrapping-keys`參數值中指定多個**金鑰**屬性。不過，`--wrapping-keys`參數中的任何**提供者**、**區域**和**設定檔**屬性都會套用到該參數值中的所有包裝金鑰。若要指定具有不同屬性值的包裝金鑰，請在 命令中使用多個`--wrapping-keys`參數。  
**探索**  
允許 AWS Encryption CLI 使用任何 AWS KMS key 來解密訊息。**探索**值可以是 `true`或 `false`。預設值為 `false`。**探索**屬性僅在解密命令中有效，且僅在主金鑰提供者為 時有效 AWS KMS。  
使用 解密時 AWS KMS keys， `--wrapping-keys` 參數需要**金鑰**屬性或值為 `true`（但不是兩者） 的**探索**屬性。如果您使用**金鑰**屬性，則可以使用值為 的**探索**屬性`false`來明確拒絕探索。  
+ `False` （預設） — 未指定**探索**屬性或其值為 時`false`， AWS Encryption CLI 只會使用 `--wrapping-keys` 參數的**金鑰**屬性 AWS KMS keys 指定的 來解密訊息。如果您在 探索為 時未指定**金鑰**屬性`false`，解密命令會失敗。此值支援 AWS 加密 CLI [最佳實務](best-practices.md)。
+ `True` — 當**探索**屬性的值為 時`true`， AWS 加密 CLI AWS KMS keys 會從加密訊息中的中繼資料取得 ，並使用它們 AWS KMS keys 來解密訊息。值為 的**探索**屬性`true`的行為類似於 1.8.*x* 版之前的 AWS 加密 CLI 版本，不允許您在解密時指定包裝金鑰。不過，您使用 的意圖 AWS KMS key 是明確的。如果您在 探索為 時指定**金鑰**屬性`true`，解密命令會失敗。

  此`true`值可能會導致 AWS 加密 CLI AWS KMS keys 在不同 AWS 帳戶 和 區域中使用，或嘗試使用 AWS KMS keys 使用者未獲授權使用的 。
當 **探索**為 時`true`，最佳實務是使用 **探索分割區**和**探索帳戶**屬性，將 AWS KMS keys 限制為您 AWS 帳戶 指定的 中所使用的 。  
**探索帳戶**  
將 AWS KMS keys 用於解密的 限制為指定 中的 AWS 帳戶。此屬性的唯一有效值是 [AWS 帳戶 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)。  
此屬性是選用的，且僅在解密命令中有效， AWS KMS keys 其中 **探索**屬性設為 `true`且指定 **探索分割區**屬性。  
每個 **探索帳戶**屬性只需要一個 AWS 帳戶 ID，但您可以在相同的`--wrapping-keys`參數中指定多個**探索帳戶**屬性。指定`--wrapping-keys`參數中指定的所有帳戶都必須位於指定的 AWS 分割區中。  
**探索分割區**  
在 **探索**帳戶屬性中指定帳戶的 AWS 分割區。其值必須是 AWS 分割區，例如 `aws`、 `aws-cn`或 `aws-gov-cloud`。如需詳細資訊，請參閱《》中的 [Amazon Resource Names](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax)*AWS 一般參考*。  
當您使用 **探索帳戶**屬性時，需要此屬性。每個`--wrapping keys`參數只能指定一個 **探索分割區**屬性。若要在多個分割區 AWS 帳戶 中指定 ，請使用其他`--wrapping-keys`參數。  
**provider (提供者)**  
識別[主金鑰提供者](concepts.md#master-key-provider)。格式是 **provider**=ID 對組。預設值 **aws-kms** 代表 AWS KMS。只有在主金鑰提供者不是 時，才需要此屬性 AWS KMS。  
**region**  
識別 AWS 區域 的 AWS KMS key。此屬性僅適用於 AWS KMS keys。僅在 **key** 識別符未指定區域時才會用到，否則會忽略。使用它時，它會覆寫 CLI AWS 命名設定檔中的預設區域。  
**profile**  
識別已 AWS CLI [命名的設定檔](https://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html)。此屬性僅適用於 AWS KMS keys。只有在命令中的 key 識別符未指定區域，且沒有 **region** 屬性時，才會使用設定檔中的區域。

**--input (-i)**  
指定加密或解密資料的位置。此為必要參數。這個值可以是檔案或目錄的路徑，或檔案名稱模式。如果您將輸入輸送到命令 (stdin)，請使用 `-`。  
如果輸入不存在，命令會順利完成，且不出現錯誤或警告。    
**--recursive (-r, -R)**  
在輸入目錄及其子目錄中的檔案上執行操作。當 `--input` 的值是目錄時，此參數為必要。  
**--decode**  
解碼 Base64 編碼輸入。  
如果您要解密先加密接著編碼的訊息，您必須先解碼訊息，然後才能解密。此參數會為您處理這些工作。  
例如，如果您在加密命令中使用 `--encode` 參數，請在對應的解密命令中使用 `--decode` 參數。您也可以使用此參數來解碼 Base64 編碼輸入，接著再進行加密。

**--output (-o)**  
指定輸出的目的地。此為必要參數。這個值可以是檔案名稱、現有目錄，或者 `-`，後者會將輸出寫入命令列 (stdout)。  
如果指定的輸出目錄不存在，命令會失敗。如果輸入包含子目錄， AWS 加密 CLI 會在您指定的輸出目錄下重現子目錄。  
根據預設， AWS Encryption CLI 會覆寫具有相同名稱的檔案。若要變更此行為，請使用 `--interactive` 或 `--no-overwrite` 參數。若要隱藏覆寫警告，請使用 `--quiet` 參數。  
如果覆寫輸出檔案的命令失敗，則會刪除輸出檔案。  
**--interactive**  
在覆寫檔案之前出現提示。  
**--no-overwrite**  
不要覆寫檔案。反之，如果輸出檔案存在， AWS 加密 CLI 會略過對應的輸入。  
**--suffix**  
指定 AWS 加密 CLI 建立之檔案的自訂檔案名稱尾碼。若要指示沒有尾碼，請使用參數而不加上值 (`--suffix`)。  
在預設情況下，當 `--output` 參數未指定檔案名稱，輸出檔案名稱會具有輸入檔案名稱的相同名稱，再加上尾碼。加密命令的尾碼是 `.encrypted`。解密命令的尾碼是 `.decrypted`。  
**--encode**  
套用 Base64 (二進位至文字) 編碼到輸出。編碼可防止殼層主機程式錯誤解譯輸出文字中的非 ASCII 字元。  
寫入加密輸出到 stdout (`--output -`) 時請使用此參數 (尤其是在 PowerShell 主控台中)，即使您是將輸出輸送到另一個命令或儲存在變數中。

**--metadata-output**  
指定密碼編譯操作的相關中繼資料的位置。輸入路徑和檔案名稱。如果目錄不存在，命令會失敗。若要寫入中繼資料至命令列 (stdout)，請使用 `-`。  
您不能在相同的命令中寫入命令輸出 (`--output`) 和中繼資料輸出 (`--metadata-output`) 至 stdout。此外，當 `--input` 或 `--output` 的值是目錄 (沒有檔案名稱)，您無法將中繼資料輸出寫入到相同目錄或該目錄的任何子目錄。  
如果您指定現有的檔案，根據預設， AWS 加密 CLI 會將新的中繼資料記錄附加到檔案中的任何內容。此功能可讓您建立單一檔案，其中包含所有密碼編譯操作的中繼資料。若要覆寫現有檔案中的內容，請使用 `--overwrite-metadata` 參數。  
Encryption CLI AWS 會針對命令執行的每個加密或解密操作傳回 JSON 格式的中繼資料記錄。每個中繼資料記錄都包含輸入和輸出檔案的完整路徑、加密內容、演算法套件和其他有用資訊，供您用來檢視操作並驗證其符合您的安全標準。    
**--overwrite-metadata**  
覆寫中繼資料輸出檔案中的內容。在預設情況下，`--metadata-output` 參數會附加中繼資料到檔案中的任何現有內容。

**--suppress-metadata (-S)**  
隱藏加密或解密操作的相關中繼資料。

**--commitment-policy**  <a name="syntax-commitment-policy"></a>
指定加密和解密命令[的承諾政策](concepts.md#commitment-policy)。承諾政策會判斷您的訊息是否使用[金鑰承諾](concepts.md#key-commitment)安全功能進行加密和解密。  
`--commitment-policy` 參數會在 1.8.*x* 版中推出。它在加密和解密命令中有效。  
**在 1.8.*x* 版**中， AWS 加密 CLI 會將`forbid-encrypt-allow-decrypt`承諾政策用於所有加密和解密操作。當您在加密或解密命令中使用 `--wrapping-keys` 參數時，需要具有 `forbid-encrypt-allow-decrypt`值的 `--commitment-policy` 參數。如果您不使用 `--wrapping-keys` 參數，則 `--commitment-policy` 參數無效。當您升級至 2.1.*x* 版`require-encrypt-require-decrypt`時，設定承諾政策會明確防止您的承諾政策自動變更為  
從 **2.1.*x* 版開始**，支援所有承諾政策值。`--commitment-policy` 參數為選用，預設值為 `require-encrypt-require-decrypt`。  
此參數具有以下值：  
+ `forbid-encrypt-allow-decrypt` — 無法使用金鑰承諾加密。它可以解密使用或不使用金鑰承諾加密的加密文字。

  在 1.8.*x* 版中，這是唯一有效的值。 AWS 加密 CLI 會將`forbid-encrypt-allow-decrypt`承諾政策用於所有加密和解密操作。
+ `require-encrypt-allow-decrypt` — 僅加密金鑰承諾。使用和不使用金鑰承諾進行解密。此值在 2.1.*x* 版中推出。
+ `require-encrypt-require-decrypt` （預設） — 僅使用金鑰承諾來加密和解密。此值在 2.1.*x* 版中推出。這是 2.1.*x* 版和更新版本的預設值。使用此值時， AWS Encryption CLI 不會解密使用舊版 加密的任何加密文字 AWS Encryption SDK。
如需設定承諾政策的詳細資訊，請參閱 [遷移您的 AWS Encryption SDK](migration.md)。

**--encryption-context (-c)**  
指定操作的[加密內容](crypto-cli-how-to.md#crypto-cli-encryption-context)。此參數非必要，但仍建議使用。  
+ 在 `--encrypt` 命令中，輸入一或多個 `name=value` 對組。使用空格來分隔對組。
+ 在`--decrypt`命令中，輸入沒有值的`name=value`配對、`name`元素或兩者。
如果 `name` 對組中的 `value` 或 `name=value` 包含空格或特殊字元，請用引號括住整個對組。例如 `--encryption-context "department=software development"`。

**--buffer (-b) 【1.9.*x* 和 2.2.*x* 版中介紹】**  
只有在處理所有輸入後才會傳回純文字，包括驗證數位簽章是否存在。

**--max-encrypted-data-keys 【1.9.*x* 和 2.2.*x* 版中介紹】**  
指定加密訊息中加密資料金鑰的數量上限。此為選用參數。  
有效值為 1 – 65，535。如果您省略此參數， AWS 加密 CLI 不會強制執行任何最大值。加密的訊息最多可保留 65，535 個 (2^16 - 1) 加密的資料金鑰。  
您可以在加密命令中使用此參數，以防止格式不正確的訊息。您可以在解密命令中使用它來偵測惡意訊息，並避免使用許多您無法解密的加密資料金鑰來解密訊息。如需詳細資訊和範例，請參閱[限制加密的資料金鑰](configure.md#config-limit-keys)。

**--help (-h)**  
在命令列印使用方法和語法。

**--version**  
取得 AWS 加密 CLI 的版本。

**-v \$1 -vv \$1 -vvv \$1 -vvvv**  
顯示詳細資訊、警告和偵錯訊息。輸出中的詳細資訊會隨著參數中的 `v` 數量而增加。最詳細的設定 (`-vvvv`) 會從 AWS 加密 CLI 及其使用的所有元件傳回偵錯層級資料。

**--quiet (-q)**  
隱藏警告訊息，例如，當您覆寫輸出檔案時的訊息。

**--master-keys (-m) 【已棄用】**  
--master-keys 參數已在 1.8.*x* 中棄用，並在 2.1.*x* 版中移除。請改用 [--wrapping-keys](#wrapping-keys) 參數。
指定用於加密和解密操作的[主金鑰](concepts.md#master-key)。您可以在每個命令中使用多個主金鑰參數。  
在加密命令中 `--master-keys` 參數為必要。只有在您使用自訂 （非AWS KMS) 主金鑰提供者時，才需要在解密命令中。  
**屬性**：`--master-keys` 參數的值包含下列屬性。格式是 `attribute_name=value`。    
**金鑰**  
識別 操作中使用的[包裝金鑰](concepts.md#master-key)。格式是 **key**=ID 對組。在所有加密命令中 **key** 屬性為必要。  
當您在加密命令 AWS KMS key 中使用 時，**金鑰**屬性的值可以是金鑰 ID、金鑰 ARN、別名名稱或別名 ARN。如需 AWS KMS 金鑰識別符的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[金鑰識別符](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)。  
當主**金鑰**提供者不是 時，解密命令中需要 金鑰屬性 AWS KMS。在解密以 加密之資料的命令中，不允許使用**金鑰**屬性 AWS KMS key。  
您可以在每個`--master-keys`參數值中指定多個**金鑰**屬性。不過，任何 **provider**、**region** 和 **profile** 屬性都會套用至參數值中的所有主金鑰。若要使用不同的屬性值來指定主金鑰，請在命令中使用多個 `--master-keys` 參數。  
**provider (提供者)**  
識別[主金鑰提供者](concepts.md#master-key-provider)。格式是 **provider**=ID 對組。預設值 **aws-kms** 代表 AWS KMS。只有在主金鑰提供者不是 時，才需要此屬性 AWS KMS。  
**region**  
識別 AWS 區域 的 AWS KMS key。此屬性僅適用於 AWS KMS keys。僅在 **key** 識別符未指定區域時才會用到，否則會忽略。使用它時，它會覆寫 CLI AWS 命名設定檔中的預設區域。  
**profile**  
識別 AWS CLI [已命名的設定檔](https://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html)。此屬性僅適用於 AWS KMS keys。只有在命令中的 key 識別符未指定區域，且沒有 **region** 屬性時，才會使用設定檔中的區域。

## 進階參數
<a name="cli-advanced-parameters"></a>

**--algorithm**  
指定替代[演算法套件](concepts.md#crypto-algorithm)。此參數是選用的，僅在加密命令中有效。  
如果您省略此參數， AWS 加密 CLI 會針對 1.8.*x* 版中 AWS Encryption SDK 介紹的 使用其中一個預設演算法套件。這兩種預設演算法都使用 AES-GCM 搭配 [HKDF](https://en.wikipedia.org/wiki/HKDF)、ECDSA 簽章和 256 位元加密金鑰。一個使用金鑰承諾，一個不使用。預設演算法套件的選擇取決於 命令[的承諾政策](concepts.md#commitment-policy)。  
建議大多數加密操作使用預設演算法套件。如需有效值的清單，請參閱[讀取文件](https://aws-encryption-sdk-cli.readthedocs.io/en/latest/index.html#execution)中的 `algorithm` 參數值。

**--frame-length**  
使用指定的框架長度建立輸出。此參數是選用的，僅在加密命令中有效。  
以位元組為單位輸入值。有效值為 0 和 1 – 2^31 - 1。值 0 表示非影格資料。預設值為 4096 （位元組）。  
盡可能使用影格資料。僅 AWS Encryption SDK 支援傳統用途的非影格資料。的某些語言實作仍然 AWS Encryption SDK 可以產生非框架加密文字。所有支援的語言實作都可以解密影格和非影格加密文字。

**--max-length**  
代表從加密訊息讀取的最大框架大小 (或無框架訊息的最大內容長度)，以位元組為單位。此參數是選用的，僅在解密命令中有效。旨在避免您解密非常大型的惡意加密文字。  
以位元組為單位輸入值。如果您省略此參數， AWS Encryption SDK 不會限制解密時的影格大小。

**--caching**  
啟用[資料金鑰快取](data-key-caching.md)功能，可重複使用資料金鑰，而非為每個輸入檔案產生新的資料金鑰。此參數支援進階案例。使用此功能前，請務必先閱讀[資料金鑰快取](data-key-caching.md)文件。  
`--caching` 參數具有下列屬性。    
**capacity (必要)**  
決定快取中的項目數上限。  
最小值為 1。沒有最大數值。  
**max\$1age (必要)**  
決定使用快取項目的時間長度，以秒為單位，從它們新增至快取開始。  
輸入大於 0 的數值。沒有最大數值。  
**max\$1messages\$1encrypted （選用）**  
決定快取項目可以加密的最大訊息數。  
有效值為 1 – 2^32。預設值為 2^32 （訊息）。  
**max\$1bytes\$1encrypted （選用）**  
決定快取項目可以加密的最大位元組數。  
有效值為 0 和 1 – 2^63 - 1。預設值為 2^63 - 1 （訊息）。值為 0 只允許您在加密空的訊息字串時使用資料金鑰快取。