使用 CDK 创建的 AWS Glue JDBC 连接需要在控制台中输入密码才能生效

Krz*_*ski 5 amazon-web-services aws-glue aws-cdk aws-glue-connection

我正在 Glue 中使用用户名和密码的机密创建 JDBC 连接。我可以在控制台中看到用户名是从秘密中正确读取的,所以这不是问题。一旦我编辑详细信息并在控制台中输入密码,它就会生效。我的做法有问题吗?

glue.CfnConnection(
        self,
        id="JDBCConnection",
        catalog_id=self.account,
        connection_input=glue.CfnConnection.ConnectionInputProperty(
            name="jdbc_connection",
            connection_type="JDBC",
            physical_connection_requirements=glue.CfnConnection.PhysicalConnectionRequirementsProperty(
                subnet_id=cdk.Fn.import_value("PrivateSubnet1"),
                security_group_id_list=[jdbc_connection_security_group.attr_group_id],
            ),
            connection_properties={
                "JDBC_CONNECTION_URL": "jdbc:<JDBC_URL>",
                "USERNAME": "{{resolve:secretsmanager:jdbc_username}}",
                "PASSWORD": "{{resolve:secretsmanager:jdbc_password}}",
            },
        ),
)
Run Code Online (Sandbox Code Playgroud)

tam*_*ama 5

就我而言,我缺少 SSL 和可用区。我发现有用的一个工具是使用 来aws cli获取有关先前创建的(或 cdk 创建的和控制台更新的)有效连接的信息。

$> aws glue get-connection --name <connection-name> --profile <profile-name>

这列出了有关可接受(工作)连接的完整信息。

{
    "Connection": {
        "Name": "<connection-name>",
        "Description": "<description>",
        "ConnectionType": "JDBC",
        "ConnectionProperties": {
            "JDBC_CONNECTION_URL": "<full-url>",
            "JDBC_ENFORCE_SSL": "false",
            "PASSWORD": "<password>",
            "USERNAME": "<username>"
        },
        "PhysicalConnectionRequirements": {
            "SubnetId": "<subnet>",
            "SecurityGroupIdList": [
                "<sec-group>",
                "<sec-group>"
            ],
            "AvailabilityZone": "us-west-2a"
        },
        "CreationTime": "<timestamp-w-tz>",
        "LastUpdatedTime": "<timestamp-w-tz>"
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现我丢了ConnectionProperties钥匙JDBC_ENFORNCE_SSL和PhysicalConnectionRequirements钥匙AvailabilityZone。

一旦我在 CDK 中设置它们,创建的连接就会按预期工作。