Je souhaite utiliser les fenêtres de maintenance, une fonction d’AWS Systems Manager, pour planifier le démarrage ou l'arrêt de mes instances Amazon Elastic Compute Cloud (Amazon EC2).
Brève description
Pour planifier le démarrage ou l'arrêt de votre instance, enregistrez le dossier d'exploitation AWS-StartEC2Instance ou AWS-StopEC2Instance dans une fenêtre de maintenance. Vous devez disposer des autorisations nécessaires pour exécuter votre dossier d'exploitation.
Remarque : Lorsque vous utilisez Automation, une fonction d'AWS Systems Manager, pour exécuter un dossier d'exploitation, il n'est pas nécessaire que votre instance soit gérée.
Pour redémarrer votre instance immédiatement après son arrêt, définissez les tâches d'arrêt et de démarrage dans la même fenêtre de maintenance. Pour que votre instance demeure arrêtée pendant une durée prédéterminée avant son démarrage, vous devez définir une fenêtre de maintenance distincte pour chaque tâche.
Résolution
Utiliser un rôle IAM avec les autorisations nécessaires pour votre dossier d'exploitation
Pour planifier une fenêtre de maintenance afin de démarrer ou d'arrêter des actions, vous devez utiliser un rôle Gestion des identités et des accès AWS (AWS IAM) avec les autorisations nécessaires pour exécuter votre dossier d'exploitation. Le rôle IAM requiert uniquement les autorisations correspondant au dossier d'exploitation Systems Manager que vous enregistrez dans la fenêtre de maintenance. Par exemple, si vous choisissez d'enregistrer AWS-StartEC2Instance et non AWS-StopEC2Instance, le rôle IAM nécessitera uniquement les autorisations ec2:StartInstances.
Si votre rôle IAM ne dispose pas des autorisations nécessaires, créez-en un. Dans ce cas, pour Service ou cas d'utilisation, sélectionnez Systems Manager ou utilisez un rôle System Manager existant. Puis, ajoutez la politique d'autorisations suivante au rôle :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:StartAutomationExecution",
"ec2:DescribeInstanceStatus"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances"
],
"Resource": "arn:aws:ec2:example_region:example_account_number:instance/example_instance_ID"
}
]
}
Remarque : Remplacez example_region par votre région AWS. Remplacez example_account_number par votre numéro de compte AWS. Remplacez example_instance_ID par le numéro d'identification de votre instance. Vous pouvez ajouter plusieurs ARN séparés par une virgule. L'exemple suivant désigne deux ARN en tant que ressources :
"Resource": "arn:aws:ec2:example_region:example_account_number:instance/example_instance_ID_1", "arn:aws:ec2:example_region:example_account_number:instance/example_instance_ID_2"
Important : Pour les instances ec2:StartInstances et ec2:StopInstances, il est recommandé d'ajouter les ARN de ressources des instances auxquelles vous souhaitez accorder l'accès. Pour en savoir plus, consultez la page Syntaxe des politiques. Si vous avez chiffré des volumes dans votre instance à l'aide d'une clé AWS Key Management Service, ajoutez des autorisations pour cette clé à votre rôle. Pour plus d'informations, consultez la section Lorsque je démarre mon instance Amazon EC2 à laquelle des volumes chiffrés sont attachés, pourquoi est-ce que je reçois l'erreur « client error on launch » ?
Créer une fenêtre de maintenance
Si vous n'avez pas de fenêtre de maintenance, créez-en une. Dans la fenêtre de maintenance, organisez vos tâches dans le champ Priorité des tâches, 0 étant la priorité la plus élevée. Si vous avez déjà une fenêtre de maintenance, passez à la section Enregistrer une tâche d'automatisation.
Pour enregistrer des cibles dans la fenêtre de maintenance, utilisez les options Choisir les instances manuellement ou Choisir un groupe de ressources comme option cible. Pour exécuter la fenêtre de maintenance sur des instances gérées que vous n'avez pas enregistrées comme cibles, sélectionnez Autoriser les cibles non enregistrées. Ne sélectionnez pas l'option Spécifier les identifications d'instance en tant que cible.
Pour en savoir plus, consultez la page Attribuer des cibles à une fenêtre de maintenance via la console.
Enregistrer une tâche d'automatisation
Procédez comme suit :
- Ouvrez la console Systems Manager.
- Dans le volet de navigation, choisissez Fenêtres de maintenance.
- Dans la liste des fenêtres de maintenance, choisissez la fenêtre de maintenance cible.
- Choisissez Actions, puis Enregistrer une tâche d'automatisation.
- (Facultatif) Saisissez un nom et une description dans le champ Détails de la tâche de la fenêtre de maintenance.
- Pour Documents d'automatisation, choisissez AWS-StartEC2Instance ou AWS-StopEC2Instance.
- Pour Version du document, choisissez Version par défaut lors de l'exécution.
- La priorité de la tâche est définie sur 1 par défaut. Si vous avez enregistré plusieurs tâches dans la même fenêtre de maintenance, attribuez-leur différents niveaux de priorité pour établir un ordre d'exécution.
- Pour Cibles, si vous avez enregistré des instances cibles pour la fenêtre de maintenance, choisissez Sélection des groupes cibles enregistrés. Si vous n'avez pas enregistré d'instances cibles pour la fenêtre de maintenance, choisissez Sélection des cibles non enregistrées. Puis, sélectionnez manuellement vos instances ou spécifiez un groupe de ressources pour identifier les instances sur lesquelles vous souhaitez exécuter le document d'automatisation.
Remarque : Les identifications pour les cibles sont uniquement prises en charge pour les instances gérées par Systems Manager.
- Pour Contrôle du débit, spécifiez la Simultanéité et le Seuil d'erreur.
- Pour Rôle de service IAM, sélectionnez la fonction du service pour Systems Manager dans la liste déroulante. Si vous n'avez pas créé de rôle de service pour Systems Manager, créez-en une.
Remarque : N'utilisez pas le rôle AWSServiceRoleForAmazonSSM.
- Pour Paramètres d'entrée, spécifiez les paramètres suivants :
InstanceId : Saisissez {{RESOURCE_ID}} sous forme de pseudo-paramètre pour cibler plusieurs ressources.
AutomationAssumeRole : Saisissez l'Amazon Resource Name (ARN) complet du rôle IAM doté des autorisations ec2:StartInstances ou ec2:StopInstances. Exemple : arn:aws:iam::123456789101:role/SSM_StartStopEC2Role.
- Sélectionnez Enregistrer une tâche d'automatisation.
Important : Pour enregistrer des documents Automation afin de planifier à la fois des actions d'arrêt et de démarrage, répétez les étapes précédentes pour le deuxième document.
Informations connexes
Fenêtres de maintenance AWS Systems Manager
Actions, ressources et clés de condition pour Amazon EC2
Pourquoi Systems Manager n'affiche-t-il pas mon instance Amazon EC2 en tant qu'instance gérée ?