

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS CloudHSM 管理实用程序 (CMU)
<a name="cloudhsm_mgmt_util"></a>

**cloudhsm\$1mgmt\$1util** 命令行工具可帮助加密官员管理集群中硬件安全模块 () 中的用户。HSMs AWS CloudHSM AWS CloudHSM 管理实用程序 (CMU) 包括创建、删除和列出用户以及更改用户密码的工具。

CMU 和密钥管理实用程序（KMU）是 [Client SDK 3 套件](choose-client-sdk.md)的一部分。客户端 SDK 3 及其相关命令行工具（密钥管理实用程序和 CloudHSM 管理实用程序）仅在 HSM 类型 *hsm1.medium* 中可用。

cloudhsm\$1mgmt\$1util 还包括允许加密用户 (CUs) 共享密钥以及获取和设置密钥属性的命令。这些命令将对主要密钥管理工具 [key\$1mgmt\$1util](key_mgmt_util.md) 中的密钥管理命令起到补充作用。

要快速开始使用，请参阅 [AWS CloudHSM 管理实用程序 (CMU) 入门](cloudhsm_mgmt_util-getting-started.md)。有关 cloudhsm\$1mgmt\$1util 命令的详细信息以及使用这些命令的示例，请参阅 [AWS CloudHSM 管理实用程序命令参考](cloudhsm_mgmt_util-reference.md)。

**Topics**
+ [支持的平台](cmu-support.md)
+ [开始使用](cloudhsm_mgmt_util-getting-started.md)
+ [安装客户端 (Linux)](cmu-install-and-configure-client-linux.md)
+ [安装客户端 (Windows)](cmu-install-and-configure-client-win.md)
+ [参考](cloudhsm_mgmt_util-reference.md)

# AWS CloudHSM 管理实用程序支持的平台
<a name="cmu-support"></a>

本主题介绍 AWS CloudHSM 管理实用程序 (CMU) 支持的 Linux 和 Windows 平台。

## Linux 支持
<a name="cmu-support-linux"></a>
+ Amazon Linux
+ Amazon Linux 2
+ CentOS 6.10\$1 
+ CentOS 7.3\$1
+ CentOS 8 
+ Red Hat Enterprise Linux (RHEL) 6.10\$1 
+ Red Hat Enterprise Linux (RHEL) 7.9\$1
+ Red Hat Enterprise Linux (RHEL) 8 
+ Ubuntu 16.04 LTS 
+ Ubuntu 18.04 LTS 

## Windows 支持
<a name="cmu-support-windows"></a>
+ Microsoft Windows Server 2012
+ Microsoft Windows Server 2012 R2
+ Microsoft Windows Server 2016
+ Microsoft Windows Server 2019

# AWS CloudHSM 管理实用程序 (CMU) 入门
<a name="cloudhsm_mgmt_util-getting-started"></a>

AWS CloudHSM 管理实用程序 (CMU) 使您能够管理硬件安全模块 (HSM) 用户。使用本主题开始执行基础 HSM 用户管理任务，例如创建用户、列出用户以及将 CMU 连接至集群。

1. 要使用 CMU，您必须首先使用配置工具使用集群 HSMs 中的`--cmu`参数和 IP 地址更新本地 CMU 配置。当您使用 CMU 完成此操作，确保您在管理集群所有 HSM 的 HSM 用户。

------
#### [ Linux ]

   ```
   $ sudo /opt/cloudhsm/bin/configure --cmu <IP address>
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" --cmu <IP address>
   ```

------

1. 使用以下命令以交互模式启动 CLI。

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\cloudhsm_mgmt_util.exe" C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg
   ```

------

   输出应类似于以下内容，具体取决于 HSMs 你有多少输出。

   ```
   Connecting to the server(s), it may take time
   depending on the server(s) load, please wait...
   
   Connecting to server '10.0.2.9': hostname '10.0.2.9', port 2225...
   Connected to server '10.0.2.9': hostname '10.0.2.9', port 2225.
   
   Connecting to server '10.0.3.11': hostname '10.0.3.11', port 2225...
   Connected to server '10.0.3.11': hostname '10.0.3.11', port 2225.
   
   Connecting to server '10.0.1.12': hostname '10.0.1.12', port 2225...
   Connected to server '10.0.1.12': hostname '10.0.1.12', port 2225.
   ```

   当 cloudhsm\$1mgmt\$1util 运行时，提示符将变为 `aws-cloudhsm>`。

1. 使用 **loginHSM** 命令登录到集群。任何类型的任何用户均可使用此命令登录集群。

   以下示例日志中的命令将登录 *admin*，即默认[加密员 (CO)](understanding-users-cmu.md)。您在激活集群时设置该用户的密码。您可以使用 `-hpswd` 参数隐藏您的密码。

   ```
   aws-cloudhsm>loginHSM CO admin -hpswd
   ```

   系统将会提示您输入密码。您输入密码，系统隐藏密码，输出显示命令成功且您已连接到集群 HSMs 上的所有命令。

   ```
   Enter password:
   
   
   loginHSM success on server 0(10.0.2.9)
   loginHSM success on server 1(10.0.3.11)
   loginHSM success on server 2(10.0.1.12)
   ```

1.  使用 **listUsers** 列出集群上的所有用户。

   ```
   aws-cloudhsm>listUsers
   ```

   CMU 会列出集群上的所有用户。

   ```
   Users on server 0(10.0.2.9):
   Number of users found:2
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              CO              admin                                    NO               0               NO
            2              AU              app_user                                 NO               0               NO
   Users on server 1(10.0.3.11):
   Number of users found:2
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              CO              admin                                    NO               0               NO
            2              AU              app_user                                 NO               0               NO
   Users on server 2(10.0.1.12):
   Number of users found:2
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              CO              admin                                    NO               0               NO
            2              AU              app_user                                 NO               0               NO
   ```

1.  使用 **createUser** 创建名为 **example\$1user** 的 CU 用户，密码为 **password1**。

   您通过应用程序中的 CU 用户执行加密和密钥管理操作。由于您在第 3 步中以 CO 用户身份登录，因此您可以创建 CU 用户。只有 CO 用户可通过 CMU 执行用户管理任务，例如创建和删除用户以及更改其他用户密码。

   ```
   aws-cloudhsm>createUser CU example_user password1
   ```

   CMU 会提示您关于创建用户操作的信息。

   ```
   *************************CAUTION********************************
   This is a CRITICAL operation, should be done on all nodes in the
   cluster. AWS does NOT synchronize these changes automatically with the
   nodes on which this operation is not executed or failed, please
   ensure this operation is executed on all nodes in the cluster.
   ****************************************************************
   
   Do you want to continue(y/n)?
   ```

1. 若要创建 CU 用户**example\$1user**，请键入 **y**。

1.  使用 **listUsers** 列出集群上的所有用户。

   ```
   aws-cloudhsm>listUsers
   ```

   CMU 列出了集群中的所有用户，包括您刚创建的新 CU 用户。

   ```
   Users on server 0(10.0.2.9):
   Number of users found:3
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              CO              admin                                    NO               0               NO
            2              AU              app_user                                 NO               0               NO
            3              CU              example_user                             NO               0               NO
   Users on server 1(10.0.3.11):
   Number of users found:3
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              CO              admin                                    NO               0               NO
            2              AU              app_user                                 NO               0               NO
            3              CU              example_user                             NO               0               NO
   Users on server 2(10.0.1.12):
   Number of users found:3
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              CO              admin                                    NO               0               NO
            2              AU              app_user                                 NO               0               NO
            3              CU              example_user                             NO               0               NO
   ```

1. 使用**logoutHSM**命令注销 HSMs。

   ```
   aws-cloudhsm>logoutHSM
   
   
   logoutHSM success on server 0(10.0.2.9)
   logoutHSM success on server 1(10.0.3.11)
   logoutHSM success on server 2(10.0.1.12)
   ```

1. 使用 **quit** 命令停止 cloudhsm\$1mgmt\$1util。

   ```
   aws-cloudhsm>quit
   
   
   disconnecting from servers, please wait...
   ```

# 安装和配置适用于 CMU (Linux) 的 AWS CloudHSM 客户端
<a name="cmu-install-and-configure-client-linux"></a>

要使用 cloudhsm\$1mgmt\$1util (CMU) 与 AWS CloudHSM 集群中的硬件安全模块 (HSM) 进行交互，你需要适用于 Linux 的客户端软件。 AWS CloudHSM 您应在之前创建的 Linux Amazon EC2 客户端实例上安装它。如果您使用的是 Windows，也可以安装客户端。有关更多信息，请参阅 [为 CMU 安装和配置 AWS CloudHSM 客户端 (Windows)](cmu-install-and-configure-client-win.md)。

**Topics**
+ [步骤 1：安装 AWS CloudHSM 客户端和命令行工具](#cmu-install-client)
+ [步骤 2：编辑客户端配置](#cmu-edit-client-configuration)

## 步骤 1：安装 AWS CloudHSM 客户端和命令行工具
<a name="cmu-install-client"></a>

连接到您的客户端实例并运行以下命令来下载和安装 AWS CloudHSM 客户端和命令行工具。

------
#### [ Amazon Linux ]

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-latest.el6.x86_64.rpm
```

```
sudo yum install ./cloudhsm-client-latest.el6.x86_64.rpm
```

------
#### [ Amazon Linux 2 ]

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-latest.el7.x86_64.rpm
```

```
sudo yum install ./cloudhsm-client-latest.el7.x86_64.rpm
```

------
#### [ CentOS 7 ]

```
sudo yum install wget
```

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-latest.el7.x86_64.rpm
```

```
sudo yum install ./cloudhsm-client-latest.el7.x86_64.rpm
```

------
#### [ CentOS 8 ]

```
sudo yum install wget
```

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-latest.el8.x86_64.rpm
```

```
sudo yum install ./cloudhsm-client-latest.el8.x86_64.rpm
```

------
#### [ RHEL 7 ]

```
sudo yum install wget
```

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-latest.el7.x86_64.rpm
```

```
sudo yum install ./cloudhsm-client-latest.el7.x86_64.rpm
```

------
#### [ RHEL 8 ]

```
sudo yum install wget
```

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-latest.el8.x86_64.rpm
```

```
sudo yum install ./cloudhsm-client-latest.el8.x86_64.rpm
```

------
#### [ Ubuntu 16.04 LTS ]

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client_latest_amd64.deb
```

```
sudo apt install ./cloudhsm-client_latest_amd64.deb
```

------
#### [ Ubuntu 18.04 LTS ]

```
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client_latest_u18.04_amd64.deb
```

```
sudo apt install ./cloudhsm-client_latest_u18.04_amd64.deb
```

------

## 步骤 2：编辑客户端配置
<a name="cmu-edit-client-configuration"></a>

必须先编辑 AWS CloudHSM 客户端配置，然后才能使用客户端连接到集群。

**编辑客户端配置**

1. 如果在 cloudhsm\$1mgmt\$1util 上安装客户端软件开发工具包 3，请完成以下步骤以确保集群中的所有节点都已同步。

   1. 运行 **configure -a *<IP of one of the HSMs>***。

   1. 重新启动客户端服务。

   1. 运行 **configure -m**。

