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 connexion JDBC et peut être un Amazon Relational Database Service (Amazon RDS) cluster/instance, un cluster Amazon Redshift 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 RDS ou Amazon Redshift) est accordée.
Si la cible de la connexion n'est ni Amazon RDS 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 peut être résolu et s'il est accessible sur le port cible.
Important
Afin d'exécuter les vérifications de l'analyseur d'accessibilité, des interfaces réseau élastiques seront créées dans chacun des sous-réseaux de source de données de la connexion. Assurez-vous que vous disposez de suffisamment d'adresses IP libres 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 retrouvées. Les balises utilisées sont les suivantes :
-
AWSSupport-TroubleshootGlueConnection: true -
AutomationExecutionId:Amazon EC2 Systems Manager Execution Id
Fonctionnement
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 contrôles 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 l'URL JDBC ou à partir des
DatasourceSubnetsparamètresDatasourceSecurityGroupset s'ils sont présents. -
Si la source de données présente dans l'URL JDBC est une instance ou un cluster Amazon RDS ou un cluster Amazon Redshift, cette automatisation crée des ENI 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 eux.
-
Une fonction Lambda (point de présence réseau, dans le contexte de cette automatisation) est utilisée pour effectuer des contrôles de connectivité L4 et de résolution de noms.
-
La même fonction Lambda est utilisée pour effectuer les contrôles sur le point de terminaison Amazon S3.
-
Policy Simulator est utilisé pour déterminer si le rôle IAM utilisé dans la connexion possède les autorisations nécessaires.
-
L'automatisme vérifie si le groupe de sécurité utilisé par la connexion possède la configuration attendue.
-
Un rapport contenant les causes possibles de l'échec de l'opération and/or de connexion de test ainsi que les tests réussis qui ont été effectués est généré.
Exécutez cette automatisation (console)
Type de document
Automatisation
Propriétaire
Amazon
Plateformes
/
Autorisations IAM 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, la politique gérée AutomationAssumeRole doit être associée afin AmazonVPCReachabilityAnalyzerFullAccessPolicy que les tests de l'analyseur d'accessibilité soient effectués avec succès.
Voici un exemple de politique qui pourrait être accordée pour AutomationAssumeRole :
Instructions
Pour configurer l'automatisation, procédez comme suit :
-
Accédez à
AWSSupport-TroubleshootGlueConnectionla section Documents dans Systems Manager. -
Sélectionnez Execute automation (Exécuter l'automatisation).
-
Pour les paramètres d'entrée, entrez les informations suivantes :
-
AutomationAssumeRole (Facultatif) :
Le nom de ressource Amazon (ARN) du rôle AWS Gestion des identités et des accès AWS (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 démarre ce runbook.
-
TestConnectionRole (Obligatoire)
Le nom de ressource Amazon (ARN) du rôle IAM utilisé lors du test de connexion.
-
ConnectionName (Obligatoire)
AWS Glue nom de connexion ayant échoué au test que vous souhaitez résoudre.
-
PersistReachabilityAnalyzerResults(Facultatif)
L'indicateur indiquant si les résultats de l'exécution de l'analyseur d'accessibilité doivent être conservés ou non. Valeur par défaut :
false. -
PointOfPresenceLogRetentionPeriod(Facultatif)
Le nombre de jours pendant lesquels les journaux du point de présence Lambda seront conservés. Valeur 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é avec
DatasourceSecurityGroups. 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é avec
DatasourceSubnets. Exemple:sg-1,sg-2.
-
-
Sélectionnez Exécuter.
-
L'automatisation démarre.
-
Le runbook d'automatisation exécute les étapes suivantes :
-
ParseInputs:
Cette étape valide la combinaison des entrées. Si
DatasourceSecurityGroupsles deuxDatasourceSubnetssont 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
SecurityGroupIdListin aStringpour une utilisation future dans cette automatisation. -
GetConnectionData:
Détermine, en fonction de l'URL JDBC, le type de connexion entre :
RedShiftRdsInstance,RdsClusteret.OtherRenvoie également le domaine et le port utilisés dans la connexion JDBC, l'Amazon VPC de la connexion et ses serveurs de noms de domaine. -
GetNetworkDetails:
Obtient les informations sur le sous-réseau et le groupe de sécurité à partir de la cible Amazon RDS ou Amazon Redshift.
-
Créer un modèle ENI :
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.
-
Créez EnisStack :
Crée la CloudFormation pile à partir du modèle créé à l'étape précédente.
-
GetStackDetails:
Décrit la CloudFormation pile créée dans la pile précédente et récupère les
SourceNetworkInterfaceTargetNetworkInterfacesinformations. -
RunSourceToTargetCheck:
Exécute des vérifications entre les ENI source et cible créés à l'étape précédente à l'aide de l'outil Reachability Analyzer.
-
Supprimer EISStack :
Supprime la CloudFormation pile qui crée les interfaces réseau
-
CreateNetworkPointOfPresence:
CloudFormation crée la fonction Lambda utilisée comme point de présence réseau.
-
GetFunctionName:
Exécute un appel d'API CloudFormation describe stack 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 connexion JDBC peut être résolu et accessible sur le port déclaré.
-
Connectivité CheckS3 :
Vérifie la connectivité réseau depuis la AWS Glue connexion au service Amazon S3.
-
DeletePointOfPresence:
Supprime la CloudFormation pile qui crée le point de présence du réseau Lambda.
-
TestIAMRolePermissions:
Vérifie si le rôle IAM utilisé pour le test possède les 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).
-
-
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 dont elles peuvent être corrigées (étapes suivantes). 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 indiquant 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 informant ce qui ne contribue pas au problème.
-
Erreurs d'automatisation
Dans cette section, vous trouverez des scénarios décrivant les problèmes survenus lors de l'automatisation et qui ont pu limiter le nombre de tests que l'automatisation pouvait effectuer. La description du scénario indiquera quelle étape a échoué.
-
Références
Systems Manager Automation