本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将客户端设置为使用身份验证
此过程描述了如何设置 Amazon EC2 实例以用作使用身份验证的客户端。
此过程介绍了如何通过创建客户端计算机、创建主题和配置所需的安全设置,使用身份验证来生成和使用消息。
-
创建用作客户端计算机的 Amazon EC2 实例。为简单起见,请在用于集群的同一 VPC 中创建此实例。有关如何创建此类客户端计算机的示例,请参阅步骤 3:创建客户端计算机。
-
创建主题。有关示例,请参阅步骤 4:在 Amazon MSK 集群中创建主题下的说明。
-
在已 AWS CLI 安装的计算机上,运行以下命令以获取集群的引导代理。
Cluster-ARN替换为集群的 ARN。aws kafka get-bootstrap-brokers --cluster-arnCluster-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-NameExample-AliasYour-Store-Pass、、和。keytool -genkey -keystore kafka.client.keystore.jks -validity 300 -storepassYour-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 -aliasExample-Alias-storepassYour-Store-Pass-keypassYour-Key-Pass -
打开
client-cert-sign-request文件,并确保该文件的开头为-----BEGIN CERTIFICATE REQUEST-----且结尾为-----END CERTIFICATE REQUEST-----。如果该文件的开头为-----BEGIN NEW CERTIFICATE REQUEST-----,请从文件的开头和结尾处删除单词NEW(及其后面的单个空格)。 -
在已 AWS CLI 安装证书的计算机上,运行以下命令对证书请求进行签名。
Private-CA-ARN替换为您的 PCA 的 ARN。如果需要,您可以更改有效性值。在这里,我们以 300 为例。aws acm-pca issue-certificate --certificate-authority-arnPrivate-CA-ARN--csr fileb://client-cert-sign-request --signing-algorithm "SHA256WITHRSA" --validity Value=300,Type="DAYS"保存响应中提供的证书 ARN。
注意
要检索您的客户端证书,请使用
acm-pca get-certificate命令并指定您的证书 ARN。有关更多信息,请参阅《AWS CLI Command Reference》中的 get-certificate。 -
运行以下命令以获取为您 AWS 私有 CA 签名的证书。
Certificate-ARN替换为您从对上一个命令的响应中获得的 ARN。aws acm-pca get-certificate --certificate-authority-arnPrivate-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 -aliasExample-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-Passssl.key.password=Your-Key-Pass