Python 用于红移连接的粘合作业:“;找不到合适的安全组“;

Python 用于红移连接的粘合作业:“;找不到合适的安全组“;,python,amazon-web-services,jdbc,amazon-redshift,aws-glue,Python,Amazon Web Services,Jdbc,Amazon Redshift,Aws Glue,我正试图建立一个AWS胶水作业并连接到Redshift 将连接类型设置为红移时出错: “找不到合适的安全组。请将连接类型更改为。” 然后重试添加连接。“ 按照上面所说的,我为我的IAM帐户添加了角色的权限AWSGlueServiceRoleDefault: 然后,我使用匹配的IAM角色设置作业AWSGlueServiceRoleDefault: 我需要将粘合数据存储在Redshift DB中,因此我选择了JDBC,然后添加了一个连接: 我一选择Redshift,它就会抱怨找不到合适的安全组

我正试图建立一个AWS胶水作业并连接到Redshift

将连接类型设置为红移时出错:

“找不到合适的安全组。请将连接类型更改为。” 然后重试添加连接。“

按照上面所说的,我为我的IAM帐户添加了角色的权限
AWSGlueServiceRoleDefault

然后,我使用匹配的IAM角色设置作业
AWSGlueServiceRoleDefault

我需要将粘合数据存储在Redshift DB中,因此我选择了JDBC,然后添加了一个连接:

我一选择Redshift,它就会抱怨找不到合适的安全组。为什么会这样


改用JDBC连接连接到红移。只需确保相应的VPC定义了一个端点。

我在尝试将Glue与Amazon RDS(MySQL)连接时发现了相同的问题,并按照AWS Glue指南解决了它->

简而言之,您应该检查与红移集群关联的安全组是否允许自引用通信

  • 转到红移控制台并选择群集
  • 查看群集属性部分以获取与群集关联的安全组的ID(例如sg-957be3ef)
  • 单击安全组名称跳转到EC2控制台->安全组部分。选择组并修改入站和出站规则添加自引用规则以允许AWS Glue组件通信。
    • 入站规则:选择Type=All TCP,保留默认值,并在Source字段中键入安全组(本例中为sg-957be3ef)
    • 出站规则:与入站规则相同
  • 希望能成功

    您必须创建一个:

    1)
    AWSGlueServiceRole
    role和attach
    s3FullAccess、GlueServiceRole
    RedshiftFullAccess
    策略

    2) 检查是否有vpc端点,如果没有,请创建vpc端点,并确保将子网添加到路由表中。 3) 创建自引用安全组

    现在使用JDBC连接进行连接

    jdbc:type://xxxx:port/databasename
    
    类型为红移/postgresql/etc。。。
    xxxx:server name
    数据库托管的位置。

    设置自引用规则后,我的端点SSH出现问题,需要从0.0.0.0/0将端口打开到22。同样的问题,这个解决方案成功了!谢谢你,先生