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.
Création du contenu du document SSM
Si les documents AWS Systems Manager publics n'exécutent pas toutes les actions que vous souhaitez effectuer sur vos AWS ressources, vous pouvez créer vos propres documents SSM. Vous pouvez également cloner des documents SSM en utilisant la console. Le clonage de documents copie le contenu d'un document existant vers un nouveau document que vous pouvez modifier. Lors de la création ou du clonage d'un document, le contenu du document ne doit pas dépasser 64 Ko. Ce quota inclut également le contenu spécifié pour les paramètres d'entrée lors de l'exécution. Lorsque vous créez un nouveau Command ou document Policy, nous vous recommandons d'utiliser la version 2.2 ou ultérieure du schéma afin de tirer parti des fonctionnalités les plus récentes, telles que la mise à jour de documents, le contrôle de version automatique, le séquençage, etc.
Rédaction du contenu du document SSM
Pour créer votre propre contenu de document SSM, il est important de comprendre les différents schémas, fonctionnalités, plugins et syntaxe disponibles pour les documents SSM. Nous vous recommandons de vous familiariser avec les ressources suivantes.
-
Utilisation de runbooks Systems Manager Automation avec la AWS Toolkit for Visual Studio Code
-
Expérience de conception visuelle pour les runbooks d’Automatisation
AWS les documents SSM prédéfinis peuvent effectuer certaines des actions dont vous avez besoin. Vous pouvez appeler ces documents en utilisant les plugins aws:runDocument, aws:runCommand ou aws:executeAutomation dans votre document personnalisé SSM, selon le type de document. Vous pouvez également copier des parties de ces documents dans un document personnalisé SSM et modifier le contenu pour répondre à vos besoins.
Astuce
Lors de la création du contenu du document SSM, vous pouvez modifier le contenu et mettre à jour le document SSM plusieurs fois pendant le test. Les commandes suivantes mettent à jour le document SSM avec votre dernier contenu et mettent à jour la version par défaut du document vers la dernière version du document.
Note
Les commandes Linux et Windows utilisent l'outil de ligne de commande jq pour filtrer les données de réponse JSON.
Bonnes pratiques pour les documents SSM
Lorsque vous créez des documents SSM, appliquez les bonnes pratiques de sécurité suivantes pour empêcher l’injection de commandes et garantir une gestion sécurisée des paramètres :
-
Utilisez l’interpolation des variables d’environnement pour les paramètres de chaîne qui seront utilisés dans les commandes ou les scripts. Ajoutez la propriété
interpolationTypeavec la valeurENV_VARaux paramètres de votre chaîne :{ "command": { "type": "String", "description": "Command to execute", "interpolationType": "ENV_VAR" } }Vous pouvez encore améliorer la sécurité de vos documents SSM en spécifiant que les guillemets ne sont pas acceptés dans les valeurs fournies par interpolation :
{ "command": { "type": "String", "description": "Command to execute", "interpolationType": "ENV_VAR", "allowedPattern": "^[^"]*$" } } -
Lorsque vous utilisez des langages interprétés, comme Python, Ruby ou Node.js, référencez les paramètres à l’aide de la syntaxe de variable d’environnement appropriée :
# Python example import os command = os.environ['SSM_Message'] -
Pour une compatibilité descendante avec les anciennes versions de SSM Agent (antérieures à la version 3.3.2746.0), incluez une logique de secours pour les variables d’environnement :
if [ -z "${SSM_command+x}" ]; then export SSM_command="{{command}}" fi -
Combinez l’interpolation des variables d’environnement avec
allowedPatternpour une validation supplémentaire des entrées. Dans l’exemple suivant, la valeurallowedPattern^[^"]*$empêche spécifiquement les guillemets doubles dans la valeur de chaîne :{ "command": { "type": "String", "interpolationType": "ENV_VAR", "allowedPattern": "^[a-zA-Z0-9_-]+$" } } -
Avant d’implémenter votre document SSM, vérifiez les considérations de sécurité suivantes :
-
Tous les paramètres de chaîne qui acceptent les entrées utilisateur utilisent l’interpolation des variables d’environnement le cas échéant.
-
La validation des entrées est mise en œuvre en utilisant
allowedPatternquand cela est possible. -
Le document inclut la gestion des erreurs appropriée pour le traitement des paramètres.
-
La rétrocompatibilité est maintenue pour les environnements utilisant des versions plus anciennes de SSM Agent.
-
Pour plus d'informations sur les ressources AWS appartenant aux services auxquelles Systems Manager accède et sur la manière de configurer les politiques de périmètre des données, consultez. Périmètres de données en AWS Systems Manager
Clonage d'un document SSM
Vous pouvez cloner AWS Systems Manager des documents à l'aide de la console Systems Manager Documents pour créer des documents SSM. Le clonage de documents SSM copie le contenu d'un document existant vers un nouveau document que vous pouvez modifier. Vous ne pouvez pas cloner un document dont la taille est supérieure à 64 Ko.
Pour cloner un document SSM
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. Dans le panneau de navigation, cliquez sur Documents.
-
Dans la zone de recherche, saisissez le nom du document que vous voulez cloner.
-
Sélectionnez le nom du document à cloner, puis sélectionnez Clone document (Cloner un document) dans le menu déroulant Actions.
-
Modifiez le document selon vos préférences, puis sélectionnez Create document (Créer un document) pour enregistrer le document.
Après avoir écrit le contenu du document SSM, vous pouvez utiliser votre contenu pour créer un document SSM à l'aide de l'une des méthodes suivantes.
Créer des documents SSM
Création de documents composites
Un document composite AWS Systems Manager (SSM) est un document personnalisé qui exécute une série d'actions en exécutant un ou plusieurs documents SSM secondaires. Les documents composites favorisent l'infrastructure en tant que code en vous permettant de créer un jeu standard de documents SSM pour des tâches courantes telles que l'amorçage de logiciel ou la jonction d'instances à un domaine. Vous pouvez ensuite partager ces documents Comptes AWS dans un même document Région AWS afin de réduire la maintenance des documents SSM et de garantir la cohérence.
Par exemple, vous pouvez créer un document composite qui effectue les actions suivantes :
-
Installe tous les correctifs de la liste autorisée.
-
Installer un logiciel antivirus.
-
Télécharger des scripts à partir de GitHub et les exécuter.
Dans cet exemple, votre document SSM personnalisé inclut les plugins suivants pour effectuer ces actions :
-
Le plugin
aws:runDocumentpour exécuter le documentAWS-RunPatchBaseline, qui installe tous les correctifs autorisés répertoriés. -
Le plugin
aws:runDocumentpour exécuter le documentAWS-InstallApplication, qui installe le logiciel antivirus. -
Le plugin
aws:downloadContentpour télécharger des scripts à partir de GitHub et les exécuter.
Les documents composites et secondaires peuvent être stockés dans Systems Manager, GitHub (référentiels publics et privés) ou dans Amazon S3. Les documents composites et secondaires peuvent être créés au format JSON ou YAML.
Note
Les documents composites peuvent exécuter une profondeur maximale de trois documents. Cela signifie qu'un document composite peut appeler un document enfant, et que celui-ci peut appeler un dernier document.
Pour créer un document composite, ajoutez le plugin aws:runDocument dans un document SSM personnalisé et spécifiez les entrées obligatoires. L'exemple suivant présente un document composite qui effectue les actions suivantes :
-
Exécute le plugin aws:downloadContent pour télécharger un document SSM à partir d’un référentiel public GitHub vers un répertoire local appelé bootstrap. Le document SSM s'appelle StateManagerBootstrap .yml (un document YAML).
-
Exécute le
aws:runDocumentplugin pour exécuter le document StateManagerBootstrap .yml. Aucun paramètre n'est spécifié. -
Exécute le plugin
aws:runDocumentpour exécuter le document SSMAWS-ConfigureDocker pre-defined. Les paramètres spécifiés installent Docker sur l'instance.
{ "schemaVersion": "2.2", "description": "My composite document for bootstrapping software and installing Docker.", "parameters": { }, "mainSteps": [ { "action": "aws:downloadContent", "name": "downloadContent", "inputs": { "sourceType": "GitHub", "sourceInfo": "{\"owner\":\"TestUser1\",\"repository\":\"TestPublic\", \"path\":\"documents/bootstrap/StateManagerBootstrap.yml\"}", "destinationPath": "bootstrap" } }, { "action": "aws:runDocument", "name": "runDocument", "inputs": { "documentType": "LocalPath", "documentPath": "bootstrap", "documentParameters": "{}" } }, { "action": "aws:runDocument", "name": "configureDocker", "inputs": { "documentType": "SSMDocument", "documentPath": "AWS-ConfigureDocker", "documentParameters": "{\"action\":\"Install\"}" } } ] }
- Plus d'informations
-
-
Pour plus d'informations sur le redémarrage des serveurs et des instances en appelant des scripts à l'aide de Run Command, consultez Gestion des redémarrages lors de l'exécution de commandes.
-
Pour plus d'informations sur les plugins que vous pouvez ajouter à un document SSM personnalisé, consultez Référence de plug-in de document Command.
-
Si vous souhaitez simplement exécuter un document à partir d'un emplacement distant (sans créer de document composite), consultez Exécution de documents à partir d'emplacements distants.
-