Quero solucionar um problema de trabalho malsucedido no AWS Glue que se conecta a um cluster Amazon Managed Streaming for Apache Kafka (MSK) em todas as contas da AWS.
Resolução
Verifique se o trabalho do AWS Glue pode se conectar ao cluster do Amazon MSK e, em seguida, solucione o problema do método de autenticação do trabalho do AWS Glue.
Verifique a conectividade entre contas do trabalho do AWS Glue
Para verificar se o trabalho do AWS Glue pode se conectar ao cluster Amazon MSK, execute as seguintes etapas:
- Verifique se a lista de controle de acesso à rede (ACL de rede) da conexão do AWS Glue permite o tráfego para o cluster Amazon MSK na Amazon Virtual Private Cloud (Amazon VPC) entre contas.
- Confirme que o grupo de segurança do cluster Amazon MSK permite a sub-rede CIDR da conexão AWS Glue nas portas do servidor bootstrap do cluster Amazon MSK.
Observação: os grupos de segurança da conexão do AWS Glue devem conter uma regra de entrada autorreferenciada para as portas TCP necessárias.
- Verifique se você configurou corretamente suas conexões de peering de VPC entre o cluster Amazon MSK e as VPCs ou sub-redes da conexão do AWS Glue.
- Use o Reachability Analyzer para verificar se algum componente interfere na conectividade entre as VPCs.
- Execute uma instância do Amazon Elastic Compute Cloud (Amazon EC2) na mesma sub-rede e grupo de segurança que a conexão do AWS Glue usa.
Use o Session Manager, um recurso do AWS Systems Manager, ou um cliente SSH para fazer login na sua instância do EC2. Execute a seguinte consulta:
telnet example-bootstrap-server-hostname example-bootstrap-server-port
nc -zv example-bootstrap-server-hostname example-bootstrap-server-port
dig example-bootstrap-server-hostname
Observação: no comando anterior, substitua os valores de exemplo pelos valores reais. Se o telnet não estiver instalado, execute sudo yum install telnet -y para instalá-lo.
Se a saída contiver conexões conectadas ou estabelecidas, a conectividade do trabalho do AWS Glue será verificada.
Solucionar problemas de autenticação
Para verificar o URL do servidor bootstrap na conexão do AWS Glue, execute as seguintes etapas:
- Obtenha os corretores de bootstrap da Amazon MSK.
- Abra o console do AWS Glue.
- No painel de navegação, em Catálogo de dados, escolha Conexões. Também é possível escolher Conexões de dados no painel de navegação.
- Em Conexões, selecione sua conexão e escolha Ações.
- Na lista suspensa, escolha Editar.
- Em Acesso à conexão, verifique se os URLs do servidor de bootstrap Kafka correspondem aos URLs no console do Amazon MSK.
- Se os URLs não corresponderem, atualize-os de acordo com o método de autenticação usado pelo cluster Amazon MSK. Use os números de porta que correspondem à configuração do seu agente:
Para TLS/SSL, use a porta 9094 para acesso na AWS e a porta 9194 para acesso público.
Para SASL/SCRAM, use a porta 9096 para acesso na AWS e a porta 9196 para acesso público.
- Escolha Salvar alterações.
Em seguida, execute as seguintes ações com base no método de autenticação do cluster Amazon MSK.
SASL/SCRAM-SHA-512
Use o AWS Secrets Manager para verificar seu nome de usuário e senha. Se você usa o Secrets Manager para armazenar suas credenciais, verifique se a sub-rede da conexão do AWS Glue é capaz de se conectar ao endpoint do seu Secret Manager.
Autenticação de cliente TLS/SSL
Para validar o certificado de armazenamento de chaves e a senha do armazenamento de chaves ou senha de chave do cliente Kafka, execute o seguinte comando:
keytool -list -v -keystore /pathtocert/kafka.client.keystore.jks -storepass 123456
Verifique se a saída contém o certificado da AWS Private Certificate Authority (AWS Private CA) que o cluster Amazon MSK usa.
Se a saída não contiver o certificado, execute as etapas 5 a 11 de Configurar um cliente para usar a autenticação para criar novos armazenamentos de chaves.
Importante: Crie novos armazenamentos de chaves para cada cliente com o mesmo certificado privado que o cluster Amazon MSK usa.
Faça o upload do certificado kafka.client.keystore.jks para o Amazon Simple Storage Service (Amazon S3). Em seguida, configure sua conexão do AWS Glue Kafka com o caminho S3 do certificado.
Autenticação do IAM
Verifique se o perfil do AWS Identity and Access Management (IAM) do trabalho do AWS Glue tem a política de autorização correta para o cluster Amazon MSK.
Informações relacionadas
Como criar uma conexão com o Kafka
Streaming de trabalhos de ETL no AWS Glue