

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

# 設定 IDT AWS IoT Greengrass 設定以執行資格套件
<a name="set-config"></a>

執行測試之前，您必須在主機電腦上設定 AWS 登入資料和裝置的設定。

## 在 config.json 中設定 AWS 登入資料
<a name="cfg-aws-gg"></a>

您必須在 `<device_tester_extract_location>/configs/config.json` 檔案中設定 IAM 使用者登入資料。使用在 中建立的 IDT for AWS IoT Greengrass V2 使用者的登入資料[建立和設定 AWS 帳戶](dev-tst-prereqs.md#config-aws-account-for-idt)。您可以使用下列兩種方式的其中之一指定登入資料：
+ 在登入資料檔案中
+ 做為環境變數

### 使用 AWS 登入資料檔案設定登入資料
<a name="config-cred-file"></a>

IDT 會使用與 AWS CLI相同的登入資料檔案。如需詳細資訊，請參閱[組態與登入資料檔案](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html)。

登入資料檔案的位置會有所不同，取決於您使用的作業系統：
+ macOS, Linux: `~/.aws/credentials`
+ Windows：`C:\Users\UserName\.aws\credentials`

以下列格式將您的 AWS 登入資料新增至 `credentials` 檔案：

```
[default]
aws_access_key_id = <your_access_key_id>
aws_secret_access_key = <your_secret_access_key>
```

若要將 IDT for AWS IoT Greengrass V2 設定為使用 `credentials` 檔案中的 AWS 登入資料，請編輯 `config.json` 檔案，如下所示：

```
{
  "awsRegion": "region",
  "auth": {
    "method": "file",
    "credentials": {
      "profile": "default"
    }
  }
}
```

**注意**  
如果您不使用`default` AWS 設定檔，請務必變更`config.json`檔案中的設定檔名稱。如需詳細資訊，請參閱[具名描述檔](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)。

### 使用環境變數設定 AWS 登入資料
<a name="config-env-vars"></a>

環境變數是由作業系統維護且由系統命令使用的變數。如果您關閉 SSH 工作階段，則不會儲存它們。IDT for AWS IoT Greengrass V2 可以使用 `AWS_ACCESS_KEY_ID`和 `AWS_SECRET_ACCESS_KEY` 環境變數來存放您的 AWS 登入資料。

若要在 Linux、macOS 或 Unix 上設定這些變數，請使用 **export**：

```
export AWS_ACCESS_KEY_ID=<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

若要在 Windows 上設定這些變數，請使用 **set**：

```
set AWS_ACCESS_KEY_ID=<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

若要設定 IDT 來使用環境變數，請在 `config.json` 檔案中編輯 `auth` 區段。請見此處範例：

```
{
  "awsRegion": "region",
  "auth": {
    "method": "environment"
  }
}
```

## 設定 device.json
<a name="device-config"></a>

**注意**  
IDT v4.9.3 支援測試 `ml`、 `docker`和 `streamManagement`功能。IDT v4.9.4 和更新版本支援測試 。 `docker`如果您不想測試這些功能，請將對應的值設定為 `no`。

除了 AWS 登入資料之外，IDT for AWS IoT Greengrass V2 還需要執行測試之裝置的相關資訊。範例資訊包括 IP 地址、登入資訊、作業系統和 CPU 架構。

您必須使用位於 ` <device_tester_extract_location>/configs/device.json` 中的 `device.json` 範本提供此資訊：

------
#### [ IDT v4.9.3 ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "ml",
        "value": "dlr | tensorflowlite | dlr,tensorflowlite | no"
      },
      {
        "name": "docker",
        "value": "yes | no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      }, 
      {
        "name": "hsi", 
        "value": "hsm | no" 
      }
    ],
    "devices": [
      {
        "id": "<device-id>",
        "operatingSystem": "Linux | Windows",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": 22,
          "publicKeyPath": "<public-key-path>",
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

**注意**  
如果 `method` 是設定為 `pki`，則指定 `privKeyPath`  
如果 `method` 是設定為 `password`，則指定 `password`

所有包含值的屬性都是必要的，如下所述：

`id`  
使用者定義的英數字元 ID，可唯一識別裝置的集合，稱為「裝置集區」**。屬於同一個集區的裝置必須有相同的硬體。當您執行測試套件，集區中的裝置會用來將工作負載平行化。多個裝置用來執行不同的測試。

`sku`  
可唯一識別測試裝置的英數字元值。SKU 用來追蹤合格的主機板。  
如果您想要在 Device AWS Partner Catalog 中列出您的裝置，您在此處指定的 SKU 必須符合您在列出程序中使用的 SKU。

`features`  
包含裝置支援功能的陣列。所有功能都是必要的。    
`arch`  
測試執行驗證的支援作業系統架構。有效的值如下：  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`ml`  
<a name="description-ml"></a>驗證裝置是否符合使用 AWS提供的機器學習 (ML) 元件所需的所有必要技術相依性。  
啟用此功能也會驗證<a name="description-ml-inference-phrase"></a>裝置是否可以使用[深度學習執行期](https://github.com/neo-ai/neo-ai-dlr)和 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) ML 架構來執行 ML 推論。  
有效值是 `dlr`和 `tensorflowlite`、 或 的任意組合`no`。  
`docker`  
<a name="description-docker"></a>驗證裝置是否符合所有必要的技術相依性，以使用 AWS提供的 Docker 應用程式管理員 (`aws.greengrass.DockerApplicationManager`) 元件。  
啟用此功能也會驗證<a name="description-docker-app-manager-qual-phrase"></a>裝置是否可以從 Amazon ECR 下載 Docker 容器映像。  
有效值是 `yes`或 的任意組合`no`。  
`streamManagement`  
<a name="description-sm"></a>驗證裝置是否可以下載、安裝和執行[AWS IoT Greengrass 串流管理員](manage-data-streams.md)。  
有效值是 `yes`或 的任意組合`no`。  
`hsi`  
<a name="description-hsi"></a>驗證裝置是否可以使用存放在硬體安全模組 (HSM) 中的私有金鑰和憑證來驗證 AWS IoT 和 AWS IoT Greengrass 服務的連線。此測試也會驗證 AWS提供的 [PKCS\$111 供應商元件](pkcs11-provider-component.md)是否可以使用廠商提供的 PKCS\$111 程式庫與 HSM 連接。如需詳細資訊，請參閱[硬體安全整合](hardware-security.md)。  
有效值為 `hsm` 或 `no`。
測試 `hsi` 僅適用於 IDT v4.9.3 和更新版本。

`devices.id`  
使用者定義的唯一識別符，用於識別要測試的裝置。

`devices.operatingSystem`  
裝置作業系統。支援的值為 `Linux` 和 `Windows`。

`connectivity.protocol`  
用來與此裝置通訊的通訊協定。目前，唯一支援的值是`ssh`用於實體裝置。

`connectivity.ip`  
要測試之裝置的 IP 位址。  
<a name="connectivity-protocol-ssh-only"></a>只有當 `connectivity.protocol` 設為 `ssh` 時，才會套用此屬性。

`connectivity.port`  
選用。用於 SSH 連線的連接埠號碼。  
預設值為 22。  
只有當 `connectivity.protocol` 設為 `ssh` 時，才會套用此屬性。

`connectivity.publicKeyPath`  
選用。用來驗證待測裝置連線之公有金鑰的完整路徑。  
當您指定 時`publicKeyPath`，IDT 會在建立與待測裝置的 SSH 連線時驗證裝置的公有金鑰。如果未指定此值，IDT 會建立 SSH 連線，但不會驗證裝置的公有金鑰。  
我們強烈建議您指定公有金鑰的路徑，並使用安全方法來擷取此公有金鑰。對於標準命令列型 SSH 用戶端， `known_hosts`檔案中會提供公有金鑰。如果您指定單獨的公有金鑰檔案，此檔案必須使用與 `known_hosts` 檔案相同的格式，也就是 ` ip-address key-type public-key`。如果有多個項目具有相同的 ip-address，則 IDT 所使用的金鑰類型項目必須早於檔案中的其他項目。

`connectivity.auth`  
連線的驗證資訊。  
<a name="connectivity-protocol-ssh-only"></a>只有當 `connectivity.protocol` 設為 `ssh` 時，才會套用此屬性。    
`connectivity.auth.method`  
用來透過指定的連線通訊協定存取裝置的驗證方法。  
支援的值如下：  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
用於驗證的燈入資料。    
`connectivity.auth.credentials.password`  
用於登入要測試裝置的密碼。  
只有當 `connectivity.auth.method` 設為 `password` 時，才會套用此值。  
`connectivity.auth.credentials.privKeyPath`  
用來登入待測裝置之私有金鑰的完整路徑。  
只有當 `connectivity.auth.method` 設為 `pki` 時，才會套用此值。  
`connectivity.auth.credentials.user`  
登入要測試之裝置的使用者名稱。

------
#### [ IDT v4.9.4 ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "docker",
        "value": "yes | no"
      }, 
      {
        "name": "hsi", 
        "value": "hsm | no" 
      }
    ],
    "devices": [
      {
        "id": "<device-id>",
        "operatingSystem": "Linux | Windows",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": 22,
          "publicKeyPath": "<public-key-path>",
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

**注意**  
如果 `method` 是設定為 `pki`，則指定 `privKeyPath`  
如果 `method` 是設定為 `password`，則指定 `password`

所有包含值的屬性都是必要的，如下所述：

`id`  
使用者定義的英數字元 ID，可唯一識別裝置的集合，稱為「裝置集區」**。屬於同一個集區的裝置必須有相同的硬體。當您執行測試套件，集區中的裝置會用來將工作負載平行化。多個裝置用來執行不同的測試。

`sku`  
可唯一識別測試裝置的英數字元值。SKU 用來追蹤合格的主機板。  
如果您想要在 Device AWS Partner Catalog 中列出您的裝置，您在此處指定的 SKU 必須符合您在列出程序中使用的 SKU。

`features`  
包含裝置支援功能的陣列。所有功能都是必要的。    
`arch`  
測試執行驗證的支援作業系統架構。有效的值如下：  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`docker`  
<a name="description-docker"></a>驗證裝置是否符合所有必要的技術相依性，以使用 AWS提供的 Docker 應用程式管理員 (`aws.greengrass.DockerApplicationManager`) 元件。  
啟用此功能也會驗證<a name="description-docker-app-manager-qual-phrase"></a>裝置是否可以從 Amazon ECR 下載 Docker 容器映像。  
有效值是 `yes`或 的任意組合`no`。  
`hsi`  
<a name="description-hsi"></a>驗證裝置是否可以使用存放在硬體安全模組 (HSM) 中的私有金鑰和憑證來驗證 AWS IoT 和 AWS IoT Greengrass 服務的連線。此測試也會驗證 AWS提供的 [PKCS\$111 供應商元件](pkcs11-provider-component.md)是否可以使用廠商提供的 PKCS\$111 程式庫與 HSM 連接。如需詳細資訊，請參閱[硬體安全整合](hardware-security.md)。  
有效值為 `hsm` 或 `no`。
測試 `hsi` 僅適用於 IDT v4.9.3 和更新版本。

`devices.id`  
使用者定義的唯一識別符，用於識別要測試的裝置。

`devices.operatingSystem`  
裝置作業系統。支援的值為 `Linux` 和 `Windows`。

`connectivity.protocol`  
用來與此裝置通訊的通訊協定。目前，唯一支援的值是`ssh`用於實體裝置。

`connectivity.ip`  
要測試之裝置的 IP 位址。  
<a name="connectivity-protocol-ssh-only"></a>只有當 `connectivity.protocol` 設為 `ssh` 時，才會套用此屬性。

`connectivity.port`  
選用。用於 SSH 連線的連接埠號碼。  
預設值為 22。  
只有當 `connectivity.protocol` 設為 `ssh` 時，才會套用此屬性。

`connectivity.publicKeyPath`  
選用。用來驗證待測裝置連線之公有金鑰的完整路徑。  
當您指定 時`publicKeyPath`，IDT 會在建立與待測裝置的 SSH 連線時驗證裝置的公有金鑰。如果未指定此值，IDT 會建立 SSH 連線，但不會驗證裝置的公有金鑰。  
我們強烈建議您指定公有金鑰的路徑，並使用安全方法來擷取此公有金鑰。對於標準命令列型 SSH 用戶端， `known_hosts`檔案中會提供公有金鑰。如果您指定單獨的公有金鑰檔案，此檔案必須使用與 `known_hosts` 檔案相同的格式，也就是 ` ip-address key-type public-key`。如果有多個項目具有相同的 ip-address，則 IDT 所使用的金鑰類型項目必須早於檔案中的其他項目。

`connectivity.auth`  
連線的驗證資訊。  
<a name="connectivity-protocol-ssh-only"></a>只有當 `connectivity.protocol` 設為 `ssh` 時，才會套用此屬性。    
`connectivity.auth.method`  
用來透過指定的連線通訊協定存取裝置的驗證方法。  
支援的值如下：  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
用於驗證的燈入資料。    
`connectivity.auth.credentials.password`  
用於登入要測試裝置的密碼。  
只有當 `connectivity.auth.method` 設為 `password` 時，才會套用此值。  
`connectivity.auth.credentials.privKeyPath`  
用來登入待測裝置之私有金鑰的完整路徑。  
只有當 `connectivity.auth.method` 設為 `pki` 時，才會套用此值。  
`connectivity.auth.credentials.user`  
登入要測試之裝置的使用者名稱。

------

## 設定 userdata.json
<a name="userdata-config"></a>

IDT for AWS IoT Greengrass V2 也需要有關測試成品和 AWS IoT Greengrass 軟體位置的其他資訊。

您必須使用位於 ` <device_tester_extract_location>/configs/userdata.json` 中的 `userdata.json` 範本提供此資訊：

```
{
    "TempResourcesDirOnDevice": "/path/to/temp/folder",
    "InstallationDirRootOnDevice": "/path/to/installation/folder",
    "GreengrassNucleusZip": "/path/to/aws.greengrass.nucleus.zip",
    "PreInstalled": "yes/no",
    "GreengrassV2TokenExchangeRole": "custom-iam-role-name",
	"hsm": {
        "greengrassPkcsPluginJar": "/path/to/aws.greengrass.crypto.Pkcs11Provider-latest.jar",
        "pkcs11ProviderLibrary": "/path/to/pkcs11-vendor-library",
        "slotId": "slot-id",
        "slotLabel": "slot-label",
        "slotUserPin": "slot-pin",
        "keyLabel": "key-label",
        "preloadedCertificateArn": "certificate-arn"
        "rootCA": "path/to/root-ca"
    }
}
```

所有包含值的屬性都需要，如下所述：

`TempResourcesDirOnDevice`  
待測裝置上要存放測試成品之暫存資料夾的完整路徑。確定寫入此目錄不需要 sudo 許可。  
IDT 會在完成執行測試時刪除此資料夾的內容。

`InstallationDirRootOnDevice`  
要安裝之裝置上資料夾的完整路徑 AWS IoT Greengrass。對於 PreInstalled Greengrass，這是 Greengrass 安裝目錄的路徑。  
您必須為此資料夾設定必要的檔案許可。對安裝路徑中的每個資料夾執行下列命令。  

```
sudo chmod 755 folder-name
```

`GreengrassNucleusZip`  
主機電腦上 Greengrass 核 ZIP (`greengrass-nucleus-latest.zip`) 檔案的完整路徑。使用 PreInstalled Greengrass 進行測試時，不需要此欄位。  
如需 IDT for 的 Greengrass 核支援版本的相關資訊 AWS IoT Greengrass，請參閱 [最新版 IDT for AWS IoT Greengrass V2](dev-test-versions.md#idt-latest-version)。若要下載最新的 Greengrass 軟體，請參閱[下載 AWS IoT Greengrass 軟體](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html#config-gg)。

`PreInstalled`  
此功能僅適用於 Linux 裝置上的 IDT v4.5.8 和更新版本。  
（選用） 當值為*是*時，IDT 會假設 中提到的路徑`InstallationDirRootOnDevice`是安裝 Greengrass 的目錄。  
如需如何在裝置上安裝 Greengrass 的詳細資訊，請參閱 [使用自動資源佈建安裝 AWS IoT Greengrass 核心軟體](quick-installation.md)。如果[使用手動佈建安裝 ](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html)，請在手動建立 AWS IoT 物件時包含「將[AWS IoT 物件](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html#create-iot-thing)新增至新的或現有的物件群組」步驟。IDT 假設物件和物件群組是在安裝設定期間建立的。請確定這些值反映在 `effectiveConfig.yaml` 檔案中。IDT 會在 `effectiveConfig.yaml`下檢查 檔案`<InstallationDirRootOnDevice>/config/effectiveConfig.yaml`。  
對於使用 HSM 執行測試，請確定 `aws.greengrass.crypto.Pkcs11Provider` 欄位已在 中更新`effectiveConfig.yaml`。

  `GreengrassV2TokenExchangeRole`  
（選用） 您想要用作待測裝置假設與 AWS 資源互動之字符交換角色的自訂 IAM 角色。  
IDT 會使用此自訂 IAM 角色，而不是在測試執行期間建立預設權杖交換角色。如果您使用自訂角色，您可以更新[測試使用者的 IAM 許可](dev-tst-prereqs.md#configure-idt-permissions)，以排除允許使用者建立和刪除 IAM 角色和政策的 `iamResourcesUpdate` 陳述式。
如需建立自訂 IAM 角色做為權杖交換角色的詳細資訊，請參閱 [設定自訂權杖交換角色](device-config-setup.md#configure-custom-tes-role-for-idt)。

`hsm`  
此功能適用於 IDT v4.5.1 和更新版本。  
（選用） 使用硬體安全模組 (HSM) 進行測試的 AWS IoT Greengrass 組態資訊。否則，應省略 `hsm` 屬性。如需詳細資訊，請參閱[硬體安全整合](hardware-security.md)。  
<a name="connectivity-protocol-ssh-only"></a>只有當 `connectivity.protocol` 設為 `ssh` 時，才會套用此屬性。  
如果 IDT 和另一個系統共用硬體安全模組，HSM 組態可能會被視為敏感資料。在這種情況下，您可以將這些組態值儲存在 參數存放區 SecureString 參數中 AWS ，並設定 IDT 在測試執行期間擷取，以避免以純文字形式保護這些組態值。如需詳細資訊，請參閱[從 AWS 參數存放區擷取組態](#fetch-config)  
`hsm.greengrassPkcsPluginJar`  
您下載至 IDT 主機機器之 [PKCS\$111 提供者元件](pkcs11-provider-component.md)的完整路徑。 AWS IoT Greengrass 提供此元件做為 JAR 檔案，您可以在安裝期間下載此元件以指定為佈建外掛程式。您可以將元件 JAR 檔案的最新版本下載為下列 URL：https：//[https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)。  
`hsm.pkcs11ProviderLibrary`  
由硬體安全模組 (HSM) 供應商提供與 HSM 互動之 PKCS\$111 程式庫的完整路徑。  
`hsm.slotId`  
用於識別您載入金鑰和憑證之 HSM 插槽的插槽 ID。  
`hsm.slotLabel`  
用於識別您載入金鑰和憑證之 HSM 插槽的插槽標籤。  
`hsm.slotUserPin`  
IDT 用來向 HSM 驗證 AWS IoT Greengrass Core 軟體的使用者 PIN 碼。  
基於安全最佳實務，請勿在生產裝置上使用相同的使用者 PIN 碼。  
`hsm.keyLabel`  
用於識別硬體模組中之金鑰的標籤。金鑰和憑證都必須使用相同的金鑰標籤。  
`hsm.preloadedCertificateArn`  
 AWS IoT 雲端中上傳裝置憑證的 Amazon Resource Name (ARN)。  
您先前必須使用 HSM 中的 金鑰產生此憑證，將其匯入 HSM，並將其上傳至 AWS IoT 雲端。如需有關產生和匯入憑證的資訊，請參閱 HSM 的文件。  
您必須將憑證上傳到您在 [config.json 中提供的相同帳戶和區域](#cfg-aws-gg)。如需將憑證上傳至 的詳細資訊 AWS IoT，請參閱《 *AWS IoT 開發人員指南*》中的[手動註冊用戶端憑證](https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html)。  
`hsm.rootCAPath`  
（選用） IDT 主機機器上簽署憑證的根憑證授權機構 (CA) 的完整路徑。如果您建立的 HSM 中的憑證不是由 Amazon 根 CA 簽署，則此為必要項目。

## 從 AWS 參數存放區擷取組態
<a name="fetch-config"></a>

AWS IoT Device Tester (IDT) 包含從 [AWS Systems Manager 參數存放區](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)擷取組態值的選用功能。 AWS 參數存放區允許安全且加密的組態儲存。設定後，IDT 可以從 AWS 參數存放區擷取參數，取代將參數以純文字形式儲存在 `userdata.json` 檔案內。這對於應加密儲存的任何敏感資料很有用，例如：密碼、接腳和其他秘密。

1. 若要使用此功能，您必須更新建立 [IDT 使用者](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html)所用的許可，以允許對 IDT 設定為使用的參數執行 GetParameter 動作。以下是可新增至 IDT 使用者的許可陳述式範例。如需詳細資訊，請參閱 [AWS Systems Manager 使用者指南](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html)。

   ```
   {
          "Sid":"parameterStoreResources",
          "Effect": "Allow",
           "Action": [
               "ssm:GetParameter"
           ],
           "Resource": "arn:aws:ssm:*:*:parameter/IDT*"
   }
   ```

   上述許可設定為允許`IDT`使用萬用字元 擷取名稱開頭為 的所有參數`*`。您應該根據您的需求自訂此項目，以便 IDT 能夠根據您正在使用的參數命名來擷取任何設定的參數。

1. 您需要將組態值存放在 Paramater Store AWS 中。這可以從 AWS 主控台或 CLI AWS 完成。 AWS 參數存放區可讓您選擇加密或未加密的儲存。對於儲存機密、密碼和 PIN 等敏感值，您應該使用加密選項，這是 SecureString 的參數類型。若要使用 CLI AWS 上傳參數，您可以使用下列命令：

   ```
   aws ssm put-parameter --name IDT-example-name --value IDT-example-value --type SecureString
   ```

   您可以使用下列命令來驗證參數是否已存放。（選用） 使用 `--with-decryption`旗標來擷取解密的 SecureString 參數。

   ```
   aws ssm get-parameter --name IDT-example-name
   ```

   使用 AWS CLI 將上傳目前 CLI 使用者 AWS 區域中的 參數，IDT 將從 中設定的區域擷取參數`config.json`。若要從 AWS CLI 檢查您的區域，請使用下列項目：

   ```
   aws configure get region
   ```

1. 一旦您在 AWS 雲端中有組態值，您就可以更新 IDT 組態內的任何值，以從 AWS 雲端擷取。若要這樣做，請在表單的 IDT 組態中使用預留位置`{{AWS.Parameter.parameter_name}}`，以該名稱從參數存放區擷取 AWS 參數。

   例如，假設您想要使用步驟 2 中的 `IDT-example-name` 參數做為 HSM 組態中的 HSM keyLabel。若要這樣做，您可以更新 `userdata.json` ，如下所示：

   ```
   "hsm": {
           "keyLabel": "{{AWS.Parameter.IDT-example-name}}",
           [...]
       }
   ```

   IDT 將在步驟 2 `IDT-example-value`中設定為 的執行時間擷取此參數的值。此組態類似於設定，`"keyLabel": "IDT-example-value"`但該值會以加密方式儲存在 AWS 雲端中。