

• 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.

# Étape 5 (facultative) : Restriction de l'accès aux commandes dans une session
<a name="session-manager-restrict-command-access"></a>

Vous pouvez limiter les commandes qu'un utilisateur peut exécuter dans une AWS Systems Manager Session Manager session en utilisant un document de `Session` type personnalisé AWS Systems Manager (SSM). Dans ce document, vous définissez la commande qui est exécutée lorsque l'utilisateur démarre une session et les paramètres qu'il peut fournir à la commande. Le paramètre `Session` du document `schemaVersion` doit être défini sur 1.0 et le paramètre `sessionType` du document doit être défini sur `InteractiveCommands`. Vous pouvez ensuite créer des politiques Gestion des identités et des accès AWS (IAM) permettant aux utilisateurs d'accéder uniquement aux documents `Session` que vous définissez. Pour de plus amples informations sur l'utilisation des politiques IAM pour restreindre l'accès aux commandes dans une session, consultez [Exemples de politique IAM pour les commandes interactives](#interactive-command-policy-examples).

Les documents marqués du signe `sessionType` de ne `InteractiveCommands` sont pris en charge que pour les sessions démarrées à partir du AWS Command Line Interface (AWS CLI). L'utilisateur fournit le nom du document personnalisé en tant que valeur du paramètre `--document-name` et fournit toutes les valeurs des paramètres de commande à l'aide de l'option `--parameters`. Pour de plus amples informations sur l'exécution des commandes interactives, consultez [Démarrage d'une session (commandes interactives et non interactives)](session-manager-working-with-sessions-start.md#sessions-start-interactive-commands).

Mettez en œuvre la procédure suivante pour créer un document SSM personnalisé de type `Session` qui définit la commande qu'un utilisateur est autorisé à exécuter.

## Restreindre l'accès aux commandes dans une session (console)
<a name="restrict-command-access-console"></a>

**Pour restreindre les commandes qu'un utilisateur peut exécuter dans une session Session Manager (console)**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation, cliquez sur **Documents**.

1. Sélectionnez **Create command or session (Créer une commande ou une session)**.

1. Pour **Name (Nom)**, saisissez un nom évocateur pour le document.

1. Pour **Document type (Type de document)**, sélectionnez **Session document (Document de session)**.

1. Entrez le contenu de votre document qui définit la commande qu'un utilisateur peut exécuter dans une session Session Manager au format JSON ou YAML, comme illustré dans l'exemple suivant.

------
#### [ YAML ]

   ```
   ---
   schemaVersion: '1.0'
   description: Document to view a log file on a Linux instance
   sessionType: InteractiveCommands
   parameters:
     logpath:
       type: String
       description: The log file path to read.
       default: "/var/log/amazon/ssm/amazon-ssm-agent.log"
       allowedPattern: "^[a-zA-Z0-9-_/]+(.log)$"
   properties:
     linux:
       commands: "tail -f {{ logpath }}"
       runAsElevated: true
   ```

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

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to view a log file on a Linux instance",
       "sessionType": "InteractiveCommands",
       "parameters": {
           "logpath": {
               "type": "String",
               "description": "The log file path to read.",
               "default": "/var/log/amazon/ssm/amazon-ssm-agent.log",
               "allowedPattern": "^[a-zA-Z0-9-_/]+(.log)$"
           }
       },
       "properties": {
           "linux": {
               "commands": "tail -f {{ logpath }}",
               "runAsElevated": true
           }
       }
   }
   ```

------

1. Sélectionnez **Créer un document**.

## Restreindre l'accès aux commandes dans une session (ligne de commande)
<a name="restrict-command-access-commandline"></a>

**Avant de commencer**  
Si ce n'est pas déjà fait, installez et configurez le AWS Command Line Interface (AWS CLI) ou le Outils AWS pour PowerShell. Pour plus d'informations, consultez la section [Installation ou mise à jour de la version la plus récente de l' AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) et [Installation d' Outils AWS pour PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

**Pour restreindre les commandes qu'un utilisateur peut exécuter dans une session Session Manager (ligne de commande)**

1. Créez un fichier JSON ou YAML pour le contenu de votre document qui définit la commande qu'un utilisateur peut exécuter dans une session Session Manager, comme illustré dans l'exemple suivant.

------
#### [ YAML ]

   ```
   ---
   schemaVersion: '1.0'
   description: Document to view a log file on a Linux instance
   sessionType: InteractiveCommands
   parameters:
     logpath:
       type: String
       description: The log file path to read.
       default: "/var/log/amazon/ssm/amazon-ssm-agent.log"
       allowedPattern: "^[a-zA-Z0-9-_/]+(.log)$"
   properties:
     linux:
       commands: "tail -f {{ logpath }}"
       runAsElevated: true
   ```

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

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to view a log file on a Linux instance",
       "sessionType": "InteractiveCommands",
       "parameters": {
           "logpath": {
               "type": "String",
               "description": "The log file path to read.",
               "default": "/var/log/amazon/ssm/amazon-ssm-agent.log",
               "allowedPattern": "^[a-zA-Z0-9-_/]+(.log)$"
           }
       },
       "properties": {
           "linux": {
               "commands": "tail -f {{ logpath }}",
               "runAsElevated": true
           }
       }
   }
   ```

------

1. Exécutez les commandes suivantes pour créer un document SSM en utilisant votre contenu qui définit la commande qu'un utilisateur peut exécuter dans une session Session Manager.

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

   ```
   aws ssm create-document \
       --content file://path/to/file/documentContent.json \
       --name "exampleAllowedSessionDocument" \
       --document-type "Session"
   ```

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

   ```
   aws ssm create-document ^
       --content file://C:\path\to\file\documentContent.json ^
       --name "exampleAllowedSessionDocument" ^
       --document-type "Session"
   ```

------
#### [   PowerShell   ]

   ```
   $json = Get-Content -Path "C:\path\to\file\documentContent.json" | Out-String
   New-SSMDocument `
       -Content $json `
       -Name "exampleAllowedSessionDocument" `
       -DocumentType "Session"
   ```

------

## Les paramètres de commande interactifs et le AWS CLI
<a name="restrict-command-access-parameters-cli"></a>

Plusieurs façons permettent de définir des paramètres de commande interactifs lors de l'utilisation de la AWS CLI. En fonction du système d'exploitation (OS) de votre machine cliente que vous utilisez pour vous connecter aux nœuds gérés AWS CLI, la syntaxe que vous fournissez pour les commandes contenant des caractères spéciaux ou d'échappement peut être différente. Les exemples suivants montrent les différentes manières dont vous pouvez fournir des paramètres de commande lorsque vous utilisez le AWS CLI et comment gérer les caractères spéciaux ou d'échappement.

Les paramètres stockés dans Parameter Store peuvent être référencés dans AWS CLI les paramètres de votre commande, comme indiqué dans l'exemple suivant.

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

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["{{ssm:mycommand}}"]}'
```

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

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["{{ssm:mycommand}}"]}'
```

------

L'exemple suivant montre l'utilisation d'une syntaxe abrégée avec la AWS CLI pour transmettre des paramètres.

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

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters command="ifconfig"
```

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

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters command="ipconfig"
```

------

Vous pouvez également fournir des paramètres en JSON, comme illustré dans l'exemple suivant.

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

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["ifconfig"]}'
```

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

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["ipconfig"]}'
```

------

Les paramètres peuvent également être stockés dans un fichier JSON et fournis au AWS CLI , comme indiqué dans l'exemple suivant. Pour de plus amples informations sur l'utilisation de paramètres de la AWS CLI à partir d'un fichier, consultez [Chargement de paramètres AWS CLI à partir d'un fichier](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-parameters-file.html) dans le *Guide de l'utilisateur AWS Command Line Interface *.

```
{
    "command": [
        "my command"
    ]
}
```

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

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters file://complete/path/to/file/parameters.json
```

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

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters file://complete/path/to/file/parameters.json
```

------

Vous pouvez également générer un AWS CLI squelette à partir d'un fichier d'entrée JSON, comme illustré dans l'exemple suivant. *Pour plus d'informations sur la génération de AWS CLI squelettes à partir de fichiers d'entrée JSON, consultez la section [Génération de AWS CLI squelettes et de paramètres d'entrée à partir d'un fichier d'entrée JSON ou YAML](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-skeleton.html) dans le Guide de l'AWS Command Line Interface utilisateur.*

```
{
    "Target": "instance-id",
    "DocumentName": "MyInteractiveCommandDocument",
    "Parameters": {
        "command": [
            "my command"
        ]
    }
}
```

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

```
aws ssm start-session \
    --cli-input-json file://complete/path/to/file/parameters.json
```

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

```
aws ssm start-session ^
    --cli-input-json file://complete/path/to/file/parameters.json
```

------

Lorsque des caractères d'échappement sont placés entre guillemets, vous devez ajouter des barres obliques inverses supplémentaires aux caractères d'échappement, comme l'illustre l'exemple suivant.

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

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["printf \"abc\\\\tdef\""]}'
```

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

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["printf \"abc\\\\tdef\""]}'
```

------

Pour plus d'informations sur l'utilisation de guillemets avec les paramètres de commande dans la AWS CLI, consultez [Utilisation de guillemets avec des chaînes dans la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-parameters-quoting-strings.html) dans le *Guide de l'utilisateur AWS Command Line Interface *.

## Exemples de politique IAM pour les commandes interactives
<a name="interactive-command-policy-examples"></a>

Vous pouvez créer des politiques IAM permettant aux utilisateurs d'accéder uniquement aux documents `Session` que vous définissez. Les commandes qu'un utilisateur peut exécuter dans une session Session Manager sont ainsi limitées uniquement aux commandes définies dans vos documents SSM personnalisés de type `Session`.

 **Autoriser un utilisateur à exécuter une commande interactive sur un seul nœud géré**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/i-02573cafcfEXAMPLE",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

 **Autoriser un utilisateur à exécuter une commande interactive sur tous les nœuds gérés**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/*",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

 **Autoriser un utilisateur à exécuter plusieurs commandes interactives sur tous les nœuds gérés**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/*",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document-2"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```