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ètresDatasourceSecurityGroups
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 :
-
Accédez
AWSSupport-TroubleshootGlueConnection
à Systems Manager sous Documents. -
Sélectionnez Execute automation (Exécuter l'automatisation).
-
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é 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
DatasourceSecurityGroups
les deuxDatasourceSubnets
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 utilisationString
future dans cette automatisation. -
GetConnectionData:
Détermine en fonction du type de connexion entre :
RedShift
RdsInstance
,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).
-
-
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é.
-
Références
Systems Manager Automation