AWSSupport-TroubleshootGlueConnection - AWS Systems Manager Référence du manuel d'automatisation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWSSupport-TroubleshootGlueConnection

Description

Le AWSSupport- TroubleshootGlueConnections runbook permet de résoudre les problèmes de AWS Glue connexion. La cible de la connexion testée doit être atteinte via une JDBC connexion et peut être un cluster/instance Amazon Relational Database Service (RDSAmazon), un cluster ou toute autre cible accessible via. JDBC Dans les deux premiers cas, l'outil Reachability Analyzer est utilisé pour déterminer si la connectivité entre la source AWS Glue() et la cible (Amazon ou RDS Amazon Redshift) est accordée.

Si la cible de la connexion n'est RDS ni Amazon ni Amazon Redshift, la connectivité est tout de même testée en créant une AWS Lambda fonction dans le même sous-réseau que la AWS Glue connexion (un point de présence réseau) et en vérifiant si le nom de la cible est résoluble et s'il est accessible sur le port cible.

Important

Afin d'exécuter les contrôles de Reachability Analyzer, des interfaces réseau élastiques seront créées dans chacun des sous-réseaux de sources de données de la connexion. Assurez-vous de disposer de suffisamment d'espace libre IPs sur ces sous-réseaux et que la consommation d'une adresse IP n'aura pas d'impact sur votre charge de travail avant d'exécuter cette automatisation.

Important

Toutes les ressources créées par cette automatisation sont étiquetées afin de pouvoir être facilement trouvées. Les balises utilisées sont les suivantes :

  • AWSSupport-TroubleshootGlueConnection : true

  • AutomationExecutionId: Amazon EC2 Systems Manager Execution Id

Comment fonctionne-t-il ?

Le runbook exécute les étapes suivantes :

  • Décrit la AWS Glue connexion permettant d'obtenir les informations source (sous-réseau et groupes de sécurité) pour les vérifications de connectivité.

  • Récupère les informations cibles (sous-réseau et groupes de sécurité) à partir de la source de données référencée dans JDBC URL ou à partir des DatasourceSubnets paramètres DatasourceSecurityGroups et s'ils sont présents.

  • Si la source de données présente dans le JDBC URL est une RDS instance ou un cluster Amazon ou un cluster Amazon Redshift, cette automatisation est ENIs créée en utilisant à la fois les informations source et cible collectées lors des étapes précédentes et utilise Reachability Analyzer pour effectuer un contrôle de connectivité entre elles.

  • Une fonction Lambda (point de présence réseau, dans le contexte de cette automatisation) est utilisée pour effectuer des vérifications de connectivité L4 et de résolution de noms.

  • La même fonction Lambda est utilisée pour effectuer les vérifications par rapport au point de terminaison Amazon S3.

  • Le simulateur de politique est utilisé pour déterminer si le IAM rôle utilisé dans la connexion dispose des autorisations nécessaires.

  • L'automatisation vérifie si le groupe de sécurité utilisé par la connexion possède la configuration attendue.

  • Un rapport est généré contenant les causes possibles de l'échec de l'opération de test de connexion et/ou également les tests réussis qui ont été effectués.

Exécuter cette automatisation (console)

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

/

IAMAutorisations requises

Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook.

  • 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

Important

Outre les actions mentionnées ci-dessus, le A AutomationAssumeRole doit être associé à une politique gérée afin mazonVPCReachability AnalyzerFullAccessPolicy que les tests de Reachability Analyzer soient exécutés avec succès.

Voici un exemple de politique qui pourrait être accordée pour AutomationAssumeRole :

{ "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" } } } ] }

Instructions

