

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

# 使用 KMU 取得 AWS CloudHSM 金鑰屬性
<a name="key_mgmt_util-getAttribute"></a>

使用 AWS CloudHSM key\_mgmt\_util 中的 **getAttribute**命令，將 AWS CloudHSM 金鑰的一或多個屬性值寫入檔案。如果您所指定金鑰類型的屬性不存在 (例如 AES 金鑰的模數)，則 **getAttribute** 會傳回錯誤。

*金鑰屬性*是金鑰的屬性。其中包括特性 (例如金鑰類型、類別、標籤和 ID)，以及代表您可對金鑰執行之動作的值 (例如加密、解密、包裝、取消包裝和驗證)。

您只可以對您擁有的金鑰和與您共用的金鑰使用 **getAttribute**。您可以執行此命令或 cloudhsm\_mgmt\_util 中的 [getAttribute](cloudhsm_mgmt_util-getAttribute.md) 命令，如此可從叢集中的所有 HSM 取得金鑰的一個屬性值，並將其寫入 stdout 或檔案。

若要取得屬性的清單和代表它們的常數，請使用 [listAttributes](key_mgmt_util-listAttributes.md) 命令。若要變更現有金鑰的屬性值，請使用 key\_mgmt\_util 中的 [setAttribute](key_mgmt_util-setAttribute.md) 和 cloudhsm\_mgmt\_util 中的 [setAttribute](cloudhsm_mgmt_util-setAttribute.md)。如需金錀屬性的解譯說明，請參閱 [AWS CloudHSM KMU 的金鑰屬性參考](key-attribute-table.md)。

執行任何 key\_mgmt\_util 命令之前，您必須先[啟動 key\_mgmt\_util](key_mgmt_util-setup.md#key_mgmt_util-start) 並以加密使用者 (CU) 的身分[登入](key_mgmt_util-log-in.md) HSM。

## 語法
<a name="getAttribute-syntax"></a>

```
getAttribute -h 

getAttribute -o {{<key handle>}} 
             -a {{<attribute constant>}} 
             -out {{<file>}}
```

## 範例
<a name="getAttribute-examples"></a>

這些範例示範如何使用 **getAttribute** 來取得 HSM 中金鑰的屬性。

**Example ：取得金鑰類型**  
此範例會取得金鑰的類型，例如 AES、3DES 或一般金鑰或 RSA 或橢圓曲線金鑰對。  
第一個命令會執行 [listAttributes](key_mgmt_util-listAttributes.md)，它會取得金鑰屬性和代表它們的常數。輸出顯示金鑰類型的常數是 `256`。如需金錀屬性的解譯說明，請參閱 [AWS CloudHSM KMU 的金鑰屬性參考](key-attribute-table.md)。  

```
Command: listAttributes

Description
===========
The following are all of the possible attribute values for getAttributes.

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_KEY_TYPE               = 256
      OBJ_ATTR_ID                     = 258
      OBJ_ATTR_SENSITIVE              = 259
      OBJ_ATTR_ENCRYPT                = 260
      OBJ_ATTR_DECRYPT                = 261
      OBJ_ATTR_WRAP                   = 262
      OBJ_ATTR_UNWRAP                 = 263
      OBJ_ATTR_SIGN                   = 264
      OBJ_ATTR_VERIFY                 = 266
      OBJ_ATTR_LOCAL                  = 355
      OBJ_ATTR_MODULUS                = 288
      OBJ_ATTR_MODULUS_BITS           = 289
      OBJ_ATTR_PUBLIC_EXPONENT        = 290
      OBJ_ATTR_VALUE_LEN              = 353
      OBJ_ATTR_EXTRACTABLE            = 354
      OBJ_ATTR_KCV                    = 371
```
第二個命令會執行 **getAttribute**。它會要求金鑰控制代碼 `524296` 的金鑰類型 (屬性 `256`)，並將它寫入 `attribute.txt` 檔案。  

```
Command: getAttribute -o 524296 -a 256 -out attribute.txt
Attributes dumped into attribute.txt file
```
最終命令會取得金鑰檔案的內容。輸出顯示金鑰類型為 `0x15` 或 `21`，它是三重 DES (3DES) 金鑰。對於類別和類型值的定義，請參閱[金鑰屬性參考](key-attribute-table.md)。  

```
$  cat attribute.txt
OBJ_ATTR_KEY_TYPE
0x00000015
```

**Example ：取得金鑰的所有屬性**  
此命令會取得金鑰控制代碼 `6` 之金鑰的所有屬性，並將它們寫入 `attr_6` 檔案。它使用 `512` 的屬性值，其代表所有屬性。  

```
Command: getAttribute -o 6 -a 512 -out attr_6
        
got all attributes of size 444 attr cnt 17
Attributes dumped into attribute.txt file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS>
```
此命令示範範例屬性檔案的內容與所有屬性值。在值當中，其報告該金鑰是 256 位元 AES 金鑰並具有 ID `test_01` 和標籤 `aes256`。該金鑰可擷取且具持久性，亦即，不是僅限工作階段的金鑰。如需金錀屬性的解譯說明，請參閱 [AWS CloudHSM KMU 的金鑰屬性參考](key-attribute-table.md)。  

```
$  cat attribute.txt

OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x01
OBJ_ATTR_UNWRAP
0x01
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
aes256
OBJ_ATTR_ID
test_01
OBJ_ATTR_VALUE_LEN
0x00000020
OBJ_ATTR_KCV
0x1a4b31
```

## Parameters
<a name="getAttribute-parameters"></a>

**-h**  
顯示命令的說明。  
必要：是

**-o**  
指定目標金鑰的金鑰控制代碼。每一個命令中只能指定一個金鑰。若要取得金鑰的金鑰控制代碼，請使用 [findKey](key_mgmt_util-findKey.md)。  
同時，您必須擁有該指定的金鑰或與您共用該金鑰。如要尋找金鑰的使用者，請使用 [getKeyInfo](key_mgmt_util-getKeyInfo.md)。  
必要：是

**-a**  
識別屬性。輸入代表屬性的常數，或輸入 `512` 來代表所有屬性。例如，若要取得金鑰類型，請輸入 `256`，這是代表 `OBJ_ATTR_KEY_TYPE` 屬性的常數。  
若要列出屬性及其常數，請使用 [listAttributes](key_mgmt_util-listAttributes.md)。如需金錀屬性的解譯說明，請參閱 [AWS CloudHSM KMU 的金鑰屬性參考](key-attribute-table.md)。  
必要：是

**-out**  
將輸出寫入指定的檔案。輸入檔案路徑。您不能將輸出寫入 `stdout`。  
如果指定的檔案已存在，**getAttribute** 會覆寫檔案且不會警告。  
必要：是

## 相關主題
<a name="getAttribute-seealso"></a>
+ cloudhsm\_mgmt\_util 中的 [getAttribute](cloudhsm_mgmt_util-getAttribute.md)
+ [listAttributes](key_mgmt_util-listAttributes.md)
+ [setAttribute](key_mgmt_util-setAttribute.md)
+ [findKey](key_mgmt_util-findKey.md)
+ [金錀屬性參考](key-attribute-table.md)