【问题标题】:How to unblock Kinesis Firehose CIDR/IP on Redshift Cluster in a VPC?如何解锁 VPC 中 Redshift 集群上的 Kinesis Firehose CIDR/IP?
【发布时间】:2017-01-31 06:33:01
【问题描述】:

我们正在尝试将 AWS Kinesis Firehose 与 Redshift 输出一起使用。我们已经创建了 Firehose Delivery Stream。我们在 VPC 安全组中有一个 Redshift 集群。 但似乎 Firehose 无法连接到集群。

这是我们创建 VPC 安全组的 sn-p。

"RedshiftVPCSecurityGroup": {
  "Type": "AWS::EC2::SecurityGroup",
  "Properties": {
    "SecurityGroupIngress": [
      {
        "CidrIp": "52.19.239.192/27",
        "FromPort": "5439",
        "ToPort": "5439",
        "IpProtocol": "tcp"
      }
    ],
    "VpcId": {
      "Ref": "VpcId"
    },
    "GroupDescription": "Redshift VPC security group"
  }
}

按照这个link,我们设置了一个允许来自“52.19.239.192/27”的连接的入口规则。但这似乎不起作用,我们仍然收到以下错误。

与指定 Amazon Redshift 集群的连接失败。确保安全设置允许 Firehose 连接,确保在 Amazon Redshift 目标配置或 JDBC URL 中指定的集群或数据库正确,并且集群可用。

有谁知道我们做错了什么?

【问题讨论】:

  • 您的集群是否在公共子网中?

标签: amazon-web-services amazon-redshift amazon-kinesis-firehose


【解决方案1】:

我一直在努力解决同样的问题,并且刚刚找到了解决方案。确保为 Redshift 集群创建的集群子网组仅包含公有子网。启动新的 Redshift 集群时,AWS 将随机选择一个分配给集群子网组的子网。如果该子网是私有子网,则 Firehose 无法访问您的 Redshift 集群(它始终位于您的 VPC 之外)。在 Redshift 集群上选择“公开可用”选项将无济于事,将 ACL 或安全组等中的 Firehose IP 地址列入白名单也无济于事。您必须将子网设为公有或仅使用公有子网重新启动集群。

【讨论】:

    【解决方案2】:

    当 FireHose 访问您的 Redshift 集群时,它是从您的 VPC 外部进行的。

    为了让 FireHose 访问您的 Redshift 集群,必须配置以下内容:

    1. Redshift 集群必须位于公共子网中,这意味着它位于具有 Internet 网关的子网中。
    2. Redshift 集群必须有一个公共 IP 地址。
    3. 您的安全组必须允许在端口 5439 上对 FireHose 进行传入访问。

    如果不满足以上两个要求,任何东西都无法从您的 VPC 外部访问 Redshift 集群。

    最后,要限制外部仅访问 FireHose,您可以将端口 5439 的规则限制为 FireHose CIDR 块:

    • 52.70.63.192/27 in us-east-1

    【讨论】:

    • 感谢您的回答。要拥有公共地址,将“可公开访问”选项设置为 true 就足够了吗?还是我们必须使用弹性 IP?
    • 不需要弹性ip。将您的集群设置为“可公开访问”以为其提供公共端点。
    • 对于任何登陆这里寻找Firehose CIDR blocks in other regions的人
    猜你喜欢
    • 1970-01-01
    • 2021-07-16
    • 2021-04-29
    • 2018-06-02
    • 2019-08-25
    • 2016-03-16
    • 2016-04-01
    • 2017-07-20
    相关资源
    最近更新 更多