更新集群的安全设置 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

更新集群的安全设置

使用此 Amazon MSK 操作更新 MSK 集群的身份验证设置和客户端到代理加密设置。您还可以更新用于签署证书以进行双向 TLS 身份验证的私有安全证书颁发机构。您无法更改集群内 (broker-to-broker) 加密设置。

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

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

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

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

有关安全设置的更多信息,请参阅 Amazon Managed Streaming for Apache Kafka 中的安全性

使用 Amazon Web Services Management Console 更新集群的安全设置

  1. https://console.amazonaws.cn/msk/ 打开 Amazon MSK 控制台。

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

  3. 设置部分中选择编辑

  4. 选择集群所需的身份验证和加密设置,然后选择保存更改

使用 Amazon CLI 更新集群的安全设置

  1. 创建一个 JSON 文件,内含您希望集群具有的加密设置。以下是示例。

    注意

    您只能更新客户端到代理加密设置。您无法更新集群内 (broker-to-broker) 加密设置。

    {"EncryptionInTransit":{"ClientBroker": "TLS"}}
  2. 创建一个 JSON 文件,内含您希望集群具有的身份验证设置。以下是示例。

    {"Sasl":{"Scram":{"Enabled":true}}}
  3. 运行以下 Amazon 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" }
  4. 要查看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 的值为 PENDINGUPDATE_IN_PROGRESS,请等待一段时间,然后再次运行 describe-cluster-operation 命令。

使用 API 更新集群的安全设置

要使用 API 更新集群的安全设置,请参阅UpdateSecurity

注意

用于更新集群安全设置的 Amazon CLI 和 API 操作具有幂等性。这意味着,如果您调用安全更新操作并指定与集群当前设置相同的身份验证或加密设置,则该设置不会更改。