1. 将您的颁发证书 — [ 用于签署集群证书的证书](initialize-cluster.md#sign-csr) — 复制到客户端实例上的以下位置：`/opt/cloudhsm/etc/customerCA.crt`。您需要在客户端实例上具有实例根用户权限才能将您的证书复制到该位置。

1. [使用以下 configure 命令更新 AWS CloudHSM 客户端和命令行工具的配置文件，指定集群中 HSM 的 IP 地址。](configure-tool.md)要获取 HSM 的 IP 地址，请在[AWS CloudHSM 控制台](https://console.aws.amazon.com/cloudhsm/)中查看您的集群，或者运行**[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** AWS CLI 命令。在命令输出中，HSM 的 IP 地址为 `EniIp` 字段的值。如果您有多个 HSM，请为其中任何一个 HSM 选择 IP 地址 HSMs；无论哪一个 HSM 都没关系。

   ```
   sudo /opt/cloudhsm/bin/configure -a <IP address>
   	
   Updating server config in /opt/cloudhsm/etc/cloudhsm_client.cfg
   Updating server config in /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. 转到 [在中激活集群 AWS CloudHSM](activate-cluster.md)。

# 为 CMU 安装和配置 AWS CloudHSM 客户端 (Windows)
<a name="cmu-install-and-configure-client-win"></a>

要使用 cloudhsm\$1mgmt\$1util (CMU) 在 Windows AWS CloudHSM 集群中使用硬件安全模块 (HSM)，你需要适用于 Windows 的客户端软件。 AWS CloudHSM 您应在之前创建的 Windows Server 实例上安装它。

**注意**  
如果更新客户端，以前安装的现有配置文件*不会*被覆盖。
Windows AWS CloudHSM 客户端安装程序会自动注册加密 API：下一代 (CNG) 和密钥存储提供程序 (KSP)。要卸载客户端，请再次运行安装程序并按照卸载说明操作。
如果您使用的是 Linux，也可以安装 Linux 客户端。有关更多信息，请参阅 [安装和配置适用于 CMU (Linux) 的 AWS CloudHSM 客户端](cmu-install-and-configure-client-linux.md)。

**安装（或更新）最新的 Windows 客户端和命令行工具**

1. 连接到您的 Windows Server 实例。

1. 下载 [AWSCloudHSMClient-latest.msi 安装程序。](https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMClient-latest.msi)

1. 如果在 cloudhsm\$1mgmt\$1util 上安装客户端软件开发工具包 3，请完成以下步骤以确保集群中的所有节点都已同步。

   1. 运行 **configure.exe -a *<IP of one of the HSMs>***。

   1. 重新启动客户端服务。

   1. 运行 **configure.exe -m**。

1. 前往您的下载位置并使用管理权限运行安装程序 (**AWSCloudHSMClient-latest.msi**)。

1. 按照安装程序说明进行操作，然后在安装程序完成后选择**关闭**。

1. 将您的自签名颁发证书 — [用于签署集群证书的证书](initialize-cluster.md#sign-csr) — 复制到 `C:\ProgramData\Amazon\CloudHSM` 文件夹。

1. 运行以下命令以更新您的配置文件。如果要更新，在重新配置期间务必停止并启动客户端：

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" -a <HSM IP address>
   ```

1. 转到 [在中激活集群 AWS CloudHSM](activate-cluster.md)。

# AWS CloudHSM 管理实用程序命令参考
<a name="cloudhsm_mgmt_util-reference"></a>

 AWS CloudHSM cloudhsm\$1mgmt\$1util 命令行工具可帮助加密官员管理集群中硬件安全模块 () 中的用户。HSMs AWS CloudHSM 它还包括允许加密用户 (CUs) 共享密钥以及获取和设置密钥属性的命令。这些命令将对 [key\$1mgmt\$1util](key_mgmt_util.md) 命令行工具中的主要密钥管理命令起到补充作用。

要快速开始使用，请参阅 [AWS CloudHSM 管理实用程序 (CMU) 入门](cloudhsm_mgmt_util-getting-started.md)。

在运行任何 cloudhsm\$1mgmt\$1util 命令之前，必须启动 cloudhsm\$1mgmt\$1util 并登录。请确保使用可运行您计划使用的命令的用户账户类型登录。

若要列出现有 cloudhsm\$1mgmt\$1util 命令，请运行以下命令：

```
aws-cloudhsm> help
```

要获取 cloudhsm\$1mgmt\$1util 命令的语法，请运行以下命令：

```
aws-cloudhsm> help <command-name>
```

**注意**  
根据文档使用语法。虽然内置的软件帮助可能提供额外选项，但不应将这些选项视为支持的选项，也不应在生产代码中使用这些选项。

要运行命令，请输入完整或部分命令名称（应足以与其他 cloudhsm\$1mgmt\$1util 命令的名称互相区分）。

例如，要获取上的用户列表 HSMs，请输入**listUsers**或**listU**。

```
aws-cloudhsm> listUsers
```

要结束 cloudhsm\$1mgmt\$1util 会话，请运行以下命令：

```
aws-cloudhsm> quit
```

有关解释密钥属性的帮助，请参阅 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md)。

以下主题介绍 cloudhsm\$1mgmt\$1util 中的命令。

**注意**  
key\$1mgmt\$1util 和 cloudhsm\$1mgmt\$1util 中的部分命令名称相同。但是，这些命令通常具有不同的语法、不同的输出和轻微不同的功能。


| 命令 | 说明 | 用户类型 | 
| --- | --- | --- | 
| [changePswd](cloudhsm_mgmt_util-changePswd.md) | 在上更改用户的密码 HSMs。任何用户都可以更改自己的密码。 COs 可以更改任何人的密码。 | CO | 
| [createUser](cloudhsm_mgmt_util-createUser.md) | 在上创建所有类型的用户 HSMs。 | CO | 
| [deleteUser](cloudhsm_mgmt_util-deleteUser.md) | 从中删除所有类型的用户 HSMs。 | CO | 
| [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md) | 获取用户拥有或共享的密钥。此外获取每个 HSM 上所有密钥的密钥所有权和共享数据的哈希。 | CO、AU | 
| [getAttribute](cloudhsm_mgmt_util-getAttribute.md) | 获取 AWS CloudHSM 密钥的属性值并将其写入文件或 stdout（标准输出）。 | CU | 
| [getHSMInfo](cloudhsm_mgmt_util-getHSMInfo.md) | 获取运行 HSM 的硬件的相关信息。 | 所有。不需要登录名。 | 
| [getKeyInfo](cloudhsm_mgmt_util-getKeyInfo.md) | 获取密钥的所有者、共享用户和仲裁身份验证状态。 | 所有。不需要登录名。 | 
| [info](cloudhsm_mgmt_util-info.md) | 获取有关 HSM 的信息，包括 IP 地址、主机名、端口和当前用户。 | 所有。不需要登录名。 | 
| [listUsers](cloudhsm_mgmt_util-listUsers.md) | 获取每个中的用户 HSMs、其用户类型和 ID 以及其他属性。 | 所有。不需要登录名。 | 
| [loginHSM 和 logoutHSM](cloudhsm_mgmt_util-loginLogout.md) | 登录和退出 HSM。 | 所有。 | 
| [退出](cloudhsm_mgmt_util-quit.md) | 退出 cloudhsm\$1mgmt\$1util. | 所有。不需要登录名。 | 
| [服务器](cloudhsm_mgmt_util-server.md) | 进入和退出 HSM 上的服务器模式。 | 所有。 | 
| [registerQuorumPub键](cloudhsm_mgmt_util-registerQuorumPubKey.md) | 将 HSM 用户与非对称 RSA-2048 密钥对关联。 | CO | 
| [setAttribute](cloudhsm_mgmt_util-setAttribute.md) | 更改现有密钥的标签、加密、解密、包装和解开包装属性的值。 | CU | 
| [shareKey](cloudhsm_mgmt_util-shareKey.md) | 与其他用户共享现有密钥。 | CU | 
| [syncKey](cloudhsm_mgmt_util-syncKey.md) | 跨克隆 AWS CloudHSM 群集同步密钥。 | CU、CO | 
| [syncUser](cloudhsm_mgmt_util-syncUser.md) | 跨克隆 AWS CloudHSM 群集同步用户。 | CO | 

# 使用 CMU 更改用户的密码
<a name="cloudhsm_mgmt_util-changePswd"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**changePswd**命令更改集群中硬件安全模块 (HSM) 上现有用户的密码。 AWS CloudHSM 

所有用户都可更改自己的密码。此外，加密官员（COs 和 PCOs）可以更改其他 CO 或加密用户 (CU) 的密码。您无需输入当前密码即可进行此更改。

**注意**  
您无法更改当前登录到 AWS CloudHSM 客户端的用户的密码或 key\$1mgmt\$1util。

## 要对 ChangepsWD 进行问题排查
<a name="troubleshoot-changepassword"></a>

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="changePswd-userType"></a>

以下用户均可运行此命令。
+ 加密员（CO）
+ 加密用户 (CU)

## 语法
<a name="changePswd-syntax"></a>

按照语法图表中指定的顺序输入参数。使用 `-hpswd` 参数来掩盖您的密码。要为 CO 用户启用双重身份验证 (2FA, two-factor authentication)，请使用 `-2fa` 参数并添加文件路径。有关更多信息，请参阅 [参数](#changePswd-params)。

```
changePswd <user-type> <user-name> <password |-hpswd> [-2fa </path/to/authdata>]
```

## 示例
<a name="changePswd-examples"></a>

以下示例说明**changePassword**如何使用重置当前用户或您中的任何其他用户的密码 HSMs。

**Example ：更改您的密码**  
上的任何用户都 HSMs 可以使用**changePswd**来更改自己的密码。在更改密码之前，请使用[信息](cloudhsm_mgmt_util-info.md)获取有关集群 HSMs 中每个人的信息，包括登录用户的用户名和用户类型。  
以下输出显示 Bob 目前已以加密用户 (CU) 身份登录。  

```
        aws-cloudhsm> info server 0
        
Id      Name                    Hostname         Port   State           Partition        LoginState
0       10.1.9.193              10.1.9.193      2225    Connected       hsm-jqici4covtv  Logged in as 'bob(CU)'
        
aws-cloudhsm> info server 1
        
Id      Name                    Hostname         Port   State           Partition        LoginState
1       10.1.10.7               10.1.10.7       2225    Connected       hsm-ogi3sywxbqx  Logged in as 'bob(CU)'
```
为了更改密码，Bob 运行后跟用户类型、用户名和新密码的 **changePswd**。  

```
aws-cloudhsm> changePswd CU bob newPassword

*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)?y
Changing password for bob(CU) on 2 nodes
```

**Example ：更改其他用户的密码**  
您必须是 CO 或 PCO 才能更改其他 CO 或 CU 的 HSMs密码。在更改其他用户的密码之前，请使用 [info](cloudhsm_mgmt_util-info.md) 命令以确认您的用户类型为 CO 或 PCO。  
以下输出确认作为 CO 的 Alice 当前已登录。  

```
aws-cloudhsm>info server 0
        
Id      Name             Hostname         Port   State           Partition        LoginState
0       10.1.9.193       10.1.9.193        2225   Connected      hsm-jqici4covtv  Logged in as 'alice(CO)'
        

aws-cloudhsm>info server 1
        
Id      Name             Hostname         Port   State           Partition        LoginState
0       10.1.10.7        10.1.10.7        2225   Connected       hsm-ogi3sywxbqx  Logged in as 'alice(CO)'
```
 Alice 想重置另一个用户 John 的密码。她在更改密码之前，使用 [listUsers](cloudhsm_mgmt_util-listUsers.md) 命令验证 John 的用户类型。  
 以下输出将 John 列出为 CO 用户。  

```
aws-cloudhsm> listUsers
Users on server 0(10.1.9.193):
Number of users found:5

    User Id             User Type       User Name            MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                     YES               0               NO
         2              AU              jane                       NO               0               NO
         3              CU              bob                        NO               0               NO
         4              CU              alice                      NO               0               NO
         5              CO              john                       NO               0               NO
Users on server 1(10.1.10.7):
Number of users found:5

    User Id             User Type       User Name            MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                     YES               0               NO
         2              AU              jane                       NO               0               NO
         3              CU              bob                        NO               0               NO
         4              CO              alice                      NO               0               NO
         5              CO              john                       NO               0               NO
```
为了更改密码，Alice 运行后跟用户类型、用户名和新密码的 **changePswd**。  

```
aws-cloudhsm>changePswd CO john newPassword

*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)?y
Changing password for john(CO) on 2 nodes
```

## 参数
<a name="changePswd-params"></a>

按照语法图表中指定的顺序输入参数。使用 `-hpswd` 参数来掩盖您的密码。要为 CO 用户启用 2FA，请使用 `-2fa` 参数并添加文件路径。有关使用 2FA 的更多信息，请参阅 [管理用户 2FA](manage-2fa.md)。

```
changePswd <user-type> <user-name> <password |-hpswd> [-2fa </path/to/authdata>]
```

**<user-type>**  
指定您要更改其密码的用户的当前类型。您不能使用 **changePswd** 来更改用户类型。  
有效值为 `CO`、`CU`、`PCO` 和 `PRECO`。  
要获取用户类型，请使用 [listUsers](cloudhsm_mgmt_util-listUsers.md)。有关 HSM 上的用户类型的详细信息，请参阅 [AWS CloudHSM 管理实用程序的 HSM 用户类型](understanding-users-cmu.md)。  
是否必需：是

**<user-name>**  
指定用户的友好名称。此参数不区分大小写。您不能使用 **changePswd** 来更改用户名。  
是否必需：是

**<password \$1 ‐hpswd >**  
为用户指定新密码。输入一个包含 7 到 32 个字符的字符串。此值区分大小写。密码在键入时将明文显示。要隐藏密码，请使用 `-hpswd` 参数代替密码，然后按照提示操作。  
是否必需：是

**[-2fa <path/to/authdata/>]**  
指定为该 CO 用户启用 2FA。要获取设置 2FA 所需的数据，请在 `-2fa` 参数后加上文件系统中带有文件名的位置的路径。有关使用 2FA 的更多信息，请参阅 [管理用户 2FA](manage-2fa.md)。  
必需：否

## 相关主题
<a name="changePswd-seealso"></a>
+ [info](cloudhsm_mgmt_util-info.md)
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [createUser](cloudhsm_mgmt_util-createUser.md)
+ [deleteUser](cloudhsm_mgmt_util-deleteUser.md)

# 使用 CMU 创建 AWS CloudHSM 用户
<a name="cloudhsm_mgmt_util-createUser"></a>

使用 cloudhsm\$1mgmt\$1util (CMU) 中的**createUser**命令在集群中的硬件安全模块 (HSM) 上创建用户。 AWS CloudHSM 只有加密官员（COs 和 PRECOs）才能运行此命令。命令成功后，它会在集群中的所有用户 HSMs 中创建用户。

## 对 createUser 进行问题排查
<a name="troubleshoot-createuser"></a>

 如果您的 HSM 配置不准确，则可能无法全部 HSMs创建用户。[要将用户添加到任何缺少该用户的用户 HSMs 中，请仅 HSMs 对缺少该用户的用户使用 Syncuser [或](#cloudhsm_mgmt_util-createUser) createUser 命令。](cloudhsm_mgmt_util-syncUser.md)要防止配置错误，请运行[配置](configure-tool.md)工具与 `-m` 选项。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="createUser-userType"></a>

以下类型的用户均可运行此命令。
+ 加密员（CO 和 PRECO）

## 语法
<a name="createUser-syntax"></a>

按照语法图表中指定的顺序输入参数。使用 `-hpswd` 参数来掩盖您的密码。要创建采用双重身份验证 (2FA, two-factor authentication) 的 CO 用户，请使用 `-2fa` 参数并添加文件路径。有关更多信息，请参阅 [参数](#createUser-params)。

```
createUser <user-type> <user-name> <password> |-hpswd> [-2fa </path/to/authdata>]
```

## 示例
<a name="createUser-examples"></a>

这些示例说明了**createUser**如何使用在中创建新用户 HSMs。

**Example ：创建加密员**  
此示例在集群 HSMs 中创建加密官员 (CO)。第一个命令使用 [loginHSM](cloudhsm_mgmt_util-loginLogout.md) 以加密管理者身份登录 HSM。  

```
aws-cloudhsm> loginHSM CO admin 735782961

loginHSM success on server 0(10.0.0.1)
loginHSM success on server 1(10.0.0.2)
loginHSM success on server 1(10.0.0.3)
```
第二个命令使用 **createUser** 命令在 HSM 上创建新的加密管理者 `alice`。  
警告消息解释说，该命令会在集群 HSMs 中的所有上创建用户。但是，如果命令在任何一个上失败 HSMs，则这些用户将不存在 HSMs。要继续，请键入 `y`。  
输出显示已在集群 HSMs 中的所有三个用户上创建了新用户。  

```
aws-cloudhsm> createUser CO alice 391019314

*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)?Invalid option, please type 'y' or 'n'

Do you want to continue(y/n)?y
Creating User alice(CO) on 3 nodes
```
命令完成后，在 HSM 上`alice`拥有与 `admin` CO 用户相同的权限，包括更改上任何用户的密码。 HSMs  
最后一个命令使用 [listUsers 命令](cloudhsm_mgmt_util-listUsers.md)来验证集群上所有三个 HSMs 命令都`alice`存在该命令。输出还显示，已为 `alice` 分配用户 ID `3`。`.`您可以使用用户 ID `alice` 在其他命令中进行识别，例如[findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)。  

```
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:3

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PRECO           admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              alice                                    NO               0               NO
Users on server 1(10.0.0.2):
Number of users found:3

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PRECO           admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              alice                                    NO               0               NO

Users on server 1(10.0.0.3):
Number of users found:3

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PRECO           admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              alice                                    NO               0               NO
```

**Example ：创建加密用户**  
此示例将在 HSM 上创建一个加密用户 (CU) `bob`。加密用户可以创建和管理密钥，但无法管理用户。  
在您键入`y`以响应警告消息后，输出将显示该消息`bob`是在集群 HSMs 中的所有三个消息上创建的。新 CU 可以登录 HSM 来创建和管理密钥。  
此命令使用了密码值 `defaultPassword`。之后，`bob` 或任何 CO 可以使用 [changePswd](cloudhsm_mgmt_util-changePswd.md) 命令来更改其密码。  

```
aws-cloudhsm> createUser CU bob defaultPassword

*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)?Invalid option, please type 'y' or 'n'

Do you want to continue(y/n)?y
Creating User bob(CU) on 3 nodes
```

## 参数
<a name="createUser-params"></a>

按照语法图表中指定的顺序输入参数。使用 `-hpswd` 参数来掩盖您的密码。要创建启用 2FA 的 CO 用户，请使用 `-2fa` 参数并添加文件路径。有关 2FA 的更多信息，请参阅 [管理用户 2FA](manage-2fa.md)。

```
createUser <user-type> <user-name> <password> |-hpswd> [-2fa </path/to/authdata>]
```

**<user-type>**  
指定用户类型。此参数为必需参数。  
有关 HSM 上的用户类型的详细信息，请参阅 [AWS CloudHSM 管理实用程序的 HSM 用户类型](understanding-users-cmu.md)。  
有效值：  
+ **CO**：加密员可以管理用户，但无法管理密钥。
+ **CU**：加密用户可以创建管理密钥并在加密操作中使用密钥。
当您在 [HSM 激活](activate-cluster.md)期间分配密码时，PRECO 将转换为 CO。  
是否必需：是

**<user-name>**  
为用户指定友好名称。最大长度为 31 个字符。唯一允许的特殊字符是下划线 ( \$1 )。  
用户名在创建之后无法更改。在 cloudhsm\$1mgmt\$1util 命令中，用户类型和密码都区分大小写，但用户名不区分大小写。  
是否必需：是

**<password \$1 ‐hpswd >**  
为用户指定密码。输入一个包含 7 到 32 个字符的字符串。此值区分大小写。密码在键入时将明文显示。要隐藏密码，请使用 `-hpswd` 参数代替密码，然后按照提示操作。  
要更改用户密码，请使用 [changePswd](cloudhsm_mgmt_util-changePswd.md)。任何 HSM 用户都可以更改自己的密码，但是 CO 用户可以在上更改任何用户（任何类型）的密码。 HSMs  
是否必需：是

**[-2fa <path/to/authdata/>]**  
指定创建启用了 2FA 的 CO 用户。要获取设置 2FA 身份验证所需的数据，请在 `-2fa` 参数后加上文件系统中带有文件名的位置的路径。有关设置和使用 2FA 的更多信息，请参阅 [管理用户 2FA](manage-2fa.md)。  
必需：否

## 相关主题
<a name="createUser-seealso"></a>
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [deleteUser](cloudhsm_mgmt_util-deleteUser.md)
+ [syncUser](cloudhsm_mgmt_util-syncUser.md)
+ [changePswd](cloudhsm_mgmt_util-changePswd.md)

# 使用 CMU 删除 AWS CloudHSM 用户
<a name="cloudhsm_mgmt_util-deleteUser"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**deleteUser**命令将用户从集群中的硬件安全模块 (HSM) 中删除。 AWS CloudHSM 只有加密员（CO）才能运行此命令。您无法删除当前登录到 HSM 的用户。有关删除用户的更多信息，请参阅[如何删除 HSM 用户](delete-user.md)。

**提示**  
您无法删除拥有密钥的加密用户 (CU)。

## 用户类型
<a name="deleteUser-userType"></a>

以下类型的用户均可运行此命令。
+ CO

## 语法
<a name="deleteUser-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
deleteUser <user-type> <user-name>
```

## 示例
<a name="deleteUser-examples"></a>

此示例从集群 HSMs 中删除加密官员 (CO)。第一个命令使用 [ListUser](cloudhsm_mgmt_util-listUsers.md) s 列出上的所有用户。 HSMs

输出显示该用户`3`是上的 CO HSMs。`alice`

```
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:3

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              alice                                    NO               0               NO
Users on server 1(10.0.0.2):
Number of users found:3

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              alice                                    NO               0               NO

Users on server 1(10.0.0.3):
Number of users found:3

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              alice                                    NO               0               NO
```

第二个命令使用该**deleteUser**命令`alice`从中删除 HSMs。

输出显示该命令对集群 HSMs 中的所有三个都成功执行。

```
aws-cloudhsm> deleteUser CO alice
Deleting user alice(CO) on 3 nodes
deleteUser success on server 0(10.0.0.1)
deleteUser success on server 0(10.0.0.2)
deleteUser success on server 0(10.0.0.3)
```

最后一个命令使用该**listUsers**命令来验证`alice`是否已从集群 HSMs 上的所有三个命令中删除。

```
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:2

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
Users on server 1(10.0.0.2):
Number of users found:2

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
Users on server 1(10.0.0.3):
Number of users found:2

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                   YES               0               NO
         2              AU              app_user                                 NO               0               NO
```

## 参数
<a name="deleteUser-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
deleteUser <user-type> <user-name>
```

**<user-type>**  
指定用户类型。此参数为必需参数。  
您无法删除拥有密钥的加密用户 (CU)。
有效值为 **CO** 和 **CU**。  
要获取用户类型，请使用 [listUsers](cloudhsm_mgmt_util-listUsers.md)。有关 HSM 上的用户类型的详细信息，请参阅 [AWS CloudHSM 管理实用程序的 HSM 用户类型](understanding-users-cmu.md)。  
是否必需：是

**<user-name>**  
为用户指定友好名称。最大长度为 31 个字符。唯一允许的特殊字符是下划线 ( \$1 )。  
用户名在创建之后无法更改。在 cloudhsm\$1mgmt\$1util 命令中，用户类型和密码都区分大小写，但用户名不区分大小写。  
是否必需：是

## 相关主题
<a name="deleteUser-seealso"></a>
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [createUser](cloudhsm_mgmt_util-createUser.md)
+ [syncUser](cloudhsm_mgmt_util-syncUser.md)
+ [changePswd](cloudhsm_mgmt_util-changePswd.md)

# 使用 CMU 列出 AWS CloudHSM 加密用户拥有的密钥
<a name="cloudhsm_mgmt_util-findAllKeys"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**findAllKeys**命令获取指定加密用户 (CU) 拥有或共享的密钥。 AWS CloudHSM 该命令还会返回每个的用户数据的哈希值 HSMs。您可以使用哈希值一目了然地确定集群 HSMs 中所有用户、密钥所有权和密钥共享数据是否相同。在输出中，用户拥有的密钥由 `(o)` 进行注释，而共享密钥由 `(s)` 进行注释。

**findAllKeys**仅当指定的 CU 拥有密钥时才返回公钥，即使 HSM CUs 上的所有用户都可以使用任何公钥。此行为不同于 key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)，前者将为所有 CU 用户返回公有密钥。

只有加密官员（COs 和 PCOs）和设备用户（AUs）才能运行此命令。加密用户 (CUs) 可以运行以下命令：
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)，用于查找所有用户
+ 通过 key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md) 可以找到其可以使用的密钥
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)在 key\$1mgmt\$1util 中查找他们拥有或共享的特定密钥的所有者和共享用户

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="findAllKeys-userType"></a>

以下用户均可运行此命令。
+ 加密员 (CO、PCO)
+ 设备用户 (AU)

## 语法
<a name="findAllKeys-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
findAllKeys <user id> <key hash (0/1)> [<output file>]
```

## 示例
<a name="findAllKeys-examples"></a>

这些示例说明`findAllKeys`如何使用查找用户的所有密钥并获取每个密钥的密钥用户信息的哈希值 HSMs。

**Example ：查找 CU 的密钥**  
此示例**findAllKeys**用于在用户 4 拥有和共享 HSMs 的中查找密钥。该命令使用第二个参数的值 `0` 来隐藏哈希值。由于本示例忽略了可选的文件名，因此该命令将写入到 stdout（标准输出）。  
输出表明用户 4 可使用 6 个密钥：8、9、17、262162、19 和 31。输出使用 `(s)` 指示用户显式共享的密钥。用户拥有的密钥由 `(o)` 表示，包含用户未共享的对称密钥和私有密钥，以及对所有加密用户可用的公有密钥。  

```
aws-cloudhsm> findAllKeys 4 0
Keys on server 0(10.0.0.1):
Number of keys found 6
number of keys matched from start index 0::6
8(s),9(s),17,262162(s),19(o),31(o)
findAllKeys success on server 0(10.0.0.1)

Keys on server 1(10.0.0.2):
Number of keys found 6
number of keys matched from start index 0::6
8(s),9(s),17,262162(s),19(o),31(o)
findAllKeys success on server 1(10.0.0.2)

Keys on server 1(10.0.0.3):
Number of keys found 6
number of keys matched from start index 0::6
8(s),9(s),17,262162(s),19(o),31(o)
findAllKeys success on server 1(10.0.0.3)
```

**Example ：验证用户数据是否已同步**  
此示例**findAllKeys**用于验证集群 HSMs 中的所有用户是否都包含相同的用户、密钥所有权和密钥共享值。为了执行此操作，它获取了每个 HSM 上的密钥用户数据的哈希并比较了哈希值。  
为了获取密钥哈希，该命令在第二个参数中使用了值 `1`。由于可选文件名已忽略，因此该命令将密钥哈希写入到 stdout。  
该示例指定了用户`6`，但是对于拥有或共享上任何密钥的任何用户，哈希值都将相同 HSMs。如果指定的用户不拥有或共享任何密钥 (如 CO)，则该命令不会返回哈希值。  
输出显示密钥哈希值与集群 HSMs 中的两者相同。如果其中一个 HSM 具有不同的用户、不同的密钥所有者或不同的共享用户，密钥哈希值将不相等。  

```
aws-cloudhsm> findAllKeys 6 1
Keys on server 0(10.0.0.1):
Number of keys found 3
number of keys matched from start index 0::3
8(s),9(s),11,17(s)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 0(10.0.0.1)
Keys on server 1(10.0.0.2):
Number of keys found 3
number of keys matched from start index 0::3
8(s),9(s),11(o),17(s)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 1(10.0.0.2)
```
此命令演示了哈希值表示 HSM 上的所有密钥的用户数据。此命令对用户 3 使用了 **findAllKeys**。与仅拥有或共享 3 个密钥的用户 6 不同，用户 3 拥有或共享 17 个密钥，但它们的密钥哈希值是相同的。  

```
aws-cloudhsm> findAllKeys 3 1
Keys on server 0(10.0.0.1):
Number of keys found 17
number of keys matched from start index 0::17
6(o),7(o),8(s),11(o),12(o),14(o),262159(o),262160(o),17(s),262162(s),19(s),20(o),21(o),262177(o),262179(o),262180(o),262181(o)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 0(10.0.0.1)
Keys on server 1(10.0.0.2):
Number of keys found 17
number of keys matched from start index 0::17
6(o),7(o),8(s),11(o),12(o),14(o),262159(o),262160(o),17(s),262162(s),19(s),20(o),21(o),262177(o),262179(o),262180(o),262181(o)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 1(10.0.0.2)
```

## 参数
<a name="findAllKeys-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
findAllKeys <user id> <key hash (0/1)> [<output file>]
```

**<user id>**  
获取指定用户拥有或共享的所有密钥。在上输入用户的用户 ID HSMs。要查找所有用户的 IDs 用户，请使用[列表](cloudhsm_mgmt_util-listUsers.md)用户。  
所有用户 IDs 均有效，但仅`findAllKeys`返回加密用户的密钥 (CUs)。  
是否必需：是

**<key hash>**  
包含 (`1`) 或排除 (`0`) 用户所有权以及每个 HSM 中的所有密钥的共享数据的哈希。  
当 `user id` 参数表示拥有或共享密钥的用户时，系统将填充密钥哈希。密钥哈希值对拥有或共享 HSM 上的密钥的所有用户都是相同的，即使它们拥有和共享不同的密钥。但是，当 `user id` 表示不拥有或共享任何密钥的用户 (如 CO) 时，将不会填充哈希值。  
是否必需：是

**<output file>**  
将输出写入到指定文件。  
必需：否  
默认值：Stdout

## 相关主题
<a name="findAllKeys-seealso"></a>
+ [changePswd](cloudhsm_mgmt_util-changePswd.md)
+ [deleteUser](cloudhsm_mgmt_util-deleteUser.md)
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [syncUser](cloudhsm_mgmt_util-syncUser.md)
+ key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)在 key\$1mgmt\$1util 中

