Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione del contenuto del documento SSM
Se i documenti AWS Systems Manager pubblici non eseguono tutte le azioni che desideri eseguire sulle tue AWS risorse, puoi creare i tuoi documenti SSM. È inoltre possibile clonare documenti SSM tramite la console. La clonazione copia il contenuto da un documento esistente in un nuovo documento che è possibile modificare. Il contenuto del documento non deve superare i 64 KB, incluso il contenuto specificato per i parametri di input in fase di esecuzione. Per i nuovi Command o Policy i documenti, consigliamo la versione dello schema 2.2 o successiva. Questa versione supporta la modifica dei documenti, il controllo automatico delle versioni, il sequenziamento e altro ancora.
Scrittura del contenuto del documento SSM
Per creare il proprio contenuto del documento SSM, è importante comprendere i diversi schemi, plugin, le diverse funzionalità e la diversa sintassi disponibili per i documenti SSM. Si consiglia di acquisire familiarità con le seguenti risorse.
AWS i documenti SSM predefiniti potrebbero eseguire alcune delle azioni richieste. È possibile richiamare questi documenti utilizzando i plugin aws:runDocument, aws:runCommand o aws:executeAutomation all'interno del documento SSM personalizzato, a seconda del tipo di documento. È inoltre possibile copiare parti di tali documenti in un documento SSM personalizzato e modificare il contenuto in base alle proprie esigenze.
Suggerimento
Durante la creazione del contenuto del documento SSM, è possibile modificare il contenuto e aggiornare il documento più volte durante il test. I comandi seguenti aggiornano il documento SSM con il contenuto più recente e aggiornano la versione predefinita del documento alla versione più recente.
Nota
I comandi Linux e Windows utilizzano lo strumento a riga di comando jq per filtrare i dati di risposta JSON.
Best practice per la sicurezza dei documenti SSM
Durante la creazione di documenti SSM, segui queste best practice per la sicurezza, per evitare l'iniezione di comandi e garantire una gestione sicura dei parametri:
-
Utilizza l'interpolazione delle variabili di ambiente per i parametri di stringa che verranno utilizzati nei comandi o negli script. Aggiungi la proprietà di
interpolationTypecon valoreENV_VARai tuoi parametri di stringa:{ "command": { "type": "String", "description": "Command to execute", "interpolationType": "ENV_VAR" } }Puoi migliorare ulteriormente la sicurezza dei tuoi documenti SSM specificando che le virgolette doppie non sono accettate nei valori forniti per interpolazione:
{ "command": { "type": "String", "description": "Command to execute", "interpolationType": "ENV_VAR", "allowedPattern": "^[^"]*$" } } -
Quando si utilizzano linguaggi interpretati come Python, Ruby o Node.js, si fa riferimento ai parametri utilizzando la sintassi della variabile di ambiente appropriata:
# Python example import os command = os.environ['SSM_Message'] -
Per la compatibilità retroattiva con le versioni SSM Agent precedenti (precedenti alla versione 3.3.2746.0), includi la logica di fallback per le variabili di ambiente:
if [ -z "${SSM_command+x}" ]; then export SSM_command="{{command}}" fi -
Combina l'interpolazione delle variabili di ambiente con
allowedPatternper una convalida aggiuntiva degli input. Nell'esempio seguente, il valore diallowedPattern^[^"]*$impedisce specificamente le virgolette doppie nel valore della stringa:{ "command": { "type": "String", "interpolationType": "ENV_VAR", "allowedPattern": "^[a-zA-Z0-9_-]+$" } } -
Prima di implementare il documento SSM, verifica le seguenti considerazioni sulla sicurezza:
-
Tutti i parametri di stringa che accettano l'input dell'utente utilizzano l'interpolazione delle variabili di ambiente, quando appropriato.
-
La convalida dell'input viene implementata utilizzando
allowedPattern, ove possibile. -
Il documento include la gestione appropriata degli errori per l'elaborazione dei parametri.
-
La compatibilità retroattiva viene mantenuta per gli ambienti che utilizzano versioni SSM Agent precedenti.
-
Per informazioni sulle risorse di AWS proprietà del servizio a cui accede Systems Manager e su come configurare le politiche perimetrali dei dati, vedere. Perimetri di dati in AWS Systems Manager
Clonazione di un documento SSM
È possibile clonare AWS Systems Manager i documenti utilizzando la console Systems Manager Documents per creare documenti SSM. La clonazione di documenti SSM consente di copiare il contenuto da un documento esistente in un nuovo documento che è possibile modificare. Non puoi clonare un documento di dimensioni superiori a 64 KB.
Per clonare un documento SSM
Aprire la AWS Systems Manager console all'indirizzo. https://console.aws.amazon.com/systems-manager/
Nel pannello di navigazione, scegli Documenti.
-
Nella casella di ricerca, inserire il nome del documento che si desidera clonare.
-
Scegliere il nome del documento che si desidera clonare, quindi scegliere Clone document (Clona documento) nel menu a tendina Actions (Operazioni).
-
Modificare il documento come si preferisce, quindi scegliereCreate document (Crea documento) per salvare il documento.
Dopo aver scritto il contenuto del documento SSM, è possibile utilizzarlo per creare un documento SSM tramite uno dei seguenti metodi.
Creare documenti SSM
Creazione di documenti compositi
Un documento composito AWS Systems Manager (SSM) è un documento personalizzato che esegue una serie di azioni eseguendo uno o più documenti SSM secondari. I documenti compositi promuovono l'Infrastructure as Code consentendo di creare un set standard di documenti SSM per attività comuni, come processi di bootstrap di software o l'aggiunta di domini a istanze. È quindi possibile condividere questi documenti Account AWS in un unico documento Regione AWS per ridurre la manutenzione dei documenti SSM e garantire la coerenza.
Ad esempio, puoi creare un documento composito che esegue le seguenti operazioni:
-
Installa tutte le patch nell'elenco Consenti.
-
Installa il software antivirus.
-
Scarica script da GitHub e li esegue.
In questo esempio, il documento SSM personalizzato include i seguenti plugin per effettuare le operazioni riportate di seguito:
-
Il plug-in
aws:runDocumentper eseguire il documentoAWS-RunPatchBaseline, che installa tutte le patch consentite elencate. -
Il plugin
aws:runDocumentper eseguire il documentoAWS-InstallApplication, che installa il software antivirus. -
Il plug-in
aws:downloadContentper scaricare script da GitHub ed eseguirli.
I documenti compositi e secondari possono essere archiviati in Systems Manager, GitHub (repository pubblici e privati) o Amazon S3. I documenti compositi e secondari possono essere create in formato JSON o YAML.
Nota
I documenti compositi possono essere eseguiti solo a una profondità massima di tre documenti. Ciò significa che un documento composito può chiamare un documento figlio e che questo documento figlio può chiamare un ultimo documento.
Per creare un documento composito, aggiungere il plug-in aws:runDocument in un documento SSM personalizzato e specificare gli input necessari. L'esempio qui sotto mostra un documento composito che effettua le seguenti operazioni:
-
Esegue il plug-in aws:downloadContent per scaricare un documento SSM da un repository GitHub pubblico in una directory locale denominata bootstrap. Il documento SSM si chiama StateManagerBootstrap.yml (un documento YAML).
-
Esegue il
aws:runDocumentplugin per eseguire il documento. StateManagerBootstrap.yml Non è specificato alcun parametro. -
Esegue il plugin
aws:runDocumentper eseguire il documento SSM diAWS-ConfigureDocker pre-defined. I parametri specificati installano Docker sull'istanza.
{ "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\"}" } } ] }
- Ulteriori informazioni
-
-
Per ulteriori informazioni sul riavvio dei server e delle istanze quando usi Run Command per chiamare gli script, consulta Gestione di riavvii durante l'esecuzione dei comandi.
-
Per ulteriori informazioni sui plugin che è possibile aggiungere a un documento SSM personalizzato, consultare Documentazione di riferimento del plugin per i documenti di comando.
-
Se desideri eseguire un documento da una posizione remota (senza creare un documento composito), consulta Esecuzione di documenti da posizioni remote.
-