本地kafak集群需要读取aws-kafka的topic数据,可以参考aws官网指引,完成数据接入。
下面摘取官网说明:
可以使用登录凭证来控制对 Amazon MSK 集群的访问权限,这些凭证使用存储和保护 AWS Secrets Manager。将用户凭证存储在 Secrets Manager 中可以减少集群身份验证的开销,例如审计、更新和轮换凭证。Secrets Manager 还能够跨集群共享用户凭证。
工作方式
Amazon 的登录凭证身份验证MSK使用SASL/SCRAM(简单身份验证和安全层/Salted Challenge 响应机制)身份验证。要为群集设置登录凭据身份验证,请在中创建一个 Secret 资源 并将登录凭据与该密钥相关联。
SCRAM使用安全的哈希算法,并且不在客户端和服务器之间传输纯文本登录凭证。
当您为集群设置SASL/SCRAM身份验证时,Amazon MSK 会为客户端和代理之间的所有流量启用TLS加密。
为 Amazon MSK 集群设置SASL/SCRAM身份验证
在为 Amazon MSK 集群创建密钥时,请注意以下要求:
(1)为密钥类型选择其他类型的密API钥(例如密钥)。
(2)机密名称必须以前缀 Amazon MSK _ 开头。
(3)必须使用现有的自定义设置 AWS KMS 键入或创建新的自定义 AWS KMS 你的秘密的密钥。Secrets Manager 使用默认值 AWS KMS 默认情况下,密钥是密钥。
使用默认值创建的密钥 AWS KMS 密钥不能用于 Amazon MSK 集群。
(4)您的登录凭证数据必须采用以下格式,才能使用明文选项输入键值对。
{
"username": "alice",
"password": "alice-secret"
}
(5)记录您的密钥的ARN(Amazon 资源名称)值。
不能将 Secrets Manager 密钥与超出 调整集群的大小:每个代理的分区数量 中所述限制的集群关联。
(6)如果您将 AWS CLI 要创建密钥,请ARN为kms-key-id参数指定密钥 ID 或。不要指定别名。
(7)要将密钥与您的集群关联,请使用 Amazon MSK 控制台或 BatchAssociateScramSecret操作。
以下BatchAssociateScramSecret操作的示例JSON输入将密钥与集群相关联:
{
"clusterArn" : "arn:aws:kafka:us-west-2:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4",
"secretArnList": [
"arn:aws:secretsmanager:us-west-2:0123456789019:secret:AmazonMSK_MyClusterSecret"
]
}
使用登录凭证连接到集群
在创建密钥并将其与集群关联后,您便可以将客户端连接到集群。以下示例步骤演示如何将客户端连接到使用SASL/SCRAM身份验证的集群,以及如何使用示例主题。
1.在装有... 的计算机上运行以下命令 AWS CLI已安装,正在更换 clusterARN 与您的ARN集群的。
aws kafka get-bootstrap-brokers --cluster-arn clusterARN
2.要创建示例主题,请运行以下命令,替换 BootstrapServerString 使用您在上一步中获得的代理端点之一。
<path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server BootstrapServerString --replication-factor 3 --partitions 1 --topic ExampleTopicName
3.在您的客户端计算机上,创建一个包含存储在您的密钥中的用户凭据的JAAS配置文件。例如,对于用户 alice,使用以下内容创建一个名为 users_jaas.conf 的文件。
KafkaClient {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="alice"
password="alice-secret";
};
4.使用以下命令将您的JAAS配置文件导出为KAFKA_OPTS环境参数。
export KAFKA_OPTS=-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf
5.在 ./tmp 目录中创建一个名为 kafka.client.truststore.jks 的文件。
6.使用以下命令将JDK密钥库文件从您的JVMcacerts文件夹复制到您在上一步中创建kafka.client.truststore.jks的文件中。Replace(替换) JDKFolder 使用您的实例上JDK文件夹的名称。例如,您的JDK文件夹可能被命名为java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64。
cp /usr/lib/jvm/JDKFolder/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks
7.在 Apache Kafka 安装的 bin 目录中,创建一个名为 client_sasl.properties 的客户端属性文件,其中包含以下内容。此文件定义了SASL机制和协议。
#JKS文件很重要
security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-512
ssl.truststore.location=<path-to-keystore-file>/kafka.client.truststore.jks
8.使用以下命令检索引导代理字符串。Replace(替换) ClusterArn 使用您的集群的 Amazon 资源名称 (ARN):
aws kafka get-bootstrap-brokers --cluster-arn ClusterArn
根据命令的JSON结果,保存与名为的字符串关联的值BootstrapBrokerStringSaslScram。
9.要生成您创建的示例主题,请在客户端计算机上运行以下命令。Replace(替换) BootstrapBrokerStringSaslScram 使用您在上一步中检索到的值。
<path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringSaslScram --topic ExampleTopicName --producer.config client_sasl.properties
10.要使用您创建的主题,在您的客户端计算机上运行以下命令。Replace(替换) BootstrapBrokerStringSaslScram 使用你之前获得的价值。
<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --from-beginning --consumer.config client_sasl.properties
使用用户
创建用户:您在密钥中以键值对的形式创建用户。在 Secrets Manager 控制台中使用明文选项时,应按以下格式指定登录凭证数据。
{
"username": "alice",
"password": "alice-secret"
}
撤消用户访问权限:要撤消用户访问集群的证书,建议先在集群ACL上删除或强制执行,然后取消关联该密钥。这是因为:
移除用户并不能关闭现有连接。
对密钥的更改最多需要 10 分钟才能传播。
JKS文件
jks是一种数字证书和密钥管理文件。
jks文件是Java KeyStore文件的扩展名,主要用于存储私钥和公钥证书。它通常用于保护应用程序的安全连接,特别是在客户端与服务器之间进行安全通信时。这些文件有助于验证服务器身份,确保安全的数据传输。
此外,jks文件还可以用于存储其他类型的密钥和证书信息,如身份验证和授权相关的数据。
一个jks文件包含了一个或多个密钥条目。每个条目都与特定的别名相关联,并通过加密方式保护其安全。文件内还包含关于如何解密和保护这些密钥的元信息。
通过这种方式,只有具备正确权限和知识的用户才能访问和管理这些密钥和证书。这有助于维护数字安全和保密性。这种文件的最大特点是其强大的加密功能,确保数据的安全性和完整性。
在实际应用中,jks文件通常用于Web服务器、客户端应用程序和其他需要加密保护的系统中。这些系统依赖于jks文件来验证和管理用户身份、加密数据以及在分布式系统中处理各种安全操作。
在企业环境中,特别是在采用公钥基础设施的大型系统中,jks文件的运用十分常见且关键。它们是信息安全和数据保密的关键组成部分。开发人员和管理员通过正确生成、存储和使用这些文件,来确保网络的安全运行。
随着信息技术的不断进步和网络安全需求的增加,jks文件的应用前景将越来越广泛。同时还需要定期进行安全性评估和备份以确保数据安全性和可用性。
网友评论