跳到主要内容

Kafka AWS IAM 访问控制

本文介绍在连接到 AWS MSK 时,CloudCanal 如何配置 IAM 访问控制。

简述

AWS MSK 是 Amazon 托管的 Kafka 实例。AWS 提供统一的访问控制机制 IAM,允许账户中的资源相互配置各自的权限。CloudCanal 内置了对 AWS IAM 访问控制的支持,本文简要介绍如何配置。

操作步骤

信息

当使用 IAM 方式连接到 AWS MSK,AWS MSK 内置的 ACL 规则不会生效,权限由 IAM 策略/角色决定。

为 AWS MSK 配置 IAM 访问控制

确保对应 AWS MSK 实例的配置中,已启用 IAM 访问控制,并已经为对应的 IAM 角色/用户配置了访问权限。可以参考:

获取 Bootstrap Server

在 AWS MSK 控制台中,找到对应 MSK 集群,进入集群详情页面,客户端连接地址即为 Bootstrap Server。

配置 CloudCanal

CloudCanal 同时支持 默认凭据具名凭据 的方式发起连接。
使用具名凭据发起连接时,您可以在同一个 Sidecar 上以不同身份同时连接到多个 AWS MSK 集群。

  1. 创建一个 Kafka / AWS MSK 数据源,并填写:
    • 网络地址:填写之前获取的 Bootstrap Server
    • 认证方式:选择
    • 额外参数:仅填写customClientProps为以下值
信息

参数 customClientProps:自定义传入到 Kafka Client 参数,以最高优先级生效。该配置项如果与其他参数重复,将以 customClientProps 中的配置为准生效。

{
"security.protocol": "SASL_SSL",
"sasl.mechanism": "AWS_MSK_IAM",
"sasl.jaas.config": "software.amazon.msk.auth.iam.IAMLoginModule required;",
"sasl.client.callback.handler.class": "software.amazon.msk.auth.iam.IAMClientCallbackHandler"
}
  1. 点击添加数据源。
  2. 在数据源列表页面测试连接是否成功。
信息

当使用此方式发起连接时,用于鉴权的凭据不由 CloudCanal 提供和控制,而是由 AWS 的 IAM SDK 处理。其凭据搜索链如下:

  1. 环境变量:AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。
  2. Java 系统属性:aws.accessKeyId 和 aws.secretKey。
  3. 来自环境或容器的 Web 身份令牌凭据。
  4. 默认凭证配置文件:通常位于 ~/.aws/credentials(位置可能因平台而异),并被许多 AWS SDK 和 AWS CLI 共享使用。
  5. Amazon ECS 容器凭证:当环境变量 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 被设置时,从 Amazon ECS 加载。
  6. 实例配置文件凭证:用于 EC2 实例,通过 Amazon EC2 元数据服务提供。
联系我们
微信二维码

扫码添加微信,获取技术支持