AWS MSK(Amazon Managed Streaming for Kafka)是一个托管的 Apache Kafka 服务。在 AWS MSK 上,身份验证和授权可以通过 AWS Identity and Access Management(IAM)或者使用用户名/密码进行配置。
以下是一个使用用户名/密码身份验证和授权的 AWS MSK 解决方法,包含代码示例:
配置 AWS MSK 群集 首先,创建一个 AWS MSK 群集并记录集群的 ARN(资源标识符)和 ZooKeeper 连接字符串。可以使用 AWS 管理控制台、AWS CLI 或者 AWS SDK 进行配置。
创建 IAM 策略 为了使用用户名/密码进行身份验证和授权,需要创建一个 IAM 策略,用于授予访问 AWS MSK 的权限。以下是一个允许对指定 AWS MSK 群集进行操作的策略示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kafka:DescribeCluster",
"kafka:GetBootstrapBrokers",
"kafka:ListNodes",
"kafka:DescribeConfiguration",
"kafka:DescribeConfigurationRevision",
"kafka:GetBootstrapBrokers",
"kafka:ListClusterOperations",
"kafka:ListClusters",
"kafka:ListConfigurationRevisions",
"kafka:ListConfigurations",
"kafka:ListNodes",
"kafka:UpdateBrokerCount",
"kafka:UpdateBrokerStorage",
"kafka:UpdateClusterConfiguration",
"kafka:UpdateMonitoring",
"kafka:UpdateSecurity"
],
"Resource": "arn:aws:kafka:::cluster/"
}
]
}
请注意,将
替换为您的 AWS 区域,
替换为您的 AWS 账户 ID,
替换为您的 AWS MSK 群集名称。
创建 IAM 用户并附加策略 使用 AWS 管理控制台、AWS CLI 或者 AWS SDK 创建一个 IAM 用户,并将上一步创建的 IAM 策略附加到该用户。
生成用户名/密码 使用 AWS Secrets Manager 或其他安全存储服务生成一个用户名/密码对。将这些凭据保存在安全的位置,并确保仅授权的用户可以访问。
在 Kafka 客户端配置中使用用户名/密码 在使用 Kafka 客户端连接到 AWS MSK 群集时,可以使用用户名/密码进行身份验证。以下是使用 Java 的 Kafka 客户端示例代码:
Properties properties = new Properties();
properties.put("bootstrap.servers", "your-bootstrap-broker-list");
properties.put("security.protocol", "SASL_SSL");
properties.put("sasl.mechanism", "PLAIN");
properties.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"your-username\" password=\"your-password\";");
KafkaProducer producer = new KafkaProducer<>(properties, new StringSerializer(), new StringSerializer());
请将 your-bootstrap-broker-list
替换为您的 AWS MSK 群集的 Bootstrap 服务器列表,your-username
和 your-password
替换为之前生成的用户名和密码。
这样,您就可以使用用户名/密码进行身份验证和授权访问 AWS MSK 群集了。请注意,不建议在生产环境中以明文方式存储密码,建议使用安全存储服务(如 AWS Secrets Manager)来保存和管理凭据。
希望这个解决方法可以帮助到您!