

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la [documentation Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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.

# Configuration de Maintenance Windows
<a name="setting-up-maintenance-windows"></a>

Pour que les utilisateurs de votre Compte AWS puissent créer et planifier des tâches de fenêtre de maintenance à l’aide de Maintenance Windows, un des outils d’AWS Systems Manager, ils doivent bénéficier des autorisations nécessaires. De plus, vous devez créer un rôle de service IAM pour les fenêtres de maintenance ainsi que la politique IAM associée.

**Avant de commencer**  
Outre les autorisations que vous configurez dans cette section, les entités IAM (utilisateurs, rôles ou groupes) qui travailleront avec les fenêtres de maintenance devraient déjà disposer d’autorisations générales relatives aux fenêtres de maintenance. Vous pouvez accorder ces autorisations en attribuant la politique IAM `AmazonSSMFullAccess` aux entités, ou une politique IAM personnalisée qui fournit un ensemble plus restreint d’autorisations d’accès pour Systems Manager qui couvre les tâches de fenêtre de maintenance.

**Topics**
+ [Contrôler l’accès aux fenêtres de maintenance à l’aide de la console](configuring-maintenance-window-permissions-console.md)
+ [Contrôlez l'accès aux fenêtres de maintenance à l'aide du AWS CLI](configuring-maintenance-window-permissions-cli.md)

# Contrôler l’accès aux fenêtres de maintenance à l’aide de la console
<a name="configuring-maintenance-window-permissions-console"></a>

Les procédures suivantes décrivent comment utiliser la AWS Systems Manager console pour créer les autorisations et les rôles requis pour les fenêtres de maintenance.

**Topics**
+ [Tâche 1 : créer une politique personnalisée pour votre rôle de service de fenêtre de maintenance à l’aide de la console](#create-custom-policy-console)
+ [Tâche 2 : créer un rôle de service personnalisé pour les fenêtres de maintenance à l’aide de la console](#create-custom-role-console)
+ [Tâche 3 : accorder des autorisations aux utilisateurs spécifiés pour enregistrer les tâches de la fenêtre de maintenance à l’aide de la console](#allow-maintenance-window-access-console)
+ [Tâche 4 : empêcher les utilisateurs spécifiés d’enregistrer les tâches de la fenêtre de maintenance à l’aide de la console](#deny-maintenance-window-access-console)

## Tâche 1 : créer une politique personnalisée pour votre rôle de service de fenêtre de maintenance à l’aide de la console
<a name="create-custom-policy-console"></a>

Les tâches de la fenêtre de maintenance nécessitent un rôle IAM afin de fournir les autorisations requises pour s'exécuter sur les ressources cibles. Les autorisations sont fournies via une politique IAM attachée au rôle. Les types de tâches que vous exécutez et vos autres exigences opérationnelles déterminent le contenu de cette politique. Nous fournissons une politique de base que vous pouvez adapter à vos besoins. En fonction des tâches et des types de tâches exécutées par vos fenêtres de maintenance, il se peut que vous n'ayez pas besoin de toutes les autorisations de cette politique, et que vous deviez inclure des autorisations supplémentaires. Vous attachez cette politique au rôle que vous créez ultérieurement dans [Tâche 2 : créer un rôle de service personnalisé pour les fenêtres de maintenance à l’aide de la console](#create-custom-role-console).

**Pour créer une politique personnalisée à l’aide de la console**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le volet de navigation, sélectionnez **Politiques**, puis **Créer une politique**.

1. Dans la zone **Éditeur de politique**, sélectionnez **JSON**.

1. Remplacez le contenu par défaut par ce qui suit :

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:SendCommand",
                   "ssm:CancelCommand",
                   "ssm:ListCommands",
                   "ssm:ListCommandInvocations",
                   "ssm:GetCommandInvocation",
                   "ssm:GetAutomationExecution",
                   "ssm:StartAutomationExecution",
                   "ssm:ListTagsForResource",
                   "ssm:DescribeInstanceInformation",
                   "ssm:GetParameters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "states:DescribeExecution",
                   "states:StartExecution"
               ],
               "Resource": [
                   "arn:aws:states:*:*:execution:*:*",
                   "arn:aws:states:*:*:stateMachine:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:*:*:function:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "resource-groups:ListGroups",
                   "resource-groups:ListGroupResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/maintenance-window-role-name",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": [
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Modifiez le contenu JSON en fonction des besoins des tâches de maintenance que vous exécutez dans votre compte. Les modifications que vous apportez sont spécifiques à vos opérations planifiées. 

   Par exemple :
   + Vous pouvez fournir des Amazon Resource Names (ARNs) pour des fonctions et des machines d'état spécifiques au lieu d'utiliser des qualificatifs génériques (\$1).
   + Si vous ne prévoyez pas d'exécuter AWS Step Functions des tâches, vous pouvez supprimer les `states` autorisations et (ARNs).
   + Si vous ne prévoyez pas d'exécuter AWS Lambda des tâches, vous pouvez supprimer les `lambda` autorisations et ARNs.
   + Si vous ne prévoyez pas d'exécuter des tâches d'automatisation, vous pouvez supprimer les autorisations `ssm:GetAutomationExecution` et `ssm:StartAutomationExecution`.
   + Ajoutez des autorisations supplémentaires qui peuvent être nécessaires à l'exécution des tâches. Par exemple, certaines actions Automation utilisent des piles AWS CloudFormation . Par conséquent, les autorisations `cloudformation:CreateStack`, `cloudformation:DescribeStacks` et `cloudformation:DeleteStack` sont requises. 

     Autre exemple, le runbook d'automatisation `AWS-CopySnapshot` requiert des autorisations pour créer un instantané Amazon Elastic Block Store (Amazon EBS). Par conséquent, la fonction du service a besoin de l'autorisation `ec2:CreateSnapshot`. 

     Pour plus d’informations sur les autorisations de rôle requises par les dossiers d’exploitation d’automatisation, consultez les descriptions du dossier d’exploitation dans la [référence du dossier d’exploitation de AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html).

1. Une fois les révisions de la politique terminées, choisissez **Suivant**.

1. Dans la zone **Nom de la politique**, saisissez un nom qui identifie la politique attachée au rôle de service que vous créez. Par exemple : **my-maintenance-window-role-policy**.

1. (Facultatif) Dans la zone **Ajouter des balises**, ajoutez une ou plusieurs paires clé-valeur de balises pour organiser, suivre ou contrôler l’accès à cette politique. 

1. Choisissez **Create Policy** (Créer une politique).

   Notez le nom que vous avez spécifié pour la politique. Vous y faites référence dans la procédure suivante, [Tâche 2 : créer un rôle de service personnalisé pour les fenêtres de maintenance à l’aide de la console](#create-custom-role-console).

## Tâche 2 : créer un rôle de service personnalisé pour les fenêtres de maintenance à l’aide de la console
<a name="create-custom-role-console"></a>

La politique que vous avez créée dans la tâche précédente est attachée au rôle de service de fenêtre de maintenance que vous créez dans cette tâche. Lorsque les utilisateurs enregistrent une tâche de fenêtre de maintenance, ils spécifient ce rôle IAM dans le cadre de la configuration de la tâche. Les autorisations de ce rôle permettent à Systems Manager d'exécuter des tâches dans les fenêtres de maintenance en votre nom.

**Important**  
Auparavant, la console Systems Manager vous permettait de choisir le rôle lié au service IAM AWS géré `AWSServiceRoleForAmazonSSM` à utiliser comme rôle de maintenance pour vos tâches. L'utilisation de ce rôle et de la politique associée, `AmazonSSMServiceRolePolicy`, pour les tâches de la fenêtre de maintenance n'est plus recommandée. Si vous utilisez ce rôle pour des tâches de fenêtre de maintenance maintenant, nous vous encourageons à cesser de l'utiliser. Créez plutôt votre propre rôle IAM qui permet la communication entre Systems Manager et d'autres acteurs Services AWS lorsque les tâches de votre fenêtre de maintenance s'exécutent.

Utilisez la procédure suivante pour créer un rôle de service personnalisé pour les Maintenance Windows, afin que Systems Manager puisse exécuter des tâches Maintenance Windows en votre nom. Vous attachez la politique que vous avez créée dans la tâche précédente au rôle de service que vous créez.

**Pour créer un rôle de service personnalisé pour les fenêtres de maintenance à l’aide de la console**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

1. Pour **Select trusted entity** (Sélectionner une entité de confiance), effectuez les choix suivants :

   1. Pour **Type d’entité de confiance**, choisissez **Service AWS **.

   1. Pour **Cas d’utilisation**, choisissez **Systems Manager**

   1. Sélectionnez **Systems Manager**.

      L’image suivante met en évidence l’emplacement de l’option Systems Manager.  
![\[Systems Manager est l’une des options du cas d’utilisation.\]](http://docs.aws.amazon.com/fr_fr/systems-manager/latest/userguide/images/iam_use_cases_for_MWs.png)

1. Choisissez **Suivant**. 

1. Dans la zone **Politiques d’autorisation**, dans le champ de recherche, saisissez le nom de la politique que vous avez créée dans [Tâche 1 : créer une politique personnalisée pour votre rôle de service de fenêtre de maintenance à l’aide de la console](#create-custom-policy-console), cochez la case en regard de son nom, puis sélectionnez **Suivant**.

1. Dans **Role name** (Nom du rôle), saisissez un nom qui identifie celui-ci en tant que rôle Maintenance Windows. Par exemple : **my-maintenance-window-role**.

1. (Facultatif) Modifiez la description du rôle par défaut pour refléter l'objectif de ce rôle. Par exemple : **Performs maintenance window tasks on your behalf**.

1. Pour **Étape 1 : sélectionner les entités approuvées**, vérifiez que la politique suivante est affichée dans la zone **Politique d’approbation**.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "ssm.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Pour **Étape 2 : ajouter des autorisations**, vérifiez que la politique que vous avez créée dans [Tâche 1 : créer une politique personnalisée pour votre rôle de service de fenêtre de maintenance à l’aide de la console](#create-custom-policy-console) est présente.

1. (Facultatif) Dans **Étape 3 : ajouter des balises**, ajoutez une ou plusieurs paires clé-valeur de balises pour organiser, suivre ou contrôler l’accès pour ce rôle. 

1. Sélectionnez **Créer un rôle**. Le système vous renvoie à la page **Rôles**.

1. Sélectionnez le nom du rôle IAM que vous venez de créer.

1. Copier le nom du rôle et notez le nom de rôle et la valeur de l'**ARN** de la zone **Summary** (Récapitulatif). Les utilisateurs de votre compte spécifient ces informations lorsqu'ils créent des fenêtres de maintenance.

## Tâche 3 : accorder des autorisations aux utilisateurs spécifiés pour enregistrer les tâches de la fenêtre de maintenance à l’aide de la console
<a name="allow-maintenance-window-access-console"></a>

L’octroi aux utilisateurs d’autorisations pour accéder au rôle de service personnalisé de la fenêtre de maintenance leur permet de l’utiliser avec leurs tâches de fenêtre de maintenance. Cela s’ajoute aux autorisations que vous leur avez déjà accordées pour travailler avec les commandes de l’API Systems Manager pour l’outil Maintenance Windows. Ce rôle IAM indique les autorisations nécessaires pour exécuter une tâche de fenêtre de maintenance. Par conséquent, un utilisateur ne peut pas enregistrer de tâches avec une fenêtre de maintenance à l’aide de votre rôle de service personnalisé s’il n’a pas la possibilité de transmettre ces autorisations IAM.

Lorsque vous enregistrez une tâche avec une fenêtre de maintenance, vous spécifiez un rôle de service pour exécuter les opérations de la tâche. C'est le rôle que le service endossera lorsqu'il exécutera des tâches en votre nom. Avant cela, pour enregistrer la tâche elle-même, affectez la politique `PassRole` IAM à une entité IAM (comme un compte ou un groupe). Cela permet à l’entité IAM de spécifier, lors de l’enregistrement de ces tâches dans la fenêtre de maintenance, le rôle à utiliser lors de l’exécution des tâches. Pour en savoir plus, reportez-vous à [Octroi d’autorisations à un utilisateur pour transférer un rôle à un Service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dans le *Guide de l’utilisateur IAM*.

**Pour configurer les autorisations permettant aux utilisateurs d’enregistrer les tâches de la fenêtre de maintenance**

Si une entité IAM (utilisateur, rôle ou groupe) est configurée avec des autorisations d’administrateur, l’utilisateur ou le rôle IAM a accès aux fenêtres de maintenance. Pour les entités IAM sans autorisations d'administrateur, un administrateur doit accorder les autorisations suivantes à l'entité IAM. Voici les autorisations minimales requises pour enregistrer des tâches dans une fenêtre de maintenance :
+ La politique gérée `AmazonSSMFullAccess`, ou une politique qui fournit des autorisations comparables.
+ Les autorisations `iam:PassRole` et `iam:ListRoles` suivantes.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
          },
          {
              "Effect": "Allow",
              "Action": "iam:ListRoles",
              "Resource": "arn:aws:iam::111122223333:role/"
          },
          {
              "Effect": "Allow",
              "Action": "iam:ListRoles",
              "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
          }
      ]
  }
  ```

------

  *my-maintenance-window-role*représente le nom du rôle de service de fenêtre de maintenance personnalisé que vous avez créé précédemment.

  *account-id*représente l'identifiant de votre Compte AWS. L'ajout de cette autorisation pour la ressource `arn:aws:iam::account-id:role/` permet à un utilisateur d'afficher et de choisir parmi les rôles client dans la console lorsqu'il crée une tâche de fenêtre de maintenance. L'ajout de cette autorisation pour `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` permet à un utilisateur de choisir le rôle lié au service Systems Manager dans la console lorsqu'il crée une tâche de fenêtre de maintenance. 

  Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
  + Utilisateurs et groupes dans AWS IAM Identity Center :

    Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
  + Utilisateurs gérés dans IAM par un fournisseur d’identité :

    Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
  + Utilisateurs IAM :
    + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
    + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

**Pour configurer des autorisations pour les groupes autorisés à enregistrer des tâches de fenêtre de maintenance en utilisant la console**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, sélectionnez **User groups** (Groupes d'utilisateurs).

1. Dans la liste des groupes, sélectionnez le nom du groupe auquel vous voulez attribuer l’autorisation `iam:PassRole`, ou créez d’abord un nouveau groupe si nécessaire 

1. Sous l'onglet **Permissions** (Autorisations), sélectionnez **Add permissions, create inline policy** (Ajouter des autorisations, Créer une politique en ligne).

1. Dans la zone **Éditeur de politique**, sélectionnez **JSON** et remplacez le contenu par défaut de la boîte par ce qui suit.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
           }
       ]
   }
   ```

------

   *my-maintenance-window-role*représente le nom du rôle de fenêtre de maintenance personnalisé que vous avez créé précédemment.

   *account-id*représente l'identifiant de votre Compte AWS. L'ajout de cette autorisation pour la ressource `arn:aws:iam::account-id:role/` permet à un utilisateur d'afficher et de choisir parmi les rôles client dans la console lorsqu'il crée une tâche de fenêtre de maintenance. L'ajout de cette autorisation pour `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` permet à un utilisateur de choisir le rôle lié au service Systems Manager dans la console lorsqu'il crée une tâche de fenêtre de maintenance. 

1. Choisissez **Suivant**.

1. Sur la page **Vérifier et créer**, saisissez un nom dans la zone **Nom de la politique** pour identifier la politique `PassRole`, tel que **my-group-iam-passrole-policy**, puis sélectionnez **Créer une politique**.

## Tâche 4 : empêcher les utilisateurs spécifiés d’enregistrer les tâches de la fenêtre de maintenance à l’aide de la console
<a name="deny-maintenance-window-access-console"></a>

Vous pouvez refuser l'`ssm:RegisterTaskWithMaintenanceWindow`autorisation aux utilisateurs de votre site Compte AWS auxquels vous ne souhaitez pas enregistrer des tâches dans les fenêtres de maintenance. Cela fournit une couche de prévention supplémentaire pour les utilisateurs qui ne devraient pas enregistrer les tâches de la fenêtre de maintenance.

**Pour configurer des autorisations pour les groupes qui ne sont pas autorisés à enregistrer des tâches de fenêtre de maintenance en utilisant la console**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, sélectionnez **User groups** (Groupes d'utilisateurs).

1. Dans la liste des groupes, sélectionnez le nom du groupe auquel vous voulez refuser l’autorisation `ssm:RegisterTaskWithMaintenanceWindow`, ou créez d’abord un nouveau groupe si nécessaire.

1. Sous l'onglet **Permissions** (Autorisations), sélectionnez **Add permissions, create inline policy** (Ajouter des autorisations, Créer une politique en ligne).

1. Dans la zone **Éditeur de politique**, choisissez **JSON**, puis remplacez le contenu par défaut de la boîte par ce qui suit.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "ssm:RegisterTaskWithMaintenanceWindow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Choisissez **Suivant**.

1. Sur la page **Vérifier et créer**, saisissez un nom dans la zone **Nom de la politique** pour identifier cette politique, tel que **my-groups-deny-mw-tasks-policy**, puis sélectionnez **Créer une politique**.

# Contrôlez l'accès aux fenêtres de maintenance à l'aide du AWS CLI
<a name="configuring-maintenance-window-permissions-cli"></a>

Les procédures suivantes décrivent comment utiliser le AWS Command Line Interface (AWS CLI) pour créer les autorisations et les rôles requis pour Maintenance Windows un outil dans AWS Systems Manager.

**Topics**
+ [Tâche 1 : créer des fichiers de politique d’approbation et de politique gérée par le client au format JSON](#create-custom-policy-json-files-cli)
+ [Tâche 2 : créer et vérifier un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI](#create-custom-role-cli)
+ [Tâche 3 : accorder des autorisations aux utilisateurs spécifiés pour enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI](#allow-maintenance-window-access-cli)
+ [Tâche 4 : Empêcher les utilisateurs spécifiés d'enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI](#deny-maintenance-window-access-cli)

## Tâche 1 : créer des fichiers de politique d’approbation et de politique gérée par le client au format JSON
<a name="create-custom-policy-json-files-cli"></a>

Les tâches de la fenêtre de maintenance nécessitent un rôle IAM afin de fournir les autorisations requises pour s'exécuter sur les ressources cibles. Les autorisations sont fournies via une politique IAM attachée au rôle. Les types de tâches que vous exécutez et vos autres exigences opérationnelles déterminent le contenu de cette politique. Nous fournissons une politique de base que vous pouvez adapter à vos besoins. En fonction des tâches et des types de tâches exécutées par vos fenêtres de maintenance, il se peut que vous n'ayez pas besoin de toutes les autorisations de cette politique, et que vous deviez inclure des autorisations supplémentaires. 

Dans cette tâche, vous spécifiez les autorisations nécessaires pour votre rôle de fenêtre de maintenance personnalisé dans une paire de fichiers JSON. Vous attachez cette politique au rôle que vous créez ultérieurement dans [Tâche 2 : créer et vérifier un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI](#create-custom-role-cli). 

**Pour créer des fichiers de politique d’approbation et de politique gérée par le client**

1. Copiez et collez la politique d'approbation suivante dans un fichier texte. Enregistrez ce fichier avec le nom et l’extension de fichier suivants : **mw-role-trust-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Copiez et collez la politique JSON suivante dans un autre fichier texte. Dans le même répertoire où vous avez créé le premier fichier, enregistrez ce fichier avec le nom et l’extension de fichier suivants : **mw-role-custom-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:SendCommand",
                   "ssm:CancelCommand",
                   "ssm:ListCommands",
                   "ssm:ListCommandInvocations",
                   "ssm:GetCommandInvocation",
                   "ssm:GetAutomationExecution",
                   "ssm:StartAutomationExecution",
                   "ssm:ListTagsForResource",
                   "ssm:GetParameters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "states:DescribeExecution",
                   "states:StartExecution"
               ],
               "Resource": [
                   "arn:aws:states:*:*:execution:*:*",
                   "arn:aws:states:*:*:stateMachine:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:*:*:function:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "resource-groups:ListGroups",
                   "resource-groups:ListGroupResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/maintenance-window-role-name",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": [
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Modifiez le contenu de `mw-role-custom-policy.json` en fonction des besoins des tâches de maintenance que vous exécutez dans votre compte. Les modifications que vous apportez sont spécifiques à vos opérations planifiées. 

   Par exemple :
   + Vous pouvez fournir des Amazon Resource Names (ARNs) pour des fonctions et des machines d'état spécifiques au lieu d'utiliser des qualificatifs génériques (\$1).
   + Si vous ne prévoyez pas d'exécuter AWS Step Functions des tâches, vous pouvez supprimer les `states` autorisations et (ARNs).
   + Si vous ne prévoyez pas d'exécuter AWS Lambda des tâches, vous pouvez supprimer les `lambda` autorisations et ARNs.
   + Si vous ne prévoyez pas d'exécuter des tâches d'automatisation, vous pouvez supprimer les autorisations `ssm:GetAutomationExecution` et `ssm:StartAutomationExecution`.
   + Ajoutez des autorisations supplémentaires qui peuvent être nécessaires à l'exécution des tâches. Par exemple, certaines actions Automation utilisent des piles AWS CloudFormation . Par conséquent, les autorisations `cloudformation:CreateStack`, `cloudformation:DescribeStacks` et `cloudformation:DeleteStack` sont requises. 

     Autre exemple, le runbook d'automatisation `AWS-CopySnapshot` requiert des autorisations pour créer un instantané Amazon Elastic Block Store (Amazon EBS). Par conséquent, la fonction du service a besoin de l'autorisation `ec2:CreateSnapshot`. 

     Pour plus d’informations sur les autorisations de rôle requises par les dossiers d’exploitation d’automatisation, consultez les descriptions du dossier d’exploitation dans la [référence du dossier d’exploitation de AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html).

   Enregistrez à nouveau le fichier après avoir effectué les modifications nécessaires.

## Tâche 2 : créer et vérifier un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI
<a name="create-custom-role-cli"></a>

La politique que vous avez créée dans la tâche précédente est attachée au rôle de service de fenêtre de maintenance que vous créez dans cette tâche. Lorsque les utilisateurs enregistrent une tâche de fenêtre de maintenance, ils spécifient ce rôle IAM dans le cadre de la configuration de la tâche. Les autorisations de ce rôle permettent à Systems Manager d'exécuter des tâches dans les fenêtres de maintenance en votre nom.

**Important**  
Auparavant, la console Systems Manager vous permettait de choisir le rôle lié au service IAM AWS géré `AWSServiceRoleForAmazonSSM` à utiliser comme rôle de maintenance pour vos tâches. L'utilisation de ce rôle et de la politique associée, `AmazonSSMServiceRolePolicy`, pour les tâches de la fenêtre de maintenance n'est plus recommandée. Si vous utilisez ce rôle pour des tâches de fenêtre de maintenance maintenant, nous vous encourageons à cesser de l'utiliser. Créez plutôt votre propre rôle IAM qui permet la communication entre Systems Manager et les autres Services AWS lorsque les tâches de votre fenêtre de maintenance sont exécutées.

Dans cette tâche, vous exécutez des commandes CLI pour créer votre rôle de service pour les fenêtres de maintenance, en ajoutant le contenu de la politique à partir des fichiers JSON que vous avez créés. 

**Créez un rôle de service personnalisé pour les fenêtres de maintenance à l'aide du AWS CLI**

1. Ouvrez le AWS CLI et exécutez la commande suivante dans le répertoire où vous avez placé `mw-role-custom-policy.json` et`mw-role-trust-policy.json`. La commande crée un rôle de service de fenêtre de maintenance appelé `my-maintenance-window-role` et y attache la *politique d’approbation*.

------
#### [ Linux & macOS ]

   ```
   aws iam create-role \
       --role-name "my-maintenance-window-role" \
       --assume-role-policy-document file://mw-role-trust-policy.json
   ```

------
#### [ Windows ]

   ```
   aws iam create-role ^
       --role-name "my-maintenance-window-role" ^
       --assume-role-policy-document file://mw-role-trust-policy.json
   ```

------

   Le système renvoie des informations similaires à ce qui suit :

   ```
   {
       "Role": {
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17", 		 	 	 		 	 	 
               "Statement": [
                   {
                       "Action": "sts:AssumeRole",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "ssm.amazonaws.com"
                       }
                   }
               ]
           },
           "RoleId": "AROAIIZKPBKS2LEXAMPLE",
           "CreateDate": "2024-08-19T03:40:17.373Z",
           "RoleName": "my-maintenance-window-role",
           "Path": "/",
           "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role"
       }
   }
   ```
**Note**  
Notez les valeurs de `RoleName` et `Arn`. Vous les incluez dans la commande suivante.

1. Exécutez la commande suivante pour attacher la *politique gérée par le client* au rôle. Remplacez l'*account-id*espace réservé par votre propre identifiant Compte AWS 

------
#### [ Linux & macOS ]

   ```
   aws iam attach-role-policy \
       --role-name "my-maintenance-window-role" \
       --policy-arn "arn:aws:iam::account-id:policy/mw-role-custom-policy.json"
   ```

------
#### [ Windows ]

   ```
   aws iam attach-role-policy ^
       --role-name "my-maintenance-window-role" ^
       --policy-arn "arn:aws:iam::account-id:policy/mw-role-custom-policy.json"
   ```

------

1. Exécutez la commande suivante pour vérifier que votre rôle a été créé et que la politique d’approbation a été attachée.

   ```
   aws iam get-role --role-name my-maintenance-window-role
   ```

   La commande renvoie des informations semblables à ce qui suit :

   ```
   {
       "Role": {
           "Path": "/",
           "RoleName": "my-maintenance-window-role",
           "RoleId": "AROA123456789EXAMPLE",
           "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role",
           "CreateDate": "2024-08-19T14:13:32+00:00",
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17", 		 	 	 		 	 	 
               "Statement": [
                   {
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "ssm.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole"
                   }
               ]
           },
           "MaxSessionDuration": 3600,
           "RoleLastUsed": {
               "LastUsedDate": "2024-08-19T14:30:44+00:00",
               "Region": "us-east-2"
           }
       }
   }
   ```

1. Exécutez la commande suivante pour vérifier que la politique gérée par le client a été attachée au rôle.

   ```
   aws iam list-attached-role-policies --role-name my-maintenance-window-role
   ```

   La commande renvoie des informations semblables à ce qui suit :

   ```
   {
       "AttachedPolicies": [
           {
               "PolicyName": "mw-role-custom-policy",
               "PolicyArn": "arn:aws:iam::123456789012:policy/mw-role-custom-policy"
           }
       ]
   }
   ```

## Tâche 3 : accorder des autorisations aux utilisateurs spécifiés pour enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
<a name="allow-maintenance-window-access-cli"></a>

L’octroi aux utilisateurs d’autorisations pour accéder au rôle de service personnalisé de la fenêtre de maintenance leur permet de l’utiliser avec leurs tâches de fenêtre de maintenance. Cela s’ajoute aux autorisations que vous leur avez déjà accordées pour travailler avec les commandes de l’API Systems Manager pour l’outil Maintenance Windows. Ce rôle IAM indique les autorisations nécessaires pour exécuter une tâche de fenêtre de maintenance. Par conséquent, un utilisateur ne peut pas enregistrer de tâches avec une fenêtre de maintenance à l’aide de votre rôle de service personnalisé s’il n’a pas la possibilité de transmettre ces autorisations IAM.

Lorsque vous enregistrez une tâche avec une fenêtre de maintenance, vous spécifiez un rôle de service pour exécuter les opérations de la tâche. C'est le rôle que le service endossera lorsqu'il exécutera des tâches en votre nom. Avant cela, pour enregistrer la tâche elle-même, affectez la politique `PassRole` IAM à une entité IAM (comme un compte ou un groupe). Cela permet à l’entité IAM de spécifier, lors de l’enregistrement de ces tâches dans la fenêtre de maintenance, le rôle à utiliser lors de l’exécution des tâches. Pour en savoir plus, reportez-vous à [Octroi d’autorisations à un utilisateur pour transférer un rôle à un Service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dans le *Guide de l’utilisateur IAM*.

**Pour configurer les autorisations pour les utilisateurs autorisés à enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI**

1. Copiez et collez la politique Gestion des identités et des accès AWS (IAM) suivante dans un éditeur de texte et enregistrez-la sous le nom et l'extension de fichier suivants :`mw-passrole-policy.json`.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
           }
       ]
   }
   ```

------

   *my-maintenance-window-role*Remplacez-le par le nom du rôle de fenêtre de maintenance personnalisé que vous avez créé précédemment.

   Remplacez *account-id* par l'identifiant de votre Compte AWS. L'ajout de cette autorisation pour la ressource `arn:aws:iam::account-id:role/` permet aux utilisateurs du groupe d'afficher et de choisir parmi les rôles clients dans la console lorsqu'ils créent une tâche de fenêtre de maintenance. L'ajout de cette autorisation pour `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` permet aux utilisateurs du groupe de choisir le rôle lié au service Systems Manager dans la console lorsqu'ils créent une tâche de fenêtre de maintenance. 

1. Ouvrez le AWS CLI.

1. Selon que vous attribuez l’autorisation à une entité IAM (utilisateur ou groupe), exécutez l’une des commandes suivantes.
   + **Pour une entité IAM :**

------
#### [ Linux & macOS ]

     ```
     aws iam put-user-policy \
         --user-name "user-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-user-policy ^
         --user-name "user-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Pour*user-name*, spécifiez l'utilisateur qui affecte les tâches aux fenêtres de maintenance. Pour*policy-name*, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemple**my-iam-passrole-policy**. Pour*path-to-document*, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple : `file://C:\Temp\mw-passrole-policy.json`
**Note**  
Pour autoriser un utilisateur à enregistrer des tâches pour les fenêtres de maintenance à l’aide de la console Systems Manager, vous devez également affecter la politique `AmazonSSMFullAccess` à votre compte (ou une politique IAM qui fournit un ensemble plus petit d’autorisations d’accès pour Systems Manager qui couvre les tâches de la fenêtre de maintenance). Exécutez la commande suivante pour attribuer la politique `AmazonSSMFullAccess` à votre utilisateur.  

     ```
     aws iam attach-user-policy \
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \
         --user-name "user-name"
     ```

     ```
     aws iam attach-user-policy ^
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^
         --user-name "user-name"
     ```
   + **Pour un groupe IAM** :

------
#### [ Linux & macOS ]

     ```
     aws iam put-group-policy \
         --group-name "group-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-group-policy ^
         --group-name "group-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Pour*group-name*, spécifiez le groupe dont les membres attribuent des tâches aux fenêtres de maintenance. Pour*policy-name*, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemple**my-iam-passrole-policy**. Pour*path-to-document*, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple : `file://C:\Temp\mw-passrole-policy.json`
**Note**  
Pour autoriser les membres d'un groupe à enregistrer des tâches pour les fenêtres de maintenance à l'aide de la console Systems Manager, vous devez également affecter la politique `AmazonSSMFullAccess` à votre groupe. Exécutez la commande suivante pour attribuer cette politique à votre groupe.  

     ```
     aws iam attach-group-policy \
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \
         --group-name "group-name"
     ```

     ```
     aws iam attach-group-policy ^
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^
         --group-name "group-name"
     ```

1. Exécutez la commande suivante pour vérifier que la politique a bien été attribuée au groupe.

------
#### [ Linux & macOS ]

   ```
   aws iam list-group-policies \
       --group-name "group-name"
   ```

------
#### [ Windows ]

   ```
   aws iam list-group-policies ^
       --group-name "group-name"
   ```

------

## Tâche 4 : Empêcher les utilisateurs spécifiés d'enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI
<a name="deny-maintenance-window-access-cli"></a>

Vous pouvez refuser l'`ssm:RegisterTaskWithMaintenanceWindow`autorisation aux utilisateurs de votre site Compte AWS auxquels vous ne souhaitez pas enregistrer des tâches dans les fenêtres de maintenance. Cela fournit une couche de prévention supplémentaire pour les utilisateurs qui ne devraient pas enregistrer les tâches de la fenêtre de maintenance.

Selon que vous refusez l'autorisation `ssm:RegisterTaskWithMaintenanceWindow` à un utilisateur individuel ou à un groupe, utilisez l'une des procédures suivantes pour empêcher les utilisateurs d'enregistrer des tâches avec une fenêtre de maintenance. 

**Pour configurer les autorisations pour les utilisateurs qui ne sont pas autorisés à enregistrer les tâches de la fenêtre de maintenance à l'aide du AWS CLI**

1. Copiez et collez la politique IAM suivante dans un éditeur de texte et enregistrez-la avec le nom et l'extension suivants : **deny-mw-tasks-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "ssm:RegisterTaskWithMaintenanceWindow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Ouvrez le AWS CLI.

1. Selon que vous attribuez l’autorisation à une entité IAM (utilisateur ou groupe), exécutez l’une des commandes suivantes.
   + **Pour un utilisateur :**

------
#### [ Linux & macOS ]

     ```
     aws iam put-user-policy \
         --user-name "user-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-user-policy ^
         --user-name "user-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Pour*user-name*, spécifiez l'utilisateur pour empêcher l'attribution de tâches aux fenêtres de maintenance. Pour*policy-name*, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemple**my-deny-mw-tasks-policy**. Pour*path-to-document*, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple : `file://C:\Temp\deny-mw-tasks-policy.json`
   + **Pour un groupe :**

------
#### [ Linux & macOS ]

     ```
     aws iam put-group-policy \
         --group-name "group-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-group-policy ^
         --group-name "group-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Pour*group-name*, spécifiez le groupe dont vous souhaitez empêcher l'attribution de tâches aux fenêtres de maintenance. Pour*policy-name*, spécifiez le nom que vous souhaitez utiliser pour identifier la politique, par exemple**my-deny-mw-tasks-policy**. Pour*path-to-document*, spécifiez le chemin d'accès au fichier que vous avez enregistré à l'étape 1. Par exemple : `file://C:\Temp\deny-mw-tasks-policy.json`

1. Exécutez la commande suivante pour vérifier que la politique a bien été attribuée au groupe.

------
#### [ Linux & macOS ]

   ```
   aws iam list-group-policies \
       --group-name "group-name"
   ```

------
#### [ Windows ]

   ```
   aws iam list-group-policies ^
       --group-name "group-name"
   ```

------