【问题标题】:Issue with connecting AWS IoT Rule to a MSK Kafka instance in a separate AWS account将 AWS IoT 规则连接到单独 AWS 账户中的 MSK Kafka 实例时出现问题
【发布时间】:2023-01-15 18:27:12
【问题描述】:

预先感谢您的任何帮助!

我的公司使用多个 AWS 账户来分隔区域和“全球”功能/存储。我们最近改用 MQTT IoT 规则,并针对我们处理数据的方式对区域 Kafka 与全球 Kafka 实例进行了测试,确定全球 Kafka 最有意义。

我已经能够正确设置一个区域 Kafka,并将区域 IoT 推送数据(在同一个帐户中),但是当我尝试设置一个具有区域 IoT 推送数据的全局 Kafka 时,它失败了(单独的帐户)。

IoT 规则也不会将任何错误发布到 Cloudwatch Logs,尽管将日志组设置为错误操作。

我们已经设置了一切以使用对等连接并允许 CIDR 访问安全组,并且有许多其他服务从区域到全球运行都很好,但是这个让我们失望了。

我什至能够在与我分配给我的物联网规则相同的 VPC、子网和安全组下的区域中创建一个 EC2 实例,并且它可以很好地从 Kafka 生产和消费。

我唯一能想到的问题是引导程序 URL 在区域内无法访问,或者秘密用户名/密码无法正确访问。秘密已在全局帐户中设置。我正在使用的角色已获得在单独帐户中读取该机密的权限。

arn:aws:iam::12345:角色/测试角色:

{
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret"
            ],
            "Resource": "arn:aws:secretsmanager:region:9876:secret:AmazonMSK_TestSecret"
        }
${get_secret('arn:aws:secretsmanager:region:9876:secret:AmazonMSK_TestSecret', 'SecretString', 'username', 'arn:aws:iam::12345:role/TestRole')}

如果有人熟悉跨帐户读取机密或跨帐户使用 MSK Bootstrap URL,我将不胜感激。

【问题讨论】:

    标签: amazon-web-services apache-kafka aws-iot aws-secrets-manager aws-msk


    【解决方案1】:

    AWS IoT 规则支持跨账户仅适用于有限的服务列表: 亚马逊 SQS、亚马逊 SNS、亚马逊 S3 和 AWS Lambda。

    可以看到这个信息here

    因此,在您的情况下,您必须将数据推送到另一个帐户的 SQS 队列中,然后使用 Lambda 提取数据以便将其提取到 MSK。

    【讨论】:

    • 我所有关于如何做的研究,我从来没有检查它是否被支持。我不太明白为什么会有这种限制,但是嗯。感谢您链接来源!我们决定只使用区域 Kafka,并在必要时加入它们,而不是通过 SQS 路由。
    【解决方案2】:

    就像之前提到的,AWS 不支持它......

    我们通过使用 strimzi 的 MirrorMaker2 跨帐户在集群之间复制事件来解决它(需要 VPC 对等或任何类型的网络连接解决方​​案)

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 2021-11-21
      • 1970-01-01
      • 2020-06-24
      • 2022-11-24
      • 1970-01-01
      • 2021-11-23
      • 2015-04-25
      • 2020-08-10
      相关资源
      最近更新 更多