

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

# 更新 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 身分驗證憑證的私有安全性授權機構。您無法變更叢集內 (代理程式對代理程式) 加密設定。

叢集必須處於 `ACTIVE` 狀態，才能更新其安全設定。

如果您開啟使用 IAM、SASL 或 TLS 進行身分驗證，您也必須開啟用戶端和代理程式之間的加密。下表顯示可能的組合。


****  

| 身分驗證 | 用戶端-代理程式加密選項 | 代理程式-代理程式加密 | 
| --- | --- | --- | 
| Unauthenticated | TLS、PLAINTEXT、TLS\$1PLAINTEXT | 可以開啟或關閉。 | 
| mTLS | TLS、TLS\$1PLAINTEXT | 必須為開啟。 | 
| SASL/SCRAM | TLS | 必須為開啟。 | 
| SASL/IAM | TLS | 必須為開啟。 | 

如果用戶端-代理程式加密設定為 `TLS_PLAINTEXT` 且用戶端-身分驗證設定為 `mTLS`，Amazon MSK 會建立兩種類型的接聽程式以供用戶端連線：一個接聽程式供用戶端使用帶 TLS 加密的 mTLS 身分驗證進行連線，另一個接聽程式供用戶端在不使用身分驗證或加密 (純文字) 的情況下進行連線。

如需有關安全設定的詳細資訊，請參閱 [Amazon MSK 的安全性](security.md)。

# 使用 更新 Amazon MSK 叢集安全設定 AWS 管理主控台
<a name="update-security-console"></a>

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/msk/home?region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/) 開啟 Amazon MSK 主控台。

1. 選擇您要更新的 MSK 叢集。

1. 在**安全設定**區段中，選擇**編輯**。

1. 選擇您要用於叢集的身分驗證和加密設定，然後選擇**儲存變更**。

# 使用 更新 Amazon MSK 叢集安全設定 AWS CLI
<a name="update-security-cli"></a>

1. 建立 JSON 檔案，其中包含您想要叢集擁有的加密設定。下列是 範例。
**注意**  
您只能更新用戶端-代理程式加密設定。無法更新叢集內 (代理程式對代理程式) 加密設定。

   ```
   {"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` 操作的狀態，請執行下列命令，使用您在 `update-security` 命令輸出中取得的 ARN 取代 *ClusterOperationArn*。

   ```
   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 操作是等冪的。這表示，如果您調用安全更新操作，並指定與叢集目前擁有之設定相同的身分驗證或加密設定，則該設定不會變更。