View a markdown version of this page

AWSSupport-SetupIPMonitoringFromVPC - AWS Systems Manager Référence du dossier d’exploitation Automation

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-SetupIPMonitoringFromVPC

Description

AWSSupport-SetupIPMonitoringFromVPCcrée une instance Amazon Elastic Compute Cloud (Amazon EC2) temporaire exécutant Amazon Linux 2023 dans le sous-réseau spécifié. Le runbook exécute en permanence des tests ping, MTR, traceroute et tracetcp sur les adresses IP cibles sélectionnées (IPv4 ou IPv6). Il stocke les résultats dans des groupes de CloudWatch journaux Amazon et applique des filtres métriques pour visualiser rapidement les statistiques de latence et de perte de paquets dans un CloudWatch tableau de bord.

Coûts supplémentaires

Ce runbook entraîne des frais supplémentaires AWS . Il fournit une instance Amazon EC2, des groupes de CloudWatch journaux et un CloudWatch tableau de bord dans votre compte à l'aide de. AWS CloudFormation L'instance de test s'exécute en continu jusqu'à ce que vous CloudFormation supprimiez la pile. Si vous définissez RetainDashboardAndLogsOnDeletion cette option True (par défaut), le CloudWatch tableau de bord et les groupes de journaux sont conservés après la suppression de la pile. Ces ressources continuent d'être facturées jusqu'à ce que vous les supprimiez manuellement. Pour plus de détails sur les tarifs, consultez les sections Tarification Amazon EC2 et Amazon CloudWatch Pricing.

Informations supplémentaires

Vous pouvez utiliser les résultats des tests dans Amazon CloudWatch Logs pour résoudre les problèmes du réseau et analyser les modèles et les tendances. En outre, vous pouvez configurer les CloudWatch alarmes avec les notifications Amazon Simple Notification Service lorsque la perte de paquets ou la latence atteignent un seuil. Vous pouvez également utiliser ces résultats lors de l'ouverture d'un dossier auprès de AWS Support, afin d'isoler rapidement un problème et de réduire le temps de résolution lors de l'investigation d'un problème réseau.

Exécuter cette automatisation (console)

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

LinuxmacOS, Windows

Paramètres

  • 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 lance ce runbook.

  • CloudWatchLogGroupNamePrefix

    Type : Chaîne

    Valeur par défaut : /AWSSupport-SetupIPMonitoringFromVPC

    Description : (Facultatif) Préfixe utilisé pour chaque groupe de CloudWatch journaux créé pour les résultats du test.

  • CloudWatchLogGroupRetentionInDays

    Type : Chaîne

    Valeurs valides : 1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1827 | 3653

    Valeur par défaut : 7

    Description : (Facultatif) nombre de jours pendant lesquels vous souhaitez conserver les résultats de la surveillance du réseau.

  • InstanceType

    Type : Chaîne

    Valeurs valides : t2.micro | t2.small | t2.medium | t2.large | t3.micro | t3.small | t3.medium | t3.large | t4g.micro | t4g.small | t4g.medium | t4g.large

    Par défaut : t3.micro

    Description : (Facultatif) Type d'instance Amazon EC2 pour l'instance de surveillance. Taille recommandée : t3.micro.

  • SubnetId

    Type : Chaîne

    Description : (Obligatoire) ID de sous-réseau pour l'instance de surveillance. Sachez que si vous spécifiez un sous-réseau privé, vous devez vous assurer qu'il existe un accès Internet pour permettre à l'instance de surveillance de configurer le test (par exemple, installer l' CloudWatch agent, interagir avec AWS Systems Manager et CloudWatch).

  • TargetIPs

    Type : Chaîne

    Description : Comma-separated liste (obligatoire) des adresses IPv4 ou IPv6 à surveiller. Les espaces ne sont pas autorisés. La taille maximale est de 255 caractères. Sachez que si vous fournissez une adresse IP non valide, l'automatisation échouera et annulera la configuration de test.

  • TestInstanceSecurityGroupId

    Type : Chaîne

    Description : (Facultatif) L'ID du groupe de sécurité pour l'instance de test. Si ce n'est pas spécifié, l'automatisation en crée une lors de la création de l'instance. Assurez-vous que le groupe de sécurité autorise l'accès sortant aux adresses IP de surveillance.

  • TestInstanceProfileName

    Type : Chaîne

    Description : (Facultatif) Nom d'un profil d' Gestion des identités et des accès AWS instance existant pour l'instance de test. Si ce n'est pas spécifié, l'automatisation en crée une lors de la création de l'instance. Le rôle doit disposer des autorisations suivantes : logs:CreateLogStreamlogs:DescribeLogGroups,logs:DescribeLogStreams, logs:PutLogEvents et de la politique AWS géréeAmazonSSMManagedInstanceCore.

  • TestInterval

    Type : Chaîne

    Description : (Facultatif) Le nombre de minutes entre les intervalles de test. La valeur par défaut est 1 minute et la valeur maximale est 10 minutes.

  • RetainDashboardAndLogsOnDeletion

    Type : Chaîne

    Description : (Facultatif) Spécifiez False la suppression du CloudWatch tableau de bord et des groupes de journaux lors de la suppression de la CloudFormation pile. La valeur par défaut est True. Par défaut, le runbook conserve le tableau de bord et les journaux. Vous devez les supprimer manuellement lorsqu'ils ne sont plus nécessaires.

Autorisations IAM requises

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

Avertissement

Il est recommandé de transmettre les TestInstanceProfileName paramètres ou de s'assurer que des garde-fous de sécurité sont en place pour empêcher toute utilisation abusive des autorisations IAM modifiables.

Il est recommandé que la politique gérée par AmazonSSMAutomationRoleIAM soit attachée à l'utilisateur qui exécute l'automatisation. En outre, l'utilisateur doit disposer de la stratégie suivante associée à son compte utilisateur, groupe ou rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:GetRolePolicy", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile", "iam:PutRolePolicy", "iam:TagRole" ], "Resource": [ "arn:aws:iam::111122223333:role/SetupIPMonitoringFromVPC*", "arn:aws:iam::111122223333:instance-profile/SetupIPMonitoringFromVPC*" ], "Effect": "Allow" }, { "Action": [ "cloudformation:CreateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudwatch:PutDashboard", "cloudwatch:DeleteDashboards", "ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeInstanceTypes", "ec2:DescribeVpcs", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DescribeInstanceStatus", "ec2:CreateTags", "ec2:AssignIpv6Addresses", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeLaunchTemplates", "ec2:RevokeSecurityGroupEgress", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "logs:TagResource", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:GetParameters", "ssm:SendCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

Si le TestInstanceProfileName paramètre est fourni, les autorisations IAM suivantes ne sont pas requises pour exécuter le runbook :

  • iam : CreateRole

  • iam : CreateInstanceProfile

  • iam : DetachRolePolicy

  • iam : AttachRolePolicy

  • iam : AddRoleToInstanceProfile

  • iam : RemoveRoleFromInstanceProfile

  • iam : DeleteRole

  • iam : DeleteRolePolicy

  • iam : DeleteInstanceProfile

Étapes de document

  1. aws:executeAwsApi- décrivez le sous-réseau fourni pour obtenir l'ID du VPC et l'état d'association des blocs d'adresse CIDR IPv6.

  2. aws:executeScript- validez que les adresses IP cibles fournies sont des adresses and/or IPv6 IPv4 syntaxiquement correctes, obtenez l'architecture du type d'instance sélectionné et vérifiez que le sous-réseau possède une association de pool IPv6 si une adresse IP cible est IPv6.

  3. aws:createStack- créez une CloudFormation pile qui approvisionne l'instance Amazon EC2 de test, le profil d'instance IAM (s'il n'est pas fourni), le groupe de sécurité (s'il n'est pas fourni), les groupes de CloudWatch journaux et le tableau de bord. CloudWatch

    (Nettoyage) Si l'étape échoue :

    aws:executeScript- décrivez les événements de la CloudFormation pile pour identifier la cause de la panne.

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  4. aws:waitForAwsResourceProperty- attendez que la création de la CloudFormation pile soit terminée.

    (Nettoyage) Si l'étape échoue :

    aws:executeScript- décrivez les événements de la CloudFormation pile pour identifier la cause de la panne.

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  5. aws:executeScript- décrivez les ressources de la CloudFormation pile pour obtenir l'ID de l'instance de test, l'ID du groupe de sécurité, le rôle IAM, le profil de l'instance et le nom du tableau de bord.

    (Nettoyage) Si l'étape échoue :

    aws:executeScript- décrivez les événements de la CloudFormation pile pour identifier la cause de la panne.

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  6. aws:waitForAwsResourceProperty- attendez que l'instance de test devienne une instance gérée.

    (Nettoyage) Si l'étape échoue :

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  7. aws:runCommand- installez l' CloudWatch agentmtr, et traceroute sur l'instance de test.

    (Nettoyage) Si l'étape échoue :

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  8. aws:runCommand- définissez les scripts de test réseau (MTR, ping, tracepath et traceroute) pour chacune des adresses IP fournies.

    (Nettoyage) Si l'étape échoue :

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  9. aws:runCommand- lancez les tests du réseau et planifiez les exécutions suivantes à l'aide de minuteries Systemd qui s'exécutent toutes les TestInterval minutes.

    (Nettoyage) Si l'étape échoue :

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  10. aws:runCommand- configurez l' CloudWatch agent pour transférer les résultats des tests /home/ec2-user/logs/ vers CloudWatch Logs.

    (Nettoyage) Si l'étape échoue :

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  11. aws:runCommand- configurez la rotation du journal pour les résultats des tests dans/home/ec2-user/logs/.

  12. aws:executeScript- définissez la politique de rétention pour tous les groupes de CloudWatch journaux créés par la CloudFormation pile.

  13. aws:executeScript- créer des filtres métriques pour les groupes de CloudWatch journaux pour la latence du ping et la perte de paquets ping.

    (Nettoyage) Si l'étape échoue :

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  14. aws:executeScript- mettez à jour le CloudWatch tableau de bord pour inclure des widgets pour les statistiques de latence et de perte de paquets ping.

    (Nettoyage) Si l'étape échoue :

    aws:executeAwsApi- supprimez le CloudWatch tableau de bord, s'il existe.

    aws:deleteStack- supprimez la CloudFormation pile et toutes les ressources associées.

  15. aws:branch- évaluer le SleepTime paramètre. S'il est défini sur0, l'automatisation se termine sans supprimer la pile.

  16. aws:sleep- attendez la SleepTime durée spécifiée avant de supprimer la CloudFormation pile.

  17. aws:deleteStack- supprimez la CloudFormation pile. En fonction du RetainDashboardAndLogsOnDeletion paramètre, le CloudWatch tableau de bord et les groupes de journaux sont conservés ou supprimés.

    (Nettoyage) Si la suppression de la pile échoue :

    aws:executeScript- décrivez les événements de la CloudFormation pile pour identifier la raison de l'échec de suppression.

Sorties

update CloudWatchDashboard.StackUrl  : URL de la CloudFormation pile.

update CloudWatchDashboard.DashboardUrl  : URL du CloudWatch tableau de bord.

update CloudWatchDashboard.DashboardName  : nom du CloudWatch tableau de bord.

update CloudWatchDashboard.LogGroups  : liste des groupes de CloudWatch journaux créés.

describe StackResources.HelperInstanceId  : l'ID de l'instance de test.

describe StackResources.StackName - le nom de la CloudFormation pile.