amazon-web-services - MSK 没有安全性,当创建从 IoT Core 到 Kafka 的规则操作时,它要求我选择安全性,我可以避免这种情况吗?

标签 amazon-web-services aws-cloudformation aws-iot aws-msk

正如问题所述,设置 MSK 时 - 它没有启用安全性,进而导致创建规则本身出现问题。

通过 AWS GUI 创建规则时,必须使用“get_secret 函数”配置操作用户名和密码属性 - 我最初是这样配置 CloudFormation 的:

  IoTCoreToKafkaRule:
    Type: AWS::IoT::TopicRule
    Properties: 
      RuleName: !Sub "IoTCoreToKafkaRule"
      TopicRulePayload: 
        Description: Rule to forward MQTT messages to MSK
        RuleDisabled: false
        AwsIotSqlVersion: "2016-03-23"
        Sql: "SELECT encode(*,'base64') AS message, topic() AS topic FROM 'topic/#'"
        Actions:
          - Kafka:
              DestinationArn: !GetAtt TopicRuleVpcDestination.Arn
              Topic: "iotcore"
              ClientProperties:
                  'sasl.mechanism': SCRAM-SHA-512
                  'security.protocol': SASL_SSL
                  'bootstrap.servers': !Ref BootstrapServers
                  'sasl.scram.password': "DummyUsername"
                  'sasl.scram.username': "DummyPassword"

我认为我可以提供“虚拟”值,并且由于 MSK 没有安全性,因此它在技术上会忽略此配置并让数据通过。现在,我知道有一种情况是“如果删除 bootstrap.servers 之外的所有内容会怎样”——这会导致问题,并且我收到一条错误消息,指出 ClientProperties 需要 SASL_SSL 或 SSL 配置,就像在 AWS GUI 中一样.

有没有办法让我创建规则,而无需在 MSK 上启用 SASL_SSL 或 SSL 安全性?我是否需要创建一个包含任何可以从中提取的奇数值的 Secret,或者是否有更简单的解决方案?

最佳答案

好吧,看来我这些天回答了自己的问题。

事实证明我是对的,尽管如果没有安全性,AWS 无法选择为 Kafka 创建规则,但只要您检索,您就可以使用任何用户名/密码创建值来自 secret 管理员。

使用this repository和我上面的代码,再加上以 ${get_secret("")) 的形式获取密码,我能够满足安全值,但据我所知,除了通常的 VPC/子网/Bootstrap 经纪人,我不需要满足任何其他值。

关于amazon-web-services - MSK 没有安全性,当创建从 IoT Core 到 Kafka 的规则操作时,它要求我选择安全性,我可以避免这种情况吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72446413/

相关文章:

amazon-web-services - Ansible EC2 - 对一组实例执行操作

amazon-web-services - EC2/Route53 : How Do I Point Apex Record at Load Balancer?

mongodb - 已安装 mongoDB 服务器但未找到 mongoimport

aws-cloudformation - Cloudformation 条件以查看是否设置了 SSM 参数

amazon-web-services - 数组 JSON 负载的 AWS IoT 规则查询语句

mysql - 如何连接到我的 Amazon Lightsail 实例上的本地 MySQL?

json - AWS CloudFront - 跨 CloudFront 堆栈导入参数作为 "global"参数

amazon-web-services - @aws_subscribe 注释的目的是什么?

amazon-web-services - SIM 800 GPRS 调制解调器,用于 HTTP GET 和 POST 到 AWS IoT 和 AWS API 网关

amazon-web-services - 如何在 Cloudformation 模板条件中使用 AWS SSM 参数存储值?