

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

# 更新 Amazon MSK 集群的安全设置
<a name="msk-update-security"></a>

使用 [UpdateSecurity](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-security.html#UpdateSecurity)Amazon MSK 操作更新 MSK 集群的身份验证和客户端代理加密设置。您还可以更新用于签署证书以进行双向 TLS 身份验证的私有安全证书颁发机构。您无法更改集群内 (broker-to-broker) 加密设置。

集群必须处于 `ACTIVE` 状态才能更新安全设置。

如果启用使用 IAM、SASL 或 TLS 的身份验证，您还必须开启客户端和代理之间的加密。下表显示了可能的组合。


****  

| 身份验证 | 客户端到代理加密选项 | 代理到代理加密 | 
| --- | --- | --- | 
| 无身份验证 | TLS、PLAINTEXT、TLS\$1PLAINTEXT | 可以开启或关闭。 | 
| mTLS | TLS、TLS\$1PLAINTEX | 必须打开。 | 
| SASL/SCRAM | TLS | 必须打开。 | 
| SASL/IAM | TLS | 必须打开。 | 

当客户端到代理加密设置为 `TLS_PLAINTEXT`，且客户端到身份验证设置为 `mTLS` 时，Amazon MSK 会创建两种类型的侦听器供客户端连接：一种是供客户端在使用 mTLS 身份验证和 TLS 加密的情况下进行连接，另一种是供客户端在不使用身份验证或加密的情况下进行连接（明文）。

有关安全设置的更多信息，请参阅[Amazon MSK 中的安全性](security.md)。

# 使用更新 Amazon MSK 集群安全设置 AWS 管理控制台
<a name="update-security-console"></a>

1. 登录并在[https://console.aws.amazon.com/msk/家中打开 Amazon MSK 控制台？ AWS 管理控制台 region=us](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/)-east-1\$1/home/。

1. 选择要更新的 MSK 集群。

1. 在**设置**部分中选择**编辑**。

1. 选择集群所需的身份验证和加密设置，然后选择**保存更改**。

# 使用更新 Amazon MSK 集群安全设置 AWS CLI
<a name="update-security-cli"></a>

1. 创建一个 JSON 文件，内含您希望集群具有的加密设置。示例如下：
**注意**  
您只能更新客户端到代理加密设置。您无法更新集群内 (broker-to-broker) 加密设置。

   ```
   {"EncryptionInTransit":{"ClientBroker": "TLS"}}
   ```

1. 创建一个 JSON 文件，内含您希望集群具有的身份验证设置。示例如下：

   ```
   {"Sasl":{"Scram":{"Enabled":true}}}
   ```

1. 运行以下 AWS CLI 命令：

   ```
   aws kafka update-security --cluster-arn ClusterArn --current-version Current-Cluster-Version --client-authentication file://Path-to-Authentication-Settings-JSON-File --encryption-info file://Path-to-Encryption-Settings-JSON-File
   ```

   该 `update-security` 操作的输出如以下 JSON 所示：

   ```
   {
       
       "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
       "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef"
   }
   ```

1. 要查看`update-security`操作的状态，请运行以下命令，*ClusterOperationArn*替换为在命令输出中获得的 ARN。`update-security`

   ```
   aws kafka describe-cluster-operation --cluster-operation-arn ClusterOperationArn
   ```

   该 `describe-cluster-operation` 命令的输出如以下 JSON 示例所示。

   ```
   {
       "ClusterOperationInfo": {
           "ClientRequestId": "c0b7af47-8591-45b5-9c0c-909a1a2c99ea",
           "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
           "CreationTime": "2021-09-17T02:35:47.753000+00:00",
           "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef",
           "OperationState": "PENDING",
           "OperationType": "UPDATE_SECURITY",
           "SourceClusterInfo": {},
           "TargetClusterInfo": {}
       }
   }
   ```

   如果 `OperationState` 的值为 `PENDING` 或 `UPDATE_IN_PROGRESS`，请等待一段时间，然后再次运行 `describe-cluster-operation` 命令。

**注意**  
用于更新集群安全设置的 AWS CLI 和 API 操作是等效的。这意味着，如果您调用安全更新操作并指定与集群当前设置相同的身份验证或加密设置，则该设置不会更改。

# 使用 API 更新集群的安全设置
<a name="update-security-api"></a>

要使用 API 更新 Amazon MSK 集群的安全设置，请参阅[UpdateSecurity](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-security.html#UpdateSecurity)。

**注意**  
用于更新 MSK 集群安全设置的 AWS CLI 和 API 操作是等效的。这意味着，如果您调用安全更新操作并指定与集群当前设置相同的身份验证或加密设置，则该设置不会更改。