Pour configurer l'automatisation, procédez comme suit :

  1. Accédez AWSSupport-TroubleshootGlueConnectionà Systems Manager sous Documents.

  2. Sélectionnez Execute automation (Exécuter l'automatisation).

  3. Pour les paramètres d'entrée, entrez ce qui suit :

    • AutomationAssumeRole (Facultatif) :

      Le nom de ressource Amazon (ARN) du rôle AWS AWS Identity and Access Management (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui lance ce runbook.

    • TestConnectionRole (Obligatoire)

      Le nom de ressource Amazon (ARN) du IAM rôle utilisé lors du test de connexion.

    • ConnectionName (Obligatoire)

      AWS Glue nom de connexion au test ayant échoué que vous souhaitez résoudre.

    • PersistReachabilityAnalyzerResults (Facultatif)

      L'indicateur indiquant si les résultats de l'exécution de Reachability Analyzer doivent être conservés ou non. Par défaut : false.

    • PointOfPresenceLogRetentionPeriod (Facultatif)

      Nombre de jours pendant lesquels les journaux du point de présence Lambda seront conservés. Par défaut: 7.

    • DatasourceSubnets (Facultatif)

      Si la source de données d'origine n'est pas disponible, utilisez ce paramètre pour indiquer les sous-réseaux qu'elle a utilisés afin que les tests de connectivité soient toujours effectués. Doit être utilisé avecDatasourceSecurityGroups. Exemple: subnet-1,subnet-2.

    • DatasourceSecurityGroups (Facultatif)

      Si la source de données d'origine n'est pas disponible, utilisez ce paramètre pour indiquer les groupes de sécurité qu'elle a utilisés afin que les tests de connectivité soient toujours effectués. Doit être utilisé avecDatasourceSubnets. Exemple: sg-1,sg-2.

    Input parameters form for AWS Glue connection troubleshooting with various configuration options.
  4. Sélectionnez Exécuter.

  5. L'automatisation démarre.

  6. Le runbook d'automatisation exécute les étapes suivantes :

    • ParseInputs:

      Cette étape valide la combinaison des entrées. Si DatasourceSecurityGroups les deux DatasourceSubnets sont fournis, ils sont valides et renvoyés tels quels. Si aucune n'est fournie, deux listes vides sont renvoyées. Si un seul d'entre eux est fourni, l'étape génère unValueException.

    • GetConnectionDetails:

      Cette étape renvoie les détails de la AWS Glue connexion fournie.

    • ParseSecurityGroupList:

      Cette étape est utilisée pour concaténer le SecurityGroupIdList in a pour une utilisation String future dans cette automatisation.

    • GetConnectionData:

      Détermine en fonction du type de connexion entre : RedShiftRdsInstance, RdsCluster etOther. JDBC URL En outre, renvoie le domaine et le port utilisés dans la JDBC connexion, Amazon de la connexion VPC et ses serveurs de noms de domaine.

    • GetNetworkDetails:

      Obtient les informations du sous-réseau et du groupe de sécurité à partir de la cible Amazon RDS ou Amazon Redshift.

    • C reateENITemplate :

      Génère le AWS CloudFormation modèle utilisé pour créer les interfaces réseau utilisées pour tester la connectivité. Cela est nécessaire pour exécuter l'outil Reachability Analyzer.

    • C reateENIStack :

      Crée la AWS CloudFormation pile à partir du modèle créé à l'étape précédente.

    • GetStackDetails:

      Décrit la AWS CloudFormation pile créée dans la pile précédente et récupère les SourceNetworkInterface TargetNetworkInterfaces informations.

    • RunSourceToTargetCheck:

      Exécute des vérifications entre la source et la cible ENIs créées à l'étape précédente à l'aide de l'outil Reachability Analyzer.

    • D eleteENIStack :

      Supprime la AWS CloudFormation pile qui crée les interfaces réseau

    • CreateNetworkPointOfPresence:

      AWS CloudFormation crée la fonction Lambda utilisée comme point de présence du réseau.

    • GetFunctionName:

      Exécute un API appel de AWS CloudFormation description de la pile pour récupérer le nom de la fonction Lambda créée à l'étape précédente.

    • RunEndpointChecks:

      Utilise le point de présence du réseau pour déterminer si le point de terminaison présent dans la JDBC connexion est résoluble et accessible sur le port déclaré.

    • Vérifie la connectivité 3 :

      Vérifie la connectivité réseau depuis la AWS Glue connexion au service Amazon S3.

    • DeletePointOfPresence:

      Supprime la AWS CloudFormation pile qui crée le point de présence du réseau Lambda.

    • estIAMRoleAutorisations T :

      Vérifie si le IAM rôle utilisé pour le test dispose des autorisations nécessaires pour l'exécuter.

    • CheckConnectionSecurityGroupReferencingRule:

      Vérifie si le groupe de sécurité utilisé dans la AWS Glue connexion autorise tout le trafic entrant depuis lui-même. Il renverra une liste des groupes de sécurité sans cette règle, le cas échéant.

    • GenerateReport:

      Génère un rapport contenant une liste des résultats (raisons possibles de l'échec du test de connexion) et des étapes suivantes (tentatives de résolution de l'échec du test de connexion).

  7. Une fois terminé, consultez la section Sorties pour obtenir les résultats détaillés de l'exécution :

    • Résultats de l'automatisation

      Dans cette section, vous trouverez des scénarios décrivant les causes possibles de l'échec de l'opération de test de connexion (résultats) et la manière de les corriger (prochaines étapes). Si l'automatisation ne trouve pas la cause de l'échec du test, cela sera également indiqué dans cette section.

    • Tests réussis

      Dans cette section, vous trouverez des scénarios expliquant ce qui a été testé avec succès par cette automatisation. Les tests réussis sont utiles si l'automatisation n'est pas en mesure d'identifier la cause de l'échec de la connexion de test, car ils réduisent la portée de l'enquête en indiquant ce qui n'est pas à l'origine du problème.

    • Erreurs d'automatisation

      Dans cette section, vous trouverez des scénarios décrivant les problèmes survenus lors de l'automatisation, qui peuvent avoir limité le nombre de tests que l'automatisation pouvait effectuer. La description du scénario indiquera quelle étape a échoué.

    Troubleshooting results for AWS Glue connection issues with DNS resolution and IAM role problems.

Références

Systems Manager Automation