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-TroubleshootMSKClusterConnection
Description
Le AWSSupport-TroubleshootMSKClusterConnection runbook diagnostique et aide à résoudre les problèmes de connectivité du cluster Amazon Managed Streaming pour Apache Kafka. Il effectue une analyse de l'état des courtiers, une validation de la configuration réseau, des tests de connectivité en direct et une vérification de Gestion des identités et des accès AWS l'authentification.
Comment ça marche
Le runbook effectue les opérations suivantes :
-
Vérification des autorisations : vérifie que le rôle d'exécution dispose de toutes les autorisations requises avant de poursuivre, empêchant ainsi la création partielle de ressources en raison d'autorisations insuffisantes.
-
Analyse du cluster : extrait la configuration et les métadonnées du cluster Amazon MSK pour comprendre l'état actuel du cluster.
-
Bilan de santé des courtiers : analyse les indicateurs de santé des courtiers fournis par Amazon CloudWatch afin d'identifier les problèmes de performance tels qu'un processeur, une mémoire, une utilisation du disque ou un solde créditeur épuisé.
-
Tests de connectivité en direct : déploie une AWS CloudFormation pile avec une VPC-attached AWS Lambda fonction Amazon pour tester la résolution DNS et la connectivité TCP au cluster Amazon MSK depuis l'environnement réseau du client.
-
Analyse du chemin réseau : utilise Amazon VPC Reachability Analyzer pour diagnostiquer les problèmes de connectivité réseau entre le client et les courtiers Amazon MSK lorsque les tests de connectivité échouent.
-
Analyse statique du réseau : effectue une analyse de secours des tables de routage, des ACL réseau et des règles des groupes de sécurité lorsque les tests Lambda ne sont pas disponibles.
-
Vérification de l'authentification IAM : pour les IAM-authenticated connexions (ports
9098ou9198), analyse les politiques IAM afin de vérifier les autorisations requises, en particulier leskafka-cluster:Connectautorisations. -
Nettoyage des ressources : supprime automatiquement la CloudFormation pile et les ressources associées créées pour les tests.
-
Rapports complets : Compile les résultats avec des recommandations exploitables pour résoudre les problèmes identifiés.
Des frais s'appliquent pour Amazon VPC Reachability Analyzer
Ce runbook utilise Amazon VPC Reachability Analyzer pour diagnostiquer les problèmes de connectivité réseau. Chaque analyse entraîne des frais. Pour obtenir des informations tarifaires actuelles, consultez la rubrique Tarification https://aws.amazon.com/vpc/pricing/
Paramètres du document
-
AutomationAssumeRole
Type : Chaîne
Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle 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.
-
ClusterARNType : Chaîne
Description : (Obligatoire) Le nom de la ressource Amazon du cluster Amazon MSK à résoudre.
Schéma autorisé :
^arn:(aws|aws-cn|aws-us-gov):kafka:[a-z0-9\-]+:\d{12,13}:cluster\/[a-zA-Z0-9\-]{1,64}\/[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}(-[0-9a-z]{1,2})?$ -
BootstrapEndpointsType : Chaîne
Description : (Obligatoire) Le ou les points de terminaison d'amorçage du cluster Amazon MSK. Accepte un seul point de terminaison au
hostname:portformat ou plusieurs points de terminaison séparés par des virgules (par exemple,).broker1.example.com:9092,broker2.example.com:9092,broker3.example.com:9092Schéma autorisé :
^[a-zA-Z0-9.-]+:[0-9]{1,5}(,[a-zA-Z0-9.-]+:[0-9]{1,5})*$ -
ClientVPCType : Chaîne
Description : (Obligatoire) L'identifiant Amazon VPC sur lequel réside le client qui tente de se connecter.
Schéma autorisé :
^vpc-[a-z0-9]{8,17}$ -
ClientSubnetType : Chaîne
Description : (Obligatoire) L'ID de sous-réseau où réside le client qui tente de se connecter.
Schéma autorisé :
^subnet-[a-z0-9]{8,17}$ -
ClientSecurityGroupsType : Chaîne
Description : (Obligatoire) Identifiant (s) du ou des groupes de sécurité du client qui tente de se connecter. Accepte un seul groupe de sécurité ou plusieurs groupes de sécurité séparés par des virgules (par exemple,
sg-abcd1234,sg-0abcdef1234567890).Schéma autorisé :
^sg-[a-z0-9]{8,17}(,sg-[a-z0-9]{8,17})*$ -
LambdaAssumeRoleType :
AWS::IAM::Role::ArnDescription : (Facultatif) ARN du rôle IAM pour l'exécution de fonctions Lambda avec des autorisations d'accès Amazon VPC. S'il n'est pas fourni, l'automatisation crée un nouveau rôle avec les autorisations requises.
Par défaut : chaîne vide
Schéma autorisé :
^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b|aws-iso-e|aws-iso-f|aws-eusc):iam::\d{12}:role/[\w+=,.@/-]+$ -
ClientIAMRoleType :
AWS::IAM::Role::ArnDescription : (Facultatif) ARN du rôle IAM utilisé par le client pour l'authentification Amazon MSK. Nécessaire uniquement lors du dépannage IAM-authenticated des connexions (ports 9098 ou 9198).
Par défaut : chaîne vide
Schéma autorisé :
^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b|aws-iso-e|aws-iso-f|aws-eusc):iam::\d{12}:role/[\w+=,.@/-]+$ -
RetainResourcesType : Boolean
Description : (Facultatif) S'il faut conserver les ressources de Network Insights Analysis une fois l'opération terminée. Définissez cette option
truepour conserver les ressources d'analyse pour un examen plus approfondi, oufalsepour les supprimer automatiquement.Valeur par défaut :
falseValeurs valides :
true,false
Autorisations IAM requises
Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook.
L'automatisation nécessite les autorisations suivantes :
-
Autorisations Amazon MSK :
-
kafka:DescribeClusterV2 -
kafka:GetBootstrapBrokers
-
-
CloudWatch autorisations :
-
cloudwatch:GetMetricData
-
-
CloudFormation autorisations :
-
cloudformation:CreateStack -
cloudformation:DescribeStacks -
cloudformation:DescribeStackResources -
cloudformation:DeleteStack
-
-
Autorisations Lambda :
-
lambda:CreateFunction -
lambda:InvokeFunction -
lambda:GetFunction -
lambda:DeleteFunction -
lambda:UpdateFunctionConfiguration -
lambda:TagResource
-
-
Autorisations Amazon EC2 et Amazon VPC :
-
ec2:DescribeNetworkInterfaces -
ec2:DescribeSecurityGroups -
ec2:DescribeSubnets -
ec2:DescribeVpcs -
ec2:DescribeRouteTables -
ec2:DescribeNetworkAcls -
ec2:CreateNetworkInsightsPath -
ec2:StartNetworkInsightsAnalysis -
ec2:DescribeNetworkInsightsPaths -
ec2:DescribeNetworkInsightsAnalyses -
ec2:DeleteNetworkInsightsPath -
ec2:DeleteNetworkInsightsAnalysis -
ec2:DeleteNetworkInterface
-
-
Autorisations IAM (requises uniquement lorsqu'elles ne
LambdaAssumeRolesont pas fournies) :-
iam:CreateRole -
iam:PutRolePolicy -
iam:AttachRolePolicy -
iam:GetRole -
iam:TagRole -
iam:PassRole -
iam:DeleteRole -
iam:DeleteRolePolicy -
iam:DetachRolePolicy
-
-
Autorisations IAM (pour l'analyse de l'authentification IAM lorsqu'elles sont
ClientIAMRolefournies) :-
iam:GetRole -
iam:GetRolePolicy -
iam:ListRolePolicies -
iam:ListAttachedRolePolicies -
iam:GetPolicy -
iam:GetPolicyVersion
-
-
CloudWatch Autorisations relatives aux journaux :
-
logs:CreateLogGroup -
logs:CreateLogStream -
logs:PutLogEvents -
logs:DeleteLogGroup
-
Pour exécuter ce runbook, le AutomationAssumeRole ou votre utilisateur IAM a besoin des actions suivantes. L'exemple suivant illustre une politique IAM de moindre privilège qui étend les autorisations à des modèles de ressources spécifiques utilisés par l'automatisation :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers" ], "Resource": "arn:aws:kafka:REGION:ACCOUNTID:cluster/*/*" }, { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeNetworkAcls", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:CreateNetworkInsightsPath", "ec2:StartNetworkInsightsAnalysis", "ec2:DescribeNetworkInsightsPaths", "ec2:DescribeNetworkInsightsAnalyses", "ec2:DeleteNetworkInsightsPath", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackResources" ], "Resource": "arn:aws:cloudformation:REGION:ACCOUNTID:stack/msk-connectivity-test-stack-*/*" }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:UpdateFunctionConfiguration", "lambda:TagResource" ], "Resource": "arn:aws:lambda:REGION:ACCOUNTID:function:msk-connectivity-test-*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:ListAttachedRolePolicies", "iam:GetPolicy", "iam:GetPolicyVersion" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:TagRole" ], "Resource": "arn:aws:iam::ACCOUNTID:role/msk-connectivity-test-*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::ACCOUNTID:role/msk-connectivity-test-*", "Condition": { "StringEquals": { "iam:PassedToService": "lambda.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DeleteLogGroup" ], "Resource": "arn:aws:logs:REGION:ACCOUNTID:log-group:/aws/lambda/msk-connectivity-test-*" } ] }
Instructions
-
Accédez à la AWSSupport-TroubleshootMSKClusterConnection
page dans la AWS Systems Manager console. -
Choisissez Execute automation (Exécuter l’automatisation).
-
Pour les paramètres d'entrée, entrez les informations suivantes :
-
AutomationAssumeRole(Facultatif) :L'ARN du rôle IAM qui permet à AWS 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.
-
ClusterARN(Obligatoire) :Entrez l'ARN du cluster Amazon MSK qui rencontre des problèmes de connectivité. Vous pouvez le trouver dans la console Amazon MSK ou à l'aide de la
aws kafka list-clusterscommande. -
BootstrapEndpoints(Obligatoire) :Entrez le ou les points de terminaison du broker Bootstrap pour votre cluster Amazon MSK. Vous pouvez les trouver dans la console Amazon MSK sous Détails du cluster, ou en utilisant la
aws kafka get-bootstrap-brokerscommande. Pour plusieurs courtiers, séparez-les par des virgules (par exemple,b-1.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092,b-2.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092). -
ClientVPC(Obligatoire) :Entrez l'identifiant Amazon VPC où se trouve votre application cliente ou votre ressource qui tente de se connecter au cluster Amazon MSK.
-
ClientSubnet(Obligatoire) :Entrez l'ID de sous-réseau dans
ClientVPClequel se trouve votre ressource client. Ceci est utilisé pour le déploiement de la fonction Lambda de test de connectivité. -
ClientSecurityGroups(Obligatoire) :Entrez le ou les ID de groupe de sécurité associés à votre ressource client. Pour plusieurs groupes de sécurité, séparez-les par des virgules (par exemple,
sg-abc123,sg-def456). -
LambdaAssumeRole(Facultatif) :Si vous disposez d'un rôle IAM préconfiguré avec exécution Lambda et autorisations d'accès Amazon VPC, indiquez son ARN ici. Si vous laissez ce champ vide, l'automatisation crée un rôle temporaire pour le test de connectivité.
-
ClientIAMRole(Facultatif) :Pour les IAM-authenticated connexions (utilisant les ports 9098 ou 9198), indiquez l'ARN du rôle IAM que votre client utilise pour s'authentifier auprès d'Amazon MSK. Cela permet à l'automatisation d'analyser les autorisations IAM pour l'accès Amazon MSK requis.
-
RetainResources(Facultatif) :Définissez cette option
truesi vous souhaitez conserver les informations, les chemins et les analyses du réseau Amazon VPC Reachability Analyzer pour des recherches plus approfondies. Réglez surfalse(par défaut) pour nettoyer automatiquement ces ressources une fois l'automatisation terminée.
-
-
Sélectionnez Execute (Exécuter).
-
Surveillez l'exécution de l'automatisation. Le runbook se termine généralement en 5 à 15 minutes, selon la complexité de l'analyse du réseau requise.
-
Consultez la section Résultats pour obtenir des résultats détaillés :
-
BrokerHealthIssues: Liste des problèmes de performance des courtiers identifiés (processeur, mémoire, utilisation du disque, épuisement du crédit).
-
NetworkConnectivityIssues: Network-related problèmes tels que des erreurs de configuration des groupes de sécurité, des restrictions NACL, des problèmes de routage ou des résultats de l'analyse d'accessibilité d'Amazon VPC.
-
IAMAuthenticationIssues: problèmes d'autorisation IAM pour les IAM-authenticated connexions, notamment autorisations manquantes ou insuffisantes. -
AuthenticationDocumentation: liens vers la AWS documentation pertinente pour résoudre les problèmes d'authentification.
-
TroubleshootingSummary: résumé complet avec des recommandations pratiques pour résoudre tous les problèmes identifiés.
-
Problèmes courants et résolutions
-
Mauvaise configuration du groupe de sécurité : assurez-vous que le groupe de sécurité du client autorise le trafic sortant vers le groupe de sécurité du cluster Amazon MSK sur le port approprié (
9092pourPLAINTEXT,9094pourTLSSASL_SCRAM,9096pour ou90989198pourSASL_IAMIAM over).TLSLe groupe de sécurité du cluster Amazon MSK doit autoriser le trafic entrant en provenance du groupe de sécurité du client. -
Restrictions ACL réseau : vérifiez que l'ACL réseau du sous-réseau autorise à la fois le trafic entrant et sortant pour les ports requis. N'oubliez pas que les NACL sont apatrides et nécessitent des règles dans les deux sens.
-
Problèmes de routage : assurez-vous que le sous-réseau client dispose d'un itinéraire pour atteindre les adresses IP privées du cluster Amazon MSK, généralement via une table de routage avec l'adresse CIDR Amazon VPC locale.
-
Échecs d'authentification IAM : pour IAM-authenticated les connexions, vérifiez que le rôle IAM du client comporte l'
kafka-cluster:Connectaction dans sa politique avec l'ARN de cluster approprié comme ressource. -
Problèmes liés aux performances des courtiers : si les courtiers affichent une utilisation élevée des ressources, envisagez d'augmenter le nombre de types d'instances de courtier, d'ajouter d'autres courtiers ou d'optimiser producer/consumer les configurations.
-
Échecs de résolution DNS : vérifiez que la résolution DNS est activée sur le client Amazon VPC (activez DnsHostnames et activez sur DnsSupport true dans les paramètres Amazon VPC).
Résolution des problèmes liés à l'automatisation
-
Si l'automatisation échoue lors de la création de la CloudFormation pile, vérifiez que le rôle d'exécution dispose des autorisations IAM requises pour créer des fonctions Lambda, des rôles IAM et des interfaces réseau.
-
Si la fonction Lambda de test de connectivité ne parvient pas à être invoquée, vérifiez que les ClientSubnet adresses IP sont disponibles et qu'elles ClientSecurityGroups autorisent les connexions sortantes nécessaires.
-
Si l'analyse d'Amazon VPC Reachability Analyzer échoue, assurez-vous de ne pas avoir dépassé les quotas de service pour les chemins ou les analyses du réseau dans votre région.
-
Si l'analyse des politiques IAM échoue, vérifiez que l'
ClientIAMRoleARN est correct et que le rôle d'automatisation est autorisé à récupérer les politiques du rôle.
Ressources
Systems Manager Automation