本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将客户端设置为使用身份验证
此过程描述了如何设置 Amazon EC2 实例以用作客户端来使用身份验证。
此过程介绍了如何通过创建客户端计算机、创建主题和配置所需的安全设置,使用身份验证来生成和使用消息。
-
创建用作客户端计算机的 Amazon EC2 实例。为简单起见,请在用于集群的同一 VPC 中创建此实例。有关如何创建此类客户端计算机的示例,请参阅步骤 3:创建客户端计算机。
-
创建主题。有关示例,请参阅步骤 4:在 Amazon MSK 集群中创建主题下的说明。
-
在已 Amazon CLI 安装的计算机上,运行以下命令以获取集群的引导代理。将
Cluster-ARN
替换为您的集群的 ARN。aws kafka get-bootstrap-brokers --cluster-arn
Cluster-ARN
保存与响应中的
BootstrapBrokerStringTls
关联的字符串。 -
在客户端计算机上,运行以下命令以使用 JVM 信任存储来创建客户端信任存储。如果您的 JVM 路径不同,请相应地调整命令。
cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre/lib/security/cacerts kafka.client.truststore.jks
-
在客户端计算机上,运行以下命令为客户端创建私有密钥。用您选择
Your-Key-Pass
的字符串替换Distinguished-Name
Example-Alias
Your-Store-Pass
、、和。keytool -genkey -keystore kafka.client.keystore.jks -validity 300 -storepass
Your-Store-Pass
-keypassYour-Key-Pass
-dname "CN=Distinguished-Name
" -aliasExample-Alias
-storetype pkcs12 -keyalg rsa -
在客户端计算机上,运行以下命令以使用您在上一步中创建的私有密钥创建证书请求。
keytool -keystore kafka.client.keystore.jks -certreq -file client-cert-sign-request -alias
Example-Alias
-storepassYour-Store-Pass
-keypassYour-Key-Pass
-
打开
client-cert-sign-request
文件,并确保该文件的开头为-----BEGIN CERTIFICATE REQUEST-----
且结尾为-----END CERTIFICATE REQUEST-----
。如果该文件的开头为-----BEGIN NEW CERTIFICATE REQUEST-----
,请从文件的开头和结尾处删除单词NEW
(及其后面的单个空格)。 -
在已 Amazon CLI 安装证书的计算机上,运行以下命令对证书请求进行签名。
Private-CA-ARN
替换为您的 PCA 的 ARN。如果需要,您可以更改有效性值。在这里,我们以 300 为例。aws acm-pca issue-certificate --certificate-authority-arn
Private-CA-ARN
--csr fileb://client-cert-sign-request --signing-algorithm "SHA256WITHRSA" --validity Value=300,Type="DAYS"保存响应中提供的证书 ARN。
注意
要检索您的客户端证书,请使用
acm-pca get-certificate
命令并指定您的证书 ARN。有关更多信息,请参阅《Amazon CLI Command Reference》中的 get-certificate。 -
运行以下命令,获取为您 Amazon 私有 CA 签名的证书。
Certificate-ARN
替换为您从对上一个命令的响应中获得的 ARN。aws acm-pca get-certificate --certificate-authority-arn
Private-CA-ARN
--certificate-arnCertificate-ARN
-
从运行上一条命令所获得的 JSON 结果中,复制与
Certificate
和CertificateChain
关联的字符串。将这两个字符串粘贴到名为的新文件中 signed-certificate-from-acm。先粘贴与Certificate
关联的字符串,然后粘贴与CertificateChain
关联的字符串。将\n
字符替换为新行。以下是将证书和证书链粘贴到其中之后的文件结构。-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
-
在客户端计算机上运行以下命令将此证书添加到您的密钥库中,以便能在与 MSK 代理交流时出示此证书。
keytool -keystore kafka.client.keystore.jks -import -file signed-certificate-from-acm -alias
Example-Alias
-storepassYour-Store-Pass
-keypassYour-Key-Pass
-
使用以下内容创建名为
client.properties
的文件。将信任存储和密钥库位置调整为您将kafka.client.truststore.jks
保存到的路径。用您的 Kafka 客户端版本替{YOUR KAFKA VERSION}
换占位符。security.protocol=SSL ssl.truststore.location=/tmp/kafka_2.12-
{YOUR KAFKA VERSION}
/kafka.client.truststore.jks ssl.keystore.location=/tmp/kafka_2.12-{YOUR KAFKA VERSION}
/kafka.client.keystore.jks ssl.keystore.password=Your-Store-Pass
ssl.key.password=Your-Key-Pass