Не удалось подключиться к AWS Glue для подключения к DataBrew.

Я пытаюсь начать работу с AWS Databrew, используя подключение к Redshift. Я добавил подключение к AWS Glue, и оно работает во время тестирования. Когда databrew пытается использовать это соединение, выдается следующая ошибка. И датабрю, и клей находятся в одном регионе.

      {"error":"Failure reading from input connection AwsGlueDataBrew-databrew-to-redshift with \"public.table\": Unable to reach AWS Glue to get connection AwsGlueDataBrew-databrew-to-redshift. Exception: Connect timeout on endpoint URL: \"https://glue.us-west-2.amazonaws.com/\""}

Политика, связанная с проектами, выглядит следующим образом:

      {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetPartitions",
                "glue:GetTable",
                "glue:GetTables",
                "glue:GetConnection"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::databrew-public-datasets-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeRouteTables",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcAttribute",
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteNetworkInterface",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/aws-glue-service-resource": "*"
                }
            },
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:DeleteTags"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "aws-glue-service-resource"
                    ]
                }
            },
            "Resource": [
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws-glue-databrew/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "lakeformation:GetDataAccess"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:*:*:secret:databrew!default-*"
        }
    ]
}

Может ли кто-нибудь помочь мне решить эту проблему?

Спасибо.

1 ответ

Это происходит из-за того, что сервис DataBrew пытается получить доступ к конечной точке сервиса AWS Glue, когда вы пытаетесь использовать проект/задание. (Функциональность тестового подключения AWS Glue работает иначе)

У вас есть два способа решить эту проблему

  1. Подключите конечную точку VPC для сервиса AWS Glue в своем VPC. Это обеспечит безопасный доступ к сервису Glue.
  2. Откройте свое VPC для общедоступного Интернета, чтобы любой трафик из вашего VPC мог проходить через Интернет, а вызовы API к службе Glue выполнялись успешно.

Я рекомендую вариант № 1, так как он более безопасен (и проще), но сопряжен с некоторыми накладными расходами.

Другие вопросы по тегам