# 使用 CMU 获取 AWS CloudHSM 关键属性值
<a name="cloudhsm_mgmt_util-getAttribute"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**getAttribute**命令从 AWS CloudHSM 集群中的所有硬件安全模块 (HSM) 中获取密钥的一个属性值，然后将其写入 stdout（标准输出）或文件中。只有加密用户 (CUs) 才能运行此命令。

*密钥属性*是密钥的属性。它们包括特征 (如密钥类型、类、标签和 ID) 和表示您可对密钥执行的操作 (如加密、解密、包装、签名和验证) 的值。

您只能对您拥有的密钥和与您共享的密钥使用 **getAttribute**。您可运行此命令或 key\$1mgmt\$1util 中的 [getAttribute](#cloudhsm_mgmt_util-getAttribute) 命令 (将密钥的一个或所有属性值写入文件)。

要获取包含属性和表示属性的常量的列表，请使用 [listAttributes](key_mgmt_util-listAttributes.md) 命令。要更改现有密钥的属性值，请使用 key\$1mgmt\$1util 中的 [setAttribute](key_mgmt_util-setAttribute.md) 和 cloudhsm\$1mgmt\$1util 中的 [setAttribute](cloudhsm_mgmt_util-setAttribute.md)。有关解释密钥属性的帮助，请参阅 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md)。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="chmu-getAttribute-userType"></a>

以下用户均可运行此命令。
+ 加密用户 (CU)

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

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
getAttribute <key handle> <attribute id> [<filename>]
```

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

此示例获取中键的可提取属性的值。 HSMs您可以使用这样的命令来确定是否可以从中导出密钥 HSMs。

第一条命令使用 [listAttributes](cloudhsm_mgmt_util-listAttributes.md) 查找表示可提取属性的常量。输出表明，`OBJ_ATTR_EXTRACTABLE` 的常量为 `354`。您也可以在 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md) 中找到此信息与属性的描述以及属性值。

```
aws-cloudhsm> listAttributes

Following are the possible attribute values for getAttribute:

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_TRUSTED                = 134
      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_DERIVE                 = 268
      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_NEVER_EXTRACTABLE      = 356
      OBJ_ATTR_ALWAYS_SENSITIVE       = 357
      OBJ_ATTR_DESTROYABLE            = 370
      OBJ_ATTR_KCV                    = 371
      OBJ_ATTR_WRAP_WITH_TRUSTED      = 528      
      OBJ_ATTR_WRAP_TEMPLATE          = 1073742353
      OBJ_ATTR_UNWRAP_TEMPLATE        = 1073742354
      OBJ_ATTR_ALL                    = 512
```

第二个命令**getAttribute**用于获取带有键控柄`262170`的密钥的可提取属性的值。 HSMs要指定可提取属性，此命令使用 `354` (表示此属性的常量)。由于此命令未指定文件名，**getAttribute** 会将输出写入 stdout。

输出表明，所有 HSM 上的可提取属性值为 1。此值指示密钥的所有者可导出密钥。当值为 0 (0x0) 时，无法从中导出。 HSMs可在创建密钥时设置可提取属性的值，但无法更改此值。

```
aws-cloudhsm> getAttribute 262170 354

Attribute Value on server 0(10.0.1.10):
OBJ_ATTR_EXTRACTABLE
0x00000001

Attribute Value on server 1(10.0.1.12):
OBJ_ATTR_EXTRACTABLE
0x00000001

Attribute Value on server 2(10.0.1.7):
OBJ_ATTR_EXTRACTABLE
0x00000001
```

## 参数
<a name="chmu-getAttribute-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
getAttribute <key handle> <attribute id> [<filename>]
```

**<key-handle>**  
指定目标密钥的密钥句柄。您在每个命令中只能指定一个密钥。要获取密钥的密钥句柄，请使用 key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)。  
您必须拥有指定密钥或必须与您共享此密钥。要查找密钥的用户，请在 key\$1mgmt\$1uti [getKeyInfo](key_mgmt_util-getKeyInfo.md)l 中使用。  
是否必需：是

**<attribute id>**  
标识属性。输入表示属性的常量，或表示所有属性的 `512`。例如，要获取密钥类型，请输入 `256`（`OBJ_ATTR_KEY_TYPE` 属性的常量）。  
要列出属性及其常量，请使用 [listAttributes](key_mgmt_util-listAttributes.md)。有关解释密钥属性的帮助，请参阅 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md)。  
是否必需：是

**<filename>**  
将输出写入到指定文件。输入文件路径。  
如果指定文件存在，**getAttribute** 将覆盖此文件而不发出警告。  
必需：否  
默认值：Stdout

## 相关主题
<a name="chmu-getAttribute-seealso"></a>
+ key\$1mgmt\$1util 中的 [getAttribute](key_mgmt_util-getAttribute.md)
+ [listAttributes](cloudhsm_mgmt_util-listAttributes.md)
+ cloudhsm\$1mgmt\$1util 中的 [setAttribute](cloudhsm_mgmt_util-setAttribute.md)
+ key\$1mgmt\$1util 中的 [setAttribute](key_mgmt_util-setAttribute.md)
+ [密钥属性引用](key-attribute-table.md)

# 使用 CMU 获取 AWS CloudHSM 集群中每个 HSM 的硬件信息
<a name="cloudhsm_mgmt_util-getHSMInfo"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**getHSMInfo**命令获取有关运行每个硬件安全模块 (HSM) 的硬件的信息，包括型号、序列号、FIPS 状态、内存、温度以及硬件和固件的版本号。该信息还包括 cloudhsm\$1mgmt\$1util 用来引用 HSM 的服务器 ID。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="getHSMInfo-userType"></a>

以下类型的用户均可运行此命令。
+ 所有用户。您不必登录即可运行此命令。

## 语法
<a name="getHSMInfo-syntax"></a>

此命令没有输出参数。

```
getHSMInfo
```

## 示例
<a name="getHSMInfo-examples"></a>

此示例**getHSMInfo**用于获取有关集群 HSMs 中的的信息。

```
aws-cloudhsm> getHSMInfo
Getting HSM Info on 3 nodes
                *** Server 0 HSM Info ***

        Label                :cavium
        Model                :NITROX-III CNN35XX-NFBE

        Serial Number        :3.0A0101-ICM000001
        HSM Flags            :0
        FIPS state           :2 [FIPS mode with single factor authentication]

        Manufacturer ID      :
        Device ID            :10
        Class Code           :100000
        System vendor ID     :177D
        SubSystem ID         :10


        TotalPublicMemory    :560596
        FreePublicMemory     :294568
        TotalPrivateMemory   :0
        FreePrivateMemory    :0

        Hardware Major       :3
        Hardware Minor       :0

        Firmware Major       :2
        Firmware Minor       :03

        Temperature          :56 C

        Build Number         :13

        Firmware ID          :xxxxxxxxxxxxxxx

...
```

## 相关主题
<a name="getHSMInfo-seealso"></a>
+ [info](cloudhsm_mgmt_util-info.md)

# 使用 CMU 获取有关密钥的 AWS CloudHSM 用户信息
<a name="cloudhsm_mgmt_util-getKeyInfo"></a>

使用 k AWS CloudHSM ey\$1mgmt\$1util (KMU) 中的**getKeyInfo**命令返回可以使用密钥的用户的硬件安全模块 (HSM) 用户，包括所有者和与 IDs 之共享密钥的加密用户 (CU)。如果对某个密钥启用了仲裁身份验证，**getKeyInfo** 也将返回必须批准使用该密钥的加密操作的用户数。您只能在您拥有的密钥和与您共享的密钥上运行 **getKeyInfo**。

当您在公有密钥上运行 **getKeyInfo** 时，**getKeyInfo** 将仅返回密钥所有者，即使 HSM 的所有用户都可以使用该公有密钥。[要查找您的 HSMs用户的 HSM 用户 IDs ，请使用 ListUsers。](key_mgmt_util-listUsers.md)要查找特定用户的密钥，请在 key\$1mgmt\$1util 中使用 [findKey](key_mgmt_util-findKey.md) `-u`。加密官员可以[findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)在 cloudhsm\$1mgmt\$1util 中使用。

您拥有您创建的密钥。在创建密钥时，您可以与其他用户共享它。然后，要共享或取消共享现有密钥，请在 cloudhsm\$1mgmt\$1util 中使用 [shareKey](cloudhsm_mgmt_util-shareKey.md)。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="chmu-getKeyInfo-userType"></a>

以下类型的用户均可运行此命令。
+ 加密用户 (CU)

## 语法
<a name="chmu-getKeyInfo-syntax"></a>

```
getKeyInfo -k <key-handle> [<output file>]
```

## 示例
<a name="chmu-getKeyInfo-examples"></a>

这些示例说明如何使用 **getKeyInfo** 获取有关密钥用户的信息。

**Example ：获取非对称密钥的用户**  
此命令将获取可使用密钥句柄为 `262162` 的 AES (非对称) 密钥的用户。输出表明，用户 3 拥有密钥并将密钥与用户 4 和 6 共享。  
仅用户 3、4 和 6 可以在密钥 262162 上运行 **getKeyInfo**。  

```
aws-cloudhsm>getKeyInfo 262162
Key Info on server 0(10.0.0.1):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 2 user(s):

                 4
                 6
Key Info on server 1(10.0.0.2):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 2 user(s):

                 4
                 6
```

**Example ：获取对称密钥对的用户**  
这些命令使用 **getKeyInfo** 获取可使用 [ECC（对称）密钥对](key_mgmt_util-genSymKey.md)中的密钥的用户。公有密钥具有密钥句柄 `262179`。私有密钥具有密钥句柄 `262177`。  
当你在私钥 (`262177`) **getKeyInfo** 上运行时，它会返回与之共享密钥的密钥所有者 (3CUs) 和加密用户 () 4。  

```
aws-cloudhsm>getKeyInfo -k 262177
Key Info on server 0(10.0.0.1):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 1 user(s):

                 4
Key Info on server 1(10.0.0.2):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 1 user(s):

                 4
```
当您在公有密钥 (`262179`) 上运行 **getKeyInfo** 时，它只会返回密钥所有者，即用户 `3`。  

```
aws-cloudhsm>getKeyInfo -k 262179
Key Info on server 0(10.0.3.10):

        Token/Flash Key,

        Owned by user 3

Key Info on server 1(10.0.3.6):

        Token/Flash Key,

        Owned by user 3
```
要确认用户 4 可以使用公有密钥（和 HSM 上的所有公有密钥），请使用 key\$1mgmt\$1util 中 [findKey](key_mgmt_util-findKey.md) 的 `-u` 参数。  
输出显示，用户 4 可以使用密钥对中的公有密钥 (`262179`) 和私有密钥 (`262177`)。用户 4 还可以使用所有其他公有密钥以及他们创建的或与他们共享的任何私有密钥。  

```
Command:  findKey -u 4

Total number of keys present 8

 number of keys matched from start index 0::7
11, 12, 262159, 262161, 262162, 19, 20, 21, 262177, 262179

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

**Example ：获取密钥的仲裁身份验证值 (m\$1value)**  
此示例介绍如何获取密钥的 `m_value`。m\$1value 是仲裁中的用户数，这些用户必须批准使用密钥的任何加密操作和共享/取消共享密钥的操作。  
如果对某个密钥启用了仲裁身份验证，用户的仲裁必须批准使用该密钥的任何加密操作。要启用仲裁身份验证并设置仲裁大小，请在创建密钥时使用 `-m_value` 参数。  
此命令用于创建[genSymKey](key_mgmt_util-genSymKey.md)与用户 4 共享的 256 位 AES 密钥。它使用 `m_value` 参数启用仲裁身份验证并将仲裁大小设置为两个用户。用户的数量必须足够大，才能提供所需的批准。  
输出表明，该命令创建了密钥 10。  

```
 Command:  genSymKey -t 31 -s 32 -l aes256m2 -u 4 -m_value 2

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 10

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
此命令使用 cloudhsm\$1mgmt\$1util 中的 **getKeyInfo** 获取有关密钥 `10` 的用户的信息。输出表明，该密钥由用户 `3` 所有并与用户 `4` 共享。它还表明，这两个用户的仲裁必须批准使用该密钥的所有加密操作。  

```
aws-cloudhsm>getKeyInfo 10

Key Info on server 0(10.0.0.1):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 1 user(s):

                 4
         2 Users need to approve to use/manage this key
Key Info on server 1(10.0.0.2):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 1 user(s):

                 4
         2 Users need to approve to use/manage this key
```

## 参数
<a name="chmu-getKeyInfo-parameters"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
getKeyInfo -k <key-handle> <output file>
```

**<key-handle>**  
指定 HSM 中的一个密钥的密钥句柄。输入您拥有或共享的密钥的密钥句柄。此参数为必需参数。  
是否必需：是

**<output file>**  
将输出写入指定文件，而不是 stdout。如果该文件存在，则命令将覆盖该文件而不发出警告。  
必需：否  
默认值：stdout

## 相关主题
<a name="chmu-getKeyInfo-seealso"></a>
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)在 key\$1mgmt\$1util 中
+ key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)
+ [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)在 cloudhsm\$1mgmt\$1util
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [shareKey](cloudhsm_mgmt_util-shareKey.md)

# 使用 CMU 获取 AWS CloudHSM 集群中每个 HSM 的信息
<a name="cloudhsm_mgmt_util-info"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**info**命令获取有关 AWS CloudHSM 集群中每个硬件安全模块 (HSM) 的信息，包括主机名、端口、IP 地址以及在 HSM 上登录 cloudhsm\$1mgmt\$1util 的用户的名称和类型。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="info-userType"></a>

以下类型的用户均可运行此命令。
+ 所有用户。您不必登录即可运行此命令。

## 语法
<a name="info-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
info server <server ID>
```

## 示例
<a name="info-examples"></a>

此示例使用 **info** 获取有关集群中 HSM 的信息。此命令使用 0 来引用集群中的第一个 HSM。输出显示了 IP 地址、端口以及当前用户的类型和名称。

```
aws-cloudhsm> info server 0
Id      Name                    Hostname         Port   State           Partition               LoginState
0       10.0.0.1                10.0.0.1        2225    Connected       hsm-udw0tkfg1ab         Logged in as 'testuser(CU)'
```

## 参数
<a name="info-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
info server <server ID>
```

**<server id>**  
指定 HSM 的服务器 ID。 HSMs 它们被分配了序号，这些序号表示它们加入聚类的顺序，从 0 开始。要查找 HSM 的服务器 ID，请使用 get HSMInfo。  
是否必需：是

## 相关主题
<a name="info-seealso"></a>
+ [getHSMInfo](cloudhsm_mgmt_util-getHSMInfo.md)
+ [loginHSM 和 logoutHSM](cloudhsm_mgmt_util-loginLogout.md)

# 使用 CMU 列出 AWS CloudHSM 密钥的属性
<a name="cloudhsm_mgmt_util-listAttributes"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**listAttributes**命令列出密钥的属性以及代表它们的常量。 AWS CloudHSM 您使用这些常量来标识 [getAttribute](cloudhsm_mgmt_util-getAttribute.md) 和 [setAttribute](cloudhsm_mgmt_util-setAttribute.md) 命令中的属性。

有关解释密钥属性的帮助，请参阅 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md)。

在运行任何 key\$1mgmt\$1util 命令之前，您必须[启动 key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) 并以加密用户（CU）身份[登录](key_mgmt_util-log-in.md)到 HSM。

## 用户类型
<a name="listAttributes-userType"></a>

以下用户均可运行此命令。
+ 所有用户。您不必登录即可运行此命令。

## 语法
<a name="chmu-listAttributes-syntax"></a>

```
listAttributes [-h]
```

## 示例
<a name="chmu-listAttributes-examples"></a>

此命令将列出您可以在 key\$1mgmt\$1util 中获取和更改的密钥属性和表示它们的常量。有关解释密钥属性的帮助，请参阅 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md)。要表示所有属性，请使用 `512`。

```
Command: listAttributes

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

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_TRUSTED                = 134
      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_DERIVE                 = 268
      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_NEVER_EXTRACTABLE      = 356
      OBJ_ATTR_ALWAYS_SENSITIVE       = 357
      OBJ_ATTR_DESTROYABLE            = 370
      OBJ_ATTR_KCV                     = 371
      OBJ_ATTR_WRAP_WITH_TRUSTED       = 528
      OBJ_ATTR_WRAP_TEMPLATE           = 1073742353
      OBJ_ATTR_UNWRAP_TEMPLATE        = 1073742354
      OBJ_ATTR_ALL                    = 512
```

## 参数
<a name="chmu-listAttributes-parameters"></a>

**-h**  
显示该命令的帮助信息。  
是否必需：是

## 相关主题
<a name="chmu-listAttributes-seealso"></a>
+ [getAttribute](cloudhsm_mgmt_util-getAttribute.md)
+ [setAttribute](cloudhsm_mgmt_util-setAttribute.md)
+ [密钥属性引用](key-attribute-table.md)

# 列出所有使用 CMU 的 AWS CloudHSM 用户
<a name="cloudhsm_mgmt_util-listUsers"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util 中的**listUsers**命令获取每个硬件安全模块 (HSM) 中的用户及其用户类型和其他属性。所有类型的用户都可以运行此命令。您甚至不必登录 cloudhsm\$1mgmt\$1util 即可运行此命令。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="listUsers-userType"></a>

以下类型的用户均可运行此命令。
+ 所有用户。您不必登录即可运行此命令。

## 语法
<a name="chmu-listUsers-syntax"></a>

此命令没有输出参数。

```
listUsers
```

## 示例
<a name="chmu-listUsers-examples"></a>

此命令列出集群 HSMs 中每个用户并显示其属性。您可以使用 `User ID` 属性来识别其他命令（如 **deleteUser**、**changePswd** 和 **findAllKeys**）中的用户。

```
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:6

    User Id             User Type       User Name            MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                     YES               0               NO
         2              AU              app_user                   NO               0               NO
         3              CU              crypto_user1               NO               0               NO
         4              CU              crypto_user2               NO               0               NO
         5              CO              officer1                  YES               0               NO
         6              CO              officer2                   NO               0               NO
Users on server 1(10.0.0.2):
Number of users found:5

    User Id             User Type       User Name            MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                     YES               0               NO
         2              AU              app_user                   NO               0               NO
         3              CU              crypto_user1               NO               0               NO
         4              CU              crypto_user2               NO               0               NO
         5              CO              officer1                  YES               0               NO
```

输出包含以下用户属性：
+ **用户 ID**：标识 key\$1mgmt\$1util 和 [cloudhsm\$1mgmt\$1util](cloudhsm_mgmt_util.md) 命令中的用户。
+ [User type](understanding-users.md)：确定用户可在 HSM 上执行的操作。
+ **User Name**：显示用户的用户定义友好名称。
+ **MofnPubKey**：表示用户是否注册了用于签署[法定身份验证](quorum-authentication.md)令牌的密钥对。
+ **LoginFailureCnt**：表示用户登录失败的次数。
+ **2FA**：指示用户已启用多因素验证。

## 相关主题
<a name="chmu-listUsers-seealso"></a>
+ key\$1mgmt\$1util 中的 [listUsers](key_mgmt_util-listUsers.md)
+ [createUser](cloudhsm_mgmt_util-createUser.md)
+ [deleteUser](cloudhsm_mgmt_util-deleteUser.md)
+ [changePswd](cloudhsm_mgmt_util-changePswd.md)

# 使用 AWS CloudHSM 管理实用程序登录和注销 HSM
<a name="cloudhsm_mgmt_util-loginLogout"></a>

使用 AWS CloudHSM cloudhsm\$1mgmt\$1util 中的 **loginHSM** 和 **logoutHSM** 命令登录和退出集群中的每个 HSM。任何类型的任何用户都可以使用这些命令。

**注意**  
如果错误登录尝试满五次，则将锁定账户。要解锁账户，加密员 (CO) 必须在 cloudhsm\$1mgmt\$1util 中使用 [changePswd](cloudhsm_mgmt_util-changePswd.md) 命令重置您的密码。

## 若要对 loginHSM 和 LogouthSM 进行故障排除
<a name="troubleshoot-login-logout"></a>

运行这些 cloudhsm\$1mgmt\$1util 命令前，必须启动 cloudhsm\$1mgmt\$1util。

如果添加或删除 HSMs，请更新 AWS CloudHSM 客户端和命令行工具使用的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

如果您的集群中有多个 HSM，在锁定账户前，可能会允许您尝试更多次错误登录。这是因为 CloudHSM 客户端会平衡各种负载。 HSMs因此，您的登录尝试可能不是每次都在相同的 HSM 上开始的。如果您要测试此功能，我们建议您在仅具有一个活动 HSM 的集群上测试。

如果您的集群是在 2018 年 2 月前创建的，则在错误登录尝试满 20 次后锁定账户。

## 用户类型
<a name="chmu-loginLogout-userType"></a>

以下用户均可运行这些命令。
+ 准加密员（PRECO）
+ 加密员 (CO, Crypto officer)
+ 加密用户 (CU)

## 语法
<a name="chmu-loginLogout-syntax"></a>

按照语法图表中指定的顺序输入参数。使用 `-hpswd` 参数来掩盖您的密码。要使用双重身份验证 (2FA) 登录，请使用 `-2fa` 参数并纳入文件路径。有关更多信息，请参阅 [参数](#loginLogout-params)。

```
loginHSM <user-type> <user-name> <password> |-hpswd> [-2fa </path/to/authdata>]
```

```
logoutHSM
```

## 示例
<a name="chmu-loginLogout-example"></a>

这些示例说明了如何使用**loginHSM**集群 HSMs 中的所有内容以及如何登录和注销集群。**logoutHSM**

**Example : 登录到集群 HSMs 中的**  
此命令使用名为的 CO 用户的凭据`admin`和密码登录到集群 HSMs 中的所有人`co12345`。输出显示命令成功且您已连接到 HSMs（在本例中为`server 0`和`server 1`）。  

```
aws-cloudhsm>loginHSM CO admin co12345

loginHSM success on server 0(10.0.2.9)
loginHSM success on server 1(10.0.3.11)
```

**Example ：使用隐藏密码登录**  
此命令与上述示例相同，但是这一次您指定了系统应隐藏密码。  

```
aws-cloudhsm>loginHSM CO admin -hpswd
```
系统将会提示您输入密码。您输入密码，系统会隐藏密码，输出显示命令成功且您已连接到 HSMs。  

```
Enter password:

loginHSM success on server 0(10.0.2.9)
loginHSM success on server 1(10.0.3.11)

aws-cloudhsm>
```

**Example ：从 HSM 中注销**  
此命令将 HSMs 您注销当前登录的（在本例中为`server 0`和`server 1`）。输出显示命令成功且您已与断开连接 HSMs。  

```
aws-cloudhsm>logoutHSM

logoutHSM success on server 0(10.0.2.9)
logoutHSM success on server 1(10.0.3.11)
```

## 参数
<a name="loginLogout-params"></a>

按照语法图表中指定的顺序输入参数。使用 `-hpswd` 参数来掩盖您的密码。要使用双重身份验证 (2FA) 登录，请使用 `-2fa` 参数并纳入文件路径。有关使用 2FA 的更多信息，请参阅 [管理用户 2FA](manage-2fa.md)。

```
loginHSM <user-type> <user-name> <password> |-hpswd> [-2fa </path/to/authdata>]
```

**<user type>**  
指定登录的用户类型 HSMs。有关更多信息，请参阅上面的[用户类型](#chmu-loginLogout-userType)。  
是否必需：是

**<user name>**  
指定正在登录的用户的用户名 HSMs。  
是否必需：是

**<password \$1 ‐hpswd >**  
指定正在登录的用户的密码 HSMs。若要隐藏密码，请使用 `-hpswd` 参数代替密码，然后按照提示进行操作。  
是否必需：是

**[-2fa <path/to/authdata/>]**  
指定系统应使用第二项因素对此 2FA CO 用户进行身份验证。要获取使用 2FA 登录所需的数据，请在 `-2fa` 参数后面添加文件名，以指向文件系统中的某个位置的路径。有关使用 2FA 的更多信息，请参阅 [管理用户 2FA](manage-2fa.md)。  
必需：否

## 相关主题
<a name="loginLogout-seeAlso"></a>
+ [cloudhsm\$1mgmt\$1util 入门](cloudhsm_mgmt_util-getting-started.md)
+ [激活集群](activate-cluster.md)

# 使用 CM AWS CloudHSM U 将用户与密钥相关联
<a name="cloudhsm_mgmt_util-registerQuorumPubKey"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util 中的**registerQuorumPubKey**命令将硬件安全模块 (HSM) 用户与非对称 RSA-2048 密钥对关联起来。将 HSM 用户与密钥关联后，这些用户就可以使用私钥批准仲裁人数请求，集群可以使用注册的公钥验证签名是否来自该用户。有关仲裁身份验证的更多信息，请参阅[管理仲裁身份验证（M of N 访问控制）](quorum-authentication.md)。

**提示**  
*在 AWS CloudHSM 文档中，法定人数身份验证有时被称为 M of N (MoFN)，这意味着在总数 N 个批准者中，至少有 *M* 个批准者。*

## 用户类型
<a name="registerQuorumPubKey-userType"></a>

以下类型的用户均可运行此命令。
+ 加密员（CO）

## 语法
<a name="registerQuorumPubKey-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
registerQuorumPubKey <user-type> <user-name> <registration-token> <signed-registration-token> <public-key>
```

## 示例
<a name="registerQuorumPubKey-examples"></a>

此示例说明如何使用 **registerQuorumPubKey** 将加密员（CO）注册为仲裁身份验证请求的批准者。若要运行此命令，您必须拥有非对称 RSA-2048 密钥对、已签名令牌和未签名令牌。有关要求的更多信息，请参阅 [参数](#registerQuorumPubKey-params)。

**Example ：注册 HSM 用户以进行仲裁身份验证**  
此示例将名为 `quorum_officer` 的 CO 注册为仲裁身份验证批准者。  

```
aws-cloudhsm> registerQuorumPubKey CO <quorum_officer> </path/to/quorum_officer.token> </path/to/quorum_officer.token.sig> </path/to/quorum_officer.pub>

*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)?y
registerQuorumPubKey success on server 0(10.0.0.1)
```
最后一个命令使用 [listUsers](cloudhsm_mgmt_util-listUsers.md) 命令验证 `quorum_officer` 是否以 MofN 用户身份注册。  

```
aws-cloudhsm> listUsers
Users on server 0(10.0.0.1):
Number of users found:3

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              quorum_officer                          YES               0               NO
```

## 参数
<a name="registerQuorumPubKey-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
registerQuorumPubKey <user-type> <user-name> <registration-token> <signed-registration-token> <public-key>
```

**<user-type>**  
指定用户类型。此参数为必需参数。  
有关 HSM 上的用户类型的详细信息，请参阅 [AWS CloudHSM 管理实用程序的 HSM 用户类型](understanding-users-cmu.md)。  
有效值：  
+ **CO**：加密员可以管理用户，但无法管理密钥。
是否必需：是

**<user-name>**  
为用户指定友好名称。最大长度为 31 个字符。唯一允许的特殊字符是下划线 ( \$1 )。  
用户名在创建之后无法更改。在 cloudhsm\$1mgmt\$1util 命令中，用户类型和密码都区分大小写，但用户名不区分大小写。  
是否必需：是

**<registration-token>**  
指定包含未签名注册令牌的文件路径。可以有最大文件大小为 245 字节的任何随机数据。有关创建未签名注册令牌的更多信息，请参阅[创建和签名注册令牌](quorum-authentication-crypto-officers-first-time-setup.md#mofn-registration-token)。  
是否必需：是

**<signed-registration-token>**  
指定包含注册令牌的 SHA256 \$1PKCS 机制签名哈希值的文件路径。有关更多信息，请参阅[创建和签名注册令牌](quorum-authentication-crypto-officers-first-time-setup.md#mofn-registration-token)。  
是否必需：是

**<public-key>**  
指定包含非对称 RSA-2048 密钥对公钥的文件路径。使用私有密钥对注册令牌进行签名。有关更多信息，请参阅[创建 RSA 密钥对](quorum-authentication-crypto-officers-first-time-setup.md#mofn-key-pair-create)。  
是否必需：是  
集群使用相同的密钥进行仲裁身份验证和双重身份验证 (2FA, two-factor authentication)。这意味着您无法对使用 **registerQuorumPubKey** 进行双因素身份验证的用户轮换仲裁密钥。若要要轮换密钥，必须使用 **changePswd**。有关使用仲裁身份验证和双因素身份验证的更多信息，请参阅[仲裁身份验证和双因素身份验证](quorum-2fa.md)。

## 相关主题
<a name="registerQuorumPubKey-seealso"></a>
+ [创建 RSA 密钥对](quorum-authentication-crypto-officers-first-time-setup.md#mofn-key-pair-create)
+ [创建注册令牌并签名](quorum-authentication-crypto-officers-first-time-setup.md#mofn-registration-token)
+ [通过 HSM 注册公钥](quorum-authentication-crypto-officers-first-time-setup.md#mofn-register-key)
+ [管理仲裁身份验证（M of N 访问控制）](quorum-authentication.md)
+ [仲裁身份验证和双因素身份验证](quorum-2fa.md)
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)

# 使用 CMU 与 AWS CloudHSM 集群中的一个 HSM 进行交互
<a name="cloudhsm_mgmt_util-server"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util 中的**server**命令进入*服务器模式*并直接与特定的硬件安全模块 (HSM) 实例进行交互。

*通常，当你在 cloudhsm\$1mgmt\$1util 中发出命令时，该命令将在指定的集群中生效（全 HSMs 局模式）。*但是，在某些情况下，您需要向单个 HSM 发布命令。例如，在自动同步失败的情况下，您可能需要同步 HSM 上的密钥和用户，以跨集群保持一致性。

成功启动后，`aws-cloudhsm >` 命令提示符将替换为 `server >` 命令提示符。

为了退出服务器模式，请使用 `exit` 命令。成功退出后，您将返回到 cloudhsm\$1mgmt\$1util 命令提示符。

运行任何 cloudhsm\$1mgmt\$1util 命令前，必须启动 cloudhsm\$1mgmt\$1util。

## 用户类型
<a name="server-userType"></a>

以下用户均可运行此命令。
+ 所有用户。

## 先决条件
<a name="server-prerequisites"></a>

为了进入服务器模式，您必须首先知道目标 HSM 的服务器编号。服务器编号将在启动后在由 cloudhsm\$1mgmt\$1util 生成的跟踪输出中列出。服务器编号的分配顺序与配置文件中 HSMs 显示的顺序相同。在此示例中，我们假设 `server 0` 是对应于所需 HSM 的服务器。

## 语法
<a name="server-syntax"></a>

启动服务器模式：

```
server <server-number>
```

退出服务器模式：

```
server> exit
```

## 示例
<a name="server-examples"></a>

此命令将进入 HSM 上的服务器模式，服务器编号为 `0`。

```
aws-cloudhsm> server 0

Server is in 'E2' mode...
```

为了退出服务器模式，请使用 **exit** 命令。

```
server0> exit
```

## 参数
<a name="server-arguments"></a>

```
server <server-number>
```

**<server-number>**  
指定目标 HSM 的服务器编号。  
是否必需：是

没有 `exit` 命令的参数。

## 相关主题
<a name="chmu-server-seealso"></a>
+ [syncKey](cloudhsm_mgmt_util-syncKey.md)
+ [createUser](cloudhsm_mgmt_util-createUser.md)
+ [deleteUser](cloudhsm_mgmt_util-deleteUser.md)

# 使用 CMU 设置 AWS CloudHSM 密钥的属性
<a name="cloudhsm_mgmt_util-setAttribute"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util 中的**setAttribute**命令更改标签的值，对密钥的属性进行加密、解密、封装和解包。 HSMs您也可以使用 key\$1mgmt\$1util 中的 [setAttribute](key_mgmt_util-setAttribute.md) 命令来将会话密钥转换为持久密钥。您只能更改自己拥有的密钥的属性。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="setAttribute-userType"></a>

以下用户均可运行此命令。
+ 加密用户 (CU)

## 语法
<a name="chmu-setAttribute-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。



```
setAttribute <key handle> <attribute id>
```

## 示例
<a name="chmu-setAttribute-examples"></a>

此示例说明如何禁用对称密钥的解密功能。您可以使用与此类似的命令来配置包装密钥，该密钥应能够将其他密钥进行包装和解开包装，但无法加密或解密数据。

第一步是创建包装密钥。此命令[genSymKey](key_mgmt_util-genSymKey.md)在 key\$1mgmt\$1util 中使用来生成 256 位 AES 对称密钥。输出显示新密钥具有密钥句柄 14。

```
$  genSymKey -t 31 -s 32 -l aes256

Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 14

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

接下来，我们想要确认解密属性的当前值。要获取解密属性的属性 ID，请使用 [listAttributes](cloudhsm_mgmt_util-listAttributes.md)。输出显示表示 `OBJ_ATTR_DECRYPT` 属性的常量为 `261`。有关解释密钥属性的帮助，请参阅 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md)。

```
aws-cloudhsm> listAttributes

Following are the possible attribute values for getAttribute:

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_TRUSTED                = 134
      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_DERIVE                 = 268
      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_NEVER_EXTRACTABLE      = 356
      OBJ_ATTR_ALWAYS_SENSITIVE       = 357
      OBJ_ATTR_DESTROYABLE            = 370
      OBJ_ATTR_KCV                    = 371
      OBJ_ATTR_WRAP_WITH_TRUSTED      = 528
      OBJ_ATTR_WRAP_TEMPLATE          = 1073742353
      OBJ_ATTR_UNWRAP_TEMPLATE        = 1073742354
      OBJ_ATTR_ALL                    = 512
```

要获取密钥 14 的解密属性的当前值，请使用 cloudhsm\$1mgmt\$1util 中的 [getAttribute](cloudhsm_mgmt_util-getAttribute.md)。

输出显示集群中两者的 decrypt 属性的值均 HSMs 为 true (1)。

```
aws-cloudhsm> getAttribute 14 261
      
Attribute Value on server 0(10.0.0.1):
OBJ_ATTR_DECRYPT
0x00000001

Attribute Value on server 1(10.0.0.2):
OBJ_ATTR_DECRYPT
0x00000001
```

此命令使用 **setAttribute** 将密钥 14 的解密属性（属性 `261`）的值更改为 `0`。这将禁用密钥上的解密功能。

输出显示该命令在集群 HSMs 中的两者上都成功执行。

```
aws-cloudhsm> setAttribute 14 261 0
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
setAttribute success on server 0(10.0.0.1)
setAttribute success on server 1(10.0.0.2)
```

最后一个命令重复执行 **getAttribute** 命令。同样，它会获得密钥 14 的解密属性 (属性 `261`)。

这次，输出显示集群中两者的解密属性的值均 HSMs 为 false (0)。

```
aws-cloudhsm > getAttribute 14 261
Attribute Value on server 0(10.0.3.6):
OBJ_ATTR_DECRYPT
0x00000000

Attribute Value on server 1(10.0.1.7):
OBJ_ATTR_DECRYPT
0x00000000
```

## 参数
<a name="chmu-setAttribute-parameters"></a>

```
setAttribute <key handle> <attribute idb
```

**<key-handle>**  
指定您拥有的密钥的密钥句柄。您在每个命令中只能指定一个密钥。要获取密钥的密钥句柄，请使用 key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)。要查找密钥的用户，请使用[getKeyInfo](cloudhsm_mgmt_util-getKeyInfo.md)。  
是否必需：是

**<attribute id>**  
指定表示您要更改的属性的常量。您在每个命令中只能指定一个属性。要获取属性及其整数值，请使用 [listAttributes](key_mgmt_util-listAttributes.md)。有关解释密钥属性的帮助，请参阅 [AWS CloudHSM KMU 的关键属性参考](key-attribute-table.md)。  
有效值：  
+ **3** – `OBJ_ATTR_LABEL`。
+ **134** – `OBJ_ATTR_TRUSTED`。
+ **260** – `OBJ_ATTR_ENCRYPT`。
+ **261** – `OBJ_ATTR_DECRYPT`。
+ **262** – `OBJ_ATTR_WRAP`。
+ **263** – `OBJ_ATTR_UNWRAP`。
+ **264** – `OBJ_ATTR_SIGN`。
+ **266** – `OBJ_ATTR_VERIFY`。
+ **268** – `OBJ_ATTR_DERIVE`。
+ **370** – `OBJ_ATTR_DESTROYABLE`。
+ **528** – `OBJ_ATTR_WRAP_WITH_TRUSTED`。
+ **1073742353** – `OBJ_ATTR_WRAP_TEMPLATE`。
+ **1073742354** – `OBJ_ATTR_UNWRAP_TEMPLATE`。
是否必需：是

## 相关主题
<a name="chmu-setAttribute-seealso"></a>
+ key\$1mgmt\$1util 中的 [setAttribute](key_mgmt_util-setAttribute.md)
+ [getAttribute](cloudhsm_mgmt_util-getAttribute.md)
+ [listAttributes](cloudhsm_mgmt_util-listAttributes.md)
+ [密钥属性引用](key-attribute-table.md)

# 退出 CMU
<a name="cloudhsm_mgmt_util-quit"></a>

使用 cloudhsm\$1mgmt\$1util 中的**quit**命令 AWS CloudHSM 退出 cloudhsm\$1mgmt\$1util。任何类型的任何用户都可以使用此命令。

运行任何 cloudhsm\$1mgmt\$1util 命令前，必须启动 cloudhsm\$1mgmt\$1util。

## 用户类型
<a name="quit-userType"></a>

以下用户均可运行此命令。
+ 所有用户。您不必登录即可运行此命令。

## 语法
<a name="chmu-quit-syntax"></a>

```
quit
```

## 示例
<a name="chmu-quit-examples"></a>

此命令将退出 cloudhsm\$1mgmt\$1util。成功完成后，您将返回到您的常规命令行。此命令没有输出参数。

```
aws-cloudhsm> quit

disconnecting from servers, please wait...
```

## 相关主题
<a name="chmu-quit-seealso"></a>
+ [cloudhsm\$1mgmt\$1util 入门](cloudhsm_mgmt_util-getting-started.md)

# 使用 CM AWS CloudHSM U 共享密钥
<a name="cloudhsm_mgmt_util-shareKey"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util 中的**shareKey**命令与其他加密用户共享和取消共享您拥有的密钥。只有密钥所有者才能共享和取消共享密钥。您还可以在创建密钥时共享它。

共享密钥的用户可在加密操作中使用密钥，但他们无法删除、导出、共享或取消共享密钥，也无法更改密钥的属性。对某个密钥启用仲裁身份验证后，仲裁必须对共享或取消共享该密钥的任何操作进行审批。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="shareKey-userType"></a>

以下类型的用户均可运行此命令。
+ 加密用户 (CU)

## 语法
<a name="shareKey-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

**用户类型**：加密用户 (CU)

```
shareKey <key handle> <user id> <(share/unshare key?) 1/0>
```

## 示例
<a name="shareKey-examples"></a>

以下示例说明如何使用 **shareKey** 与其他加密用户共享和取消共享您拥有的密钥。

**Example ：共享密钥**  
此示例**shareKey**用于与上的另一个加密用户共享当前用户拥有的 [ECC 私钥](key_mgmt_util-genSymKey.md)。 HSMs公有密钥对 HSM 的所有用户都可用，因此您无法共享或取消共享它们。  
第一个命令[getKeyInfo](cloudhsm_mgmt_util-getKeyInfo.md)用于获取密钥的用户信息`262177`，即上的 ECC 私钥。 HSMs  
输出表明密钥 `262177` 由用户 3 拥有但未共享。  

```
aws-cloudhsm>getKeyInfo 262177

Key Info on server 0(10.0.3.10):

        Token/Flash Key,

        Owned by user 3

Key Info on server 1(10.0.3.6):

        Token/Flash Key,

        Owned by user 3
```
此命令用于**shareKey**`262177`与用户（另一个加密用户`4`）共享密钥 HSMs。最后一个参数使用值 `1` 来指示共享操作。  
输出显示集群 HSMs 中的两个操作均成功。  

```
aws-cloudhsm>shareKey 262177 4 1
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)?y
shareKey success on server 0(10.0.3.10)
shareKey success on server 1(10.0.3.6)
```
为了验证该操作是否成功，本示例再次执行了第一个 **getKeyInfo** 命令。  
输出表明密钥 `262177` 现在与用户 `4` 共享。  

```
aws-cloudhsm>getKeyInfo 262177

Key Info on server 0(10.0.3.10):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 1 user(s):

                 4
Key Info on server 1(10.0.3.6):

        Token/Flash Key,

        Owned by user 3

        also, shared to following 1 user(s):

                 4
```

**Example ：取消共享密钥**  
本示例将取消共享一个对称密钥，即从该密钥的共享用户列表中删除某个加密用户。  
此命令使用 **shareKey** 从密钥 `6` 的共享用户列表中删除用户 `4`。最后一个参数使用值 `0` 来指示取消共享操作。  
输出显示命令对两者都成功执行 HSMs。因此，用户 `4` 无法再在加密操作中使用密钥 `6`。  

```
aws-cloudhsm>shareKey 6 4 0
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)?y
shareKey success on server 0(10.0.3.10)
shareKey success on server 1(10.0.3.6)
```

## 参数
<a name="shareKey-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
shareKey <key handle> <user id> <(share/unshare key?) 1/0>
```

**<key-handle>**  
指定您拥有的密钥的密钥句柄。您在每个命令中只能指定一个密钥。要获取密钥的密钥句柄，请使用 key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)。要验证您是否拥有密钥，请使用[getKeyInfo](cloudhsm_mgmt_util-getKeyInfo.md)。  
是否必需：是

**<user id>**  
指定您要与之共享或取消共享密钥的加密用户 (CU) 的用户 ID。要查找某个用户的用户 ID，请使用 [listUsers](cloudhsm_mgmt_util-listUsers.md)。  
是否必需：是

**<share 1 or unshare 0>**  
要与指定用户共享密钥，请键入 `1`。要取消共享密钥，即从密钥的共享用户列表中删除指定用户，请键入 `0`。  
是否必需：是

## 相关主题
<a name="shareKey-seealso"></a>
+ [getKeyInfo](cloudhsm_mgmt_util-getKeyInfo.md)

# 使用 CMU 在 AWS CloudHSM 集群中同步密钥
<a name="cloudhsm_mgmt_util-syncKey"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util 中的**syncKey**命令在集群内的 HSM 实例之间或克隆的集群之间手动同步密钥。通常，您不需要使用此命令，因为 HSM 集群中的实例会自动同步密钥。但是，跨克隆集群的密钥同步必须手动完成。为了简化全球扩展和灾难恢复流程，克隆集群通常在不同的 AWS 区域创建。

您不能使用 **syncKey** 跨任意集群同步密钥：一个集群必须已从其他集群的备份中创建。此外，这两个集群必须具有一致的 CO 和 CU 凭证，操作才能成功。有关更多信息，请参阅 [HSM 用户](understanding-users-cmu.md)。

要使用**syncKey**，必须先[创建一个 AWS CloudHSM 配置文件](cloned-clusters.md)，指定源集群中的一个 HSM 和目标集群中的一个 HSM。这将允许 cloudhsm\$1mgmt\$1util 连接到这两个 HSM 实例。使用此配置文件启动 cloudhsm\$1mgmt\$1util。然后，使用拥有您要同步的密钥的 CO 或 CU 的凭证登录。

## 用户类型
<a name="syncKey-userType"></a>

以下类型的用户均可运行此命令。
+ 加密员（CO）
+ 加密用户 (CU)

**注意**  
COs 可以在任何按键**syncKey**上使用，而 CUs 只能在他们拥有的密钥上使用此命令。有关更多信息，请参阅 [AWS CloudHSM 管理实用程序的 HSM 用户类型](understanding-users-cmu.md)。

## 先决条件
<a name="syncKey-prereqs"></a>

在开始之前，您必须知道要与目标 HSM 密钥同步的源 HSM 上的密钥的 `key handle`。要查找 `key handle`，请使用 [listUsers](cloudhsm_mgmt_util-listUsers.md) 命令列出命名用户的所有标识符。然后，使用[findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)命令查找属于特定用户的所有密钥。

您还需要知道`server IDs`分配给源和目标的值 HSMs，它们显示在启动时由 cloudhsm\$1mgmt\$1util 返回的跟踪输出中。它们的分配顺序与它们在配置文件中的 HSMs 显示顺序相同。

按照跨克隆的集群[使用 CMU Across Cloned Clusters ](cloned-clusters.md)中的说明进行操作，并使用新的配置文件初始化 cloudhsm\$1mgmt\$1util。然后，通过发出 [server](cloudhsm_mgmt_util-server.md) 命令在源 HSM 上进入服务器模式。

## 语法
<a name="syncKey-syntax"></a>

**注意**  
要运行 **syncKey**，请先在 HSM 上进入服务器模式，其中包含要同步的密钥。

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

**用户类型**：加密用户 (CU)

```
syncKey <key handle> <destination hsm>
```

## 示例
<a name="syncKey-example"></a>

运行 **server** 命令登录到源 HSM，并进入服务器模式。对于此示例，我们假设 `server 0` 是源 HSM。

```
aws-cloudhsm> server 0
```

现在运行 **syncKey** 命令。在本示例中，我们假定密钥 `261251` 将同步到 `server 1`。

```
aws-cloudhsm> syncKey 261251 1
syncKey success
```

## 参数
<a name="syncKey-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
syncKey <key handle> <destination hsm>
```

**<key handle>**  
指定要同步的密钥的密钥句柄。您在每个命令中只能指定一个密钥。要获取密钥的密钥句柄，请在登录 HSM 服务器[findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)时使用。  
是否必需：是

**<destination hsm>**  
指定要同步密钥的服务器的编号。  
是否必需：是

## 相关主题
<a name="chmu-syncKey-seealso"></a>
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)
+ [描述中的集群](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html) AWS CLI
+ [服务器](cloudhsm_mgmt_util-server.md)

# 使用 CMU 在 AWS CloudHSM 集群中同步用户
<a name="cloudhsm_mgmt_util-syncUser"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util 中的**syncUser**命令在集群内的 HSM 实例之间或克隆的集群之间手动同步加密用户 (CUs) 或加密官员 (COs)。 AWS CloudHSM 不会自动同步用户。通常，您可以在全局模式下管理用户，以便集群 HSMs 中的所有用户一起更新。如果 HSM 意外不同步（例如，由于密码更改）或者您希望在克隆的集群之间轮换用户凭证，则可能需要使用 **syncUser**。克隆集群通常在不同的 AWS 区域创建，以简化全球扩展和灾难恢复流程。

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="syncUser-userType"></a>

以下类型的用户均可运行此命令。
+ 加密员（CO）

## 先决条件
<a name="syncUey-prereqs"></a>

在开始之前，您必须知道要与目标 HSM 同步的源 HSM 上的用户的 `user ID`。要查找`user ID`，请使用 [listUser](cloudhsm_mgmt_util-listUsers.md) s 命令列出集群 HSMs 中的所有用户。

您还需要知道`server ID`分配给源和目标的值 HSMs，它们显示在启动时由 cloudhsm\$1mgmt\$1util 返回的跟踪输出中。它们的分配顺序与它们在配置文件中的 HSMs 显示顺序相同。

如果您要跨克隆集群进行同步，请按照 HSMs 跨克隆集群使用 CM [U 中的说明进行操作，并使用新的配置文件初始化 cloudhsm\$1](cloned-clusters.md) mgmt\$1util。

当您准备好运行 **syncUser** 时，通过发出 [**server**](cloudhsm_mgmt_util-server.md) 命令在源 HSM 上进入服务器模式。

## 语法
<a name="syncUser-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
syncUser <user ID> <server ID>
```

## 示例
<a name="syncUser-example"></a>

运行 **server** 命令登录到源 HSM，并进入服务器模式。对于此示例，我们假设 `server 0` 是源 HSM。

```
aws-cloudhsm> server 0
```

立即运行 **syncUser** 命令。对于此示例，我们假定用户 `6` 是要同步的用户，`server 1` 是目标 HSM。

```
server 0> syncUser 6 1
ExtractMaskedObject: 0x0 !
InsertMaskedObject: 0x0 !
syncUser success
```

## 参数
<a name="syncUser-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
syncUser <user ID> <server ID>
```

**<用户 ID>**  
指定要同步的用户的 ID。您在每个命令中只能指定一个用户。要获取用户的 ID，请使用 [listUsers](cloudhsm_mgmt_util-listUsers.md)。  
是否必需：是

**<服务器 ID>**  
指定要将用户同步到的 HSM 的服务器编号。  
是否必需：是

## 相关主题
<a name="chmu-syncUser-seealso"></a>
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [描述中的集群](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html) AWS CLI
+ [服务器](cloudhsm_mgmt_util-server.md)