View a markdown version of this page

AWSSupport-TroubleshootGlueConnection - AWS Systems Manager Referencia del manual de procedimientos de Automatización

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWSSupport-TroubleshootGlueConnection

Descripción

El AWSSupport-TroubleshootGlueConnections manual ayuda a solucionar problemas AWS Glue de conexión. El destino de la conexión probada debe alcanzarse a través de una conexión JDBC y puede ser un Amazon Relational Database Service (Amazon RDS) cluster/instance, un clúster de Amazon Redshift o cualquier otro destino al que se pueda acceder a través de JDBC. En los dos primeros casos, se utiliza la herramienta Reachability Analyzer para determinar si se concede la conectividad entre el origen (AWS Glue) y el destino (Amazon RDS o Amazon Redshift).

Si el destino de la conexión no es Amazon RDS ni Amazon Redshift, la conectividad se sigue probando creando una AWS Lambda función en la misma subred que la AWS Glue conexión (un punto de presencia de red) y comprobando si el nombre del destino se puede resolver y si se puede acceder a él en el puerto de destino.

importante

Para ejecutar las comprobaciones del analizador de accesibilidad, se crearán las interfaces de Elastic Network en cada una de las subredes de fuentes de datos de la conexión. Asegúrate de tener suficientes IP libres en esas subredes y de que el consumo de una IP no afecte a tu carga de trabajo antes de ejecutar esta automatización.

importante

Todos los recursos creados por esta automatización están etiquetados para que se puedan encontrar fácilmente. Las etiquetas utilizadas son:

  • AWSSupport-TroubleshootGlueConnection: true

  • AutomationExecutionId: Amazon EC2 Systems Manager Execution Id

¿Cómo funciona?

El runbook lleva a cabo los siguientes pasos:

  • Describe la AWS Glue conexión para obtener la información de origen (subred y grupos de seguridad) para las comprobaciones de conectividad.

  • Obtiene la información de destino (subred y grupos de seguridad) de la fuente de datos a la que se hace referencia en la URL de JDBC o de los DatasourceSecurityGroups parámetros y, si están presentes. DatasourceSubnets

  • Si la fuente de datos presente en la URL de JDBC es una instancia o un clúster de Amazon RDS o un clúster de Amazon Redshift, esta automatización crea las ENI utilizando la información de origen y de destino recopilada en los pasos anteriores y utiliza Reachability Analyzer para realizar una comprobación de conectividad entre ellas.

  • Se utiliza una función Lambda (punto de presencia de red, en el contexto de esta automatización) para realizar las comprobaciones de resolución de nombres y conectividad de nivel 4.

  • La misma función de Lambda se utiliza para realizar las comprobaciones en el punto de enlace de Amazon S3.

  • El simulador de políticas se usa para determinar si la función de IAM utilizada en la conexión tiene los permisos necesarios.

  • La automatización comprueba si el grupo de seguridad utilizado por la conexión tiene la configuración esperada.

  • Se genera un informe que contiene las posibles causas del error en la operación de conexión de prueba and/or y las pruebas satisfactorias que se realizaron.

Ejecuta esta automatización (consola)

Tipo de documento

Automatización

Propietario

Amazon

Plataformas

/

Permisos de IAM necesarios

El parámetro AutomationAssumeRole requiere las siguientes acciones para utilizar el manual de procedimientos correctamente.

  • cloudformation:CreateStack

  • cloudformation:DeleteStack

  • ec2:CreateNetworkInsightsPath

  • ec2:CreateNetworkInterface

  • ec2:CreateTags

  • ec2:DeleteNetworkInsightsAnalysis

  • ec2:DeleteNetworkInsightsPath

  • ec2:DeleteNetworkInterface

  • ec2:StartNetworkInsightsAnalysis

  • iam:AttachRolePolicy

  • iam:CreateRole

  • iam:DeleteRole

  • iam:DeleteRolePolicy

  • iam:DetachRolePolicy

  • iam:PutRolePolicy

  • iam:TagRole

  • lambda:CreateFunction

  • lambda:DeleteFunction

  • lambda:TagResource

  • logs:CreateLogGroup

  • logs:DeleteLogGroup

  • logs:PutRetentionPolicy

  • logs:TagResource

  • glue:GetConnection

  • glue:GetDataCatalogEncryptionSettings

  • cloudformation:DescribeStacks

  • cloudformation:DescribeStackEvents

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInsightsPaths

  • ec2:DescribeNetworkInsightsAnalyses

  • ec2:DescribeSecurityGroupRules

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • iam:GetRole

  • iam:ListAttachedRolePolicies

  • iam:SimulatePrincipalPolicy

  • kms:DescribeKey

  • lambda:InvokeFunction

  • lambda:GetFunction

  • s3:GetEncryptionConfiguration

  • iam:PassRole

importante

Además de las acciones mencionadas anteriormente, AutomationAssumeRole debe adjuntarse la política gestionada para que las pruebas del Reachability Analyzer se realicen correctamente. AmazonVPCReachabilityAnalyzerFullAccessPolicy

Este es un ejemplo de una política que podría concederse para: AutomationAssumeRole

JSON
{ "Version":"2012-10-17", "Statement": [{ "Sid": "TaggedAWSResourcesPermissions", "Effect": "Allow", "Condition": { "StringEquals": { "aws:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:TagRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:TagResource", "logs:DeleteLogGroup", "logs:CreateLogGroup", "logs:PutRetentionPolicy", "logs:TagResource", "cloudformation:CreateStack", "cloudformation:DeleteStack" ], "Resource": "*" }, { "Sid": "TaggedEC2ResourcesPermissions", "Effect": "Allow", "Condition": { "StringEquals": { "ec2:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Sid": "PutRolePolicy", "Effect": "Allow", "Condition": { "StringEquals": { "iam:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "*" }, { "Sid": "InvokeFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:*:lambda:*:*:function:point-of-presence-*" }, { "Sid": "UnTaggedActions", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInsightsPath", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInsightsPath", "ec2:CreateNetworkInterface", "ec2:CreateTags", "ec2:StartNetworkInsightsAnalysis", "glue:GetConnection", "glue:GetDataCatalogEncryptionSettings", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInsightsPaths", "ec2:DescribeNetworkInsightsAnalyses", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeVpcAttribute", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:SimulatePrincipalPolicy", "kms:DescribeKey", "lambda:GetFunction", "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:*:iam::*:role/point-of-presence-*", "Condition": { "StringLikeIfExists": { "iam:PassedToService": "lambda.amazonaws.com" } } } ] }

Instrucciones

Siga estos pasos para configurar la automatización:

  1. Navegue hasta AWSSupport-TroubleshootGlueConnection el Administrador de sistemas, en la sección Documentos.

  2. Elija Execute automation (Ejecutar automatización).

  3. Para los parámetros de entrada, introduzca lo siguiente:

    • AutomationAssumeRole (Opcional):

      El nombre de recurso de Amazon (ARN) del rol AWS AWS Identity and Access Management (IAM) que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza los permisos del usuario que inicia este libro de ejecución.

    • TestConnectionRole (Obligatorio)

      El nombre de recurso de Amazon (ARN) del rol de IAM que se utiliza durante la prueba de conexión.

    • ConnectionName (Obligatorio)

      AWS Glue nombre de la conexión de prueba fallida que desea solucionar.

    • PersistReachabilityAnalyzerResults(Opcional)

      El indicador que informa si los resultados de la ejecución del Reachability Analyzer deben conservarse o no. Valor predeterminado: false.

    • PointOfPresenceLogRetentionPeriod(Opcional)

      La cantidad de días durante los que se almacenarán los registros del punto de presencia Lambda. Predeterminado: 7.

    • DatasourceSubnets (Opcional)

      Si la fuente de datos original no está disponible, utilice este parámetro para proporcionar las subredes que utilizó para que se sigan realizando las pruebas de conectividad. Debe usarse con. DatasourceSecurityGroups Ejemplo: subnet-1,subnet-2.

    • DatasourceSecurityGroups (Opcional)

      Si la fuente de datos original no está disponible, utilice este parámetro para indicar los grupos de seguridad que utilizó para que se sigan realizando las pruebas de conectividad. Debe usarse con. DatasourceSubnets Ejemplo: sg-1,sg-2.

    Formulario de parámetros de entrada con campos para AutomationAssumeRole TestConnectionRole, ConnectionName, y otras opciones de configuración.
  4. Seleccione Ejecutar.

  5. Se inicia la automatización.

  6. El manual de procedimientos de automatización realiza los siguientes pasos:

    • ParseInputs:

      Este paso valida la combinación de entradas. Si DatasourceSubnets se proporcionan ambasDatasourceSecurityGroups, son válidas y se devuelven tal cual. Si no se proporciona ninguna, se devuelven dos listas vacías. Si solo se proporciona una de ellas, el paso genera unaValueException.

    • GetConnectionDetails:

      Este paso devuelve los detalles de la AWS Glue conexión proporcionada.

    • ParseSecurityGroupList:

      Este paso se usa para concatenar el SecurityGroupIdList in a String para su uso futuro en esta automatización.

    • GetConnectionData:

      Determina, en función de la URL de JDBC, el tipo de conexión entre:, y. RedShift RdsInstance RdsCluster Other Además, devuelve el dominio y el puerto utilizados en la conexión JDBC, la Amazon VPC de la conexión y sus servidores de nombres de dominio.

    • GetNetworkDetails:

      Obtiene la información de la subred y del grupo de seguridad del destino de Amazon RDS o Amazon Redshift.

    • Cree la plantilla ENI:

      Genera la AWS CloudFormation plantilla utilizada para crear las interfaces de red que se utilizan para probar la conectividad. Esto es necesario para ejecutar la herramienta Reachability Analyzer.

    • Cree EniStack:

      Crea la CloudFormation pila a partir de la plantilla creada en el paso anterior.

    • GetStackDetails:

      Describe la CloudFormation pila creada en la pila anterior y recupera la SourceNetworkInterface TargetNetworkInterfaces información.

    • RunSourceToTargetCheck:

      Realiza comprobaciones entre los ENI de origen y destino creados en el paso anterior mediante la herramienta Reachability Analyzer.

    • Eliminar EniStack:

      Elimina la CloudFormation pila que crea las interfaces de red

    • CreateNetworkPointOfPresence:

      CloudFormation crea la función Lambda utilizada como punto de presencia en la red.

    • GetFunctionName:

      Realiza una llamada a la API de CloudFormation descripción de la pila para recuperar el nombre de la función de Lambda creada en el paso anterior.

    • RunEndpointChecks:

      Usa el punto de presencia de la red para determinar si el punto final presente en la conexión JDBC se puede resolver y se puede acceder a él en el puerto declarado.

    • Comprueba la conectividad de S3:

      Comprueba la conectividad de red desde la AWS Glue conexión al servicio Amazon S3.

    • DeletePointOfPresence:

      Elimina la CloudFormation pila que crea el punto de presencia de la red Lambda.

    • TestIAMRolePermissions:

      Comprueba si la función de IAM utilizada para la prueba tiene los permisos necesarios para ejecutarla.

    • CheckConnectionSecurityGroupReferencingRule:

      Comprueba si el grupo de seguridad utilizado en la AWS Glue conexión permite la entrada de todo el tráfico desde sí mismo. Devolverá una lista de los grupos de seguridad sin esta regla, si la hubiera.

    • GenerateReport:

      Genera un informe que contiene una lista de los resultados (posibles motivos del error en la prueba de conexión) y los pasos siguientes (intentos de resolver el error de la prueba de conexión).

  7. Una vez finalizada, consulte la sección Salidas para ver los resultados detallados de la ejecución:

    • Resultados de la automatización

      En esta sección, encontrará situaciones en las que se describen las posibles causas del error en la operación de conexión de prueba (hallazgos) y cómo se pueden solucionar (pasos siguientes). Si la automatización no puede encontrar la causa del error de la prueba, también se informará al respecto en esta sección.

    • Pruebas exitosas

      En esta sección, encontrará escenarios que indican lo que esta automatización ha probado satisfactoriamente. Las pruebas satisfactorias son útiles en caso de que la automatización no pueda identificar la causa del error de conexión de prueba, ya que reducen el alcance de la investigación al informar qué es lo que no contribuye al problema.

    • Errores de automatización

      En esta sección, encontrará situaciones en las que se describen los problemas que se produjeron durante la automatización y que pueden haber limitado la cantidad de pruebas que la automatización podía realizar. La descripción del escenario indicará qué paso ha fallado.

    AWS Glue los resultados de la automatización de la solución de problemas de conexión muestran problemas de DNS y seguridad. IAM

Referencias

Automatización de Systems Manager