

• Das AWS Systems Manager CloudWatch Dashboard wird nach dem 30. April 2026 nicht mehr verfügbar sein. Kunden können weiterhin die CloudWatch Amazon-Konsole verwenden, um ihre CloudWatch Amazon-Dashboards anzusehen, zu erstellen und zu verwalten, so wie sie es heute tun. Weitere Informationen finden Sie in der [Amazon CloudWatch Dashboard-Dokumentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS Systems Manager-Documents
<a name="documents"></a>

Ein AWS Systems Manager Dokument (SSM-Dokument) definiert die Aktionen, die Systems Manager auf Ihren verwalteten Instanzen ausführt. Systems Manager umfasst mehr als 100 vorkonfigurierter Dokumente, die Sie verwenden können, indem Sie zur Laufzeit Parameter angeben. Vorkonfigurierte Dokumente finden Sie in der Systems-Manager-Dokumentenkonsole, indem Sie die Registerkarte **Owned by Amazon** (Eigentum von Amazon) auswählen. Alternativ können Sie beim Aufrufen des API-Vorgangs `Owner` für den Filter `ListDocuments` Amazon angeben. Dokumente verwenden JavaScript Object Notation (JSON) oder YAML und enthalten Schritte und Parameter, die Sie angeben. 

Aus Sicherheitsgründen unterstützen SSM-Dokumente seit dem 14. Juli 2025 die Interpolation von Umgebungsvariablen bei der Verarbeitung von Parametern. Dieses Feature, das in Schemaversion 2.2 und in SSM Agent-Version 3.3.2746.0 oder höher verfügbar ist, trägt dazu bei, Angriffe mit Befehlseinschleusung zu verhindern.

Um mit SSM-Dokumenten zu beginnen, öffnen Sie die [Systems-Manager-Konsole](https://console.aws.amazon.com/systems-manager/documents). Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

**Wichtig**  
In Systems Manager ist ein zu *Amazon gehörendes* SSM-Dokument ein Dokument, das von Amazon Web Services selbst erstellt und verwaltet wird. Dokumente, *die Amazon gehören*, enthalten ein Präfix wie `AWS-*` im Dokumentnamen. Als Eigentümer des Dokuments gilt Amazon und nicht als ein bestimmtes Benutzerkonto innerhalb AWS. Diese Dokumente sind öffentlich zugänglich und können von allen verwendet werden.

## Wie kann meine Organisation vom Documents-Tool profitieren?
<a name="ssm-docs-benefits"></a>

Documents, ein Tool in AWS Systems Manager, bietet folgende Vorteile:
+ **Kategorien von Dokumenten**

  Zur einfacheren Suche nach den benötigten Dokumenten wählen Sie je nach Typ des gesuchten Dokuments eine Kategorie aus. Um die Suche zu erweitern, können Sie mehrere Kategorien desselben Dokumenttyps auswählen. Die Auswahl von Kategorien verschiedener Dokumenttypen wird nicht unterstützt. Kategorien werden nur für Dokumente im Besitz von Amazon unterstützt.
+  **Dokumentversionen** 

  Sie können unterschiedliche Versionen von Dokumenten erstellen und speichern. Anschließend können Sie eine Standardversion für jedes Dokument angeben. Die Standardversion eines Dokuments kann auf eine neuere Version aktualisiert und wieder auf eine ältere Version zurückgesetzt werden. Wenn Sie den Inhalt eines Dokuments ändern, inkrementiert Systems Manager automatisch die Versionsnummer des Dokuments. Sie können jede Version eines Dokuments abrufen oder verwenden, indem Sie die Dokumentversion in der Konsole, AWS Command Line Interface (AWS CLI) -Befehlen oder API-Aufrufen angeben.
+  **Anpassen von Dokumenten an die eigenen Bedürfnisse** 

  Wenn Sie die Schritte und Aktionen in einem Dokument anpassen möchten, können Sie Ihre eigenen Dokumente erstellen. Das System speichert das Dokument zusammen mit Ihrem Namen, AWS-Konto in dem AWS-Region Sie es erstellt haben. Weitere Informationen zum Erstellen eines SSM-Dokuments finden Sie unter [Erstellen von SSM-Dokumentinhalten](documents-creating-content.md).
+  **Markieren von Dokumenten** 

  Sie können Ihre Dokumente markieren, um sie später anhand der zugewiesenen Tags schnell zu identifizieren. Beispielsweise können Sie Dokumente für bestimmte Umgebungen, Abteilungen, Benutzer, Gruppen oder Zeiträume markieren. Sie können den Zugriff auf Dokumente auch einschränken, indem Sie eine AWS Identity and Access Management (IAM-) Richtlinie erstellen, die festlegt, auf welche Tags ein Benutzer oder eine Gruppe zugreifen kann.
+  **Freigeben von Dokumenten** 

  Sie können Ihre Dokumente öffentlich zugänglich machen oder für bestimmte AWS-Konten in derselben AWS-Region freigeben. Das Freigeben von Dokumenten für mehrere Konten kann sinnvoll sein, wenn z. B. alle Amazon Elastic Compute Cloud (Amazon EC2)-Instances, die Sie Kunden oder Mitarbeitenden zur Verfügung stellen, die gleiche Konfiguration aufweisen sollen. Möglicherweise möchten Sie nicht nur Anwendungen oder Patches auf den Instances auf dem neuesten Stand halten, sondern auch bestimmte Aktivitäten von Kunden-Instances beschränken. Oder Sie möchten sicherstellen, dass Instances, die von Mitarbeiterkonten organisationsweit genutzt werden, auf bestimmte interne Ressourcen zugreifen können. Weitere Informationen finden Sie unter [Freigeben von SSM-Dokumenten](documents-ssm-sharing.md).

## Wer sollte Documents verwenden?
<a name="documents-who"></a>
+ Jeder AWS Kunde, der Systems Manager Manager-Tools verwenden möchte, um seine betriebliche Effizienz in großem Umfang zu verbessern, Fehler im Zusammenhang mit manuellen Eingriffen zu reduzieren und die Zeit bis zur Lösung häufiger Probleme zu verkürzen.
+ Infrastrukturexperten, die Bereitstellungs- und Konfigurationsaufgaben automatisieren möchten.
+ Administratoren, die häufig auftretende Probleme zuverlässig lösen, die Effizienz bei der Fehlerbehebung verbessern und die Anzahl sich wiederholender Vorgänge reduzieren möchten.
+ Benutzer, die eine Aufgabe automatisieren möchten, die sie normalerweise manuell ausführen.

## Welche Typen von SSM-Dokumenten gibt es?
<a name="what-are-document-types"></a>

Die folgende Tabelle beschreibt die verschiedenen Arten von SSM-Dokumenten und ihre jeweilige Nutzung.


****  

| Typ | Verwendet mit | Details | 
| --- | --- | --- | 
|  ApplicationConfiguration ApplicationConfigurationSchema  |   [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html)   |  AWS AppConfig, ein Tool in AWS Systems Manager, ermöglicht es Ihnen, Anwendungskonfigurationen zu erstellen, zu verwalten und schnell bereitzustellen. Sie können Konfigurationsdaten in einem SSM-Dokument speichern, indem Sie ein Dokument erstellen, das den Dokumenttyp `ApplicationConfiguration` verwendet. Weitere Informationen finden Sie unter [Freeform configurations](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html#free-form-configurations) (Freiform-Konfigurationen) im *AWS AppConfig Benutzerhandbuch*. Wenn Sie eine Konfiguration in einem SSM-Dokument erstellen, müssen Sie ein entsprechendes JSON-Schema angeben. Das Schema verwendet den `ApplicationConfigurationSchema`-Dokumenttyp und definiert wie ein Regelsatz die zulässigen Eigenschaften für jede Anwendungskonfigurationseinstellung. Weitere Informationen finden Sie unter [About validators](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-validators.html) (Informationen zu Validatoren) im *AWS AppConfig -Benutzerhandbuch*.  | 
|  Automation-Runbook  |   [Automation](systems-manager-automation.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  Verwenden Sie Automation-Runbooks, wenn Sie allgemeine Wartungs- und Bereitstellungsaufgaben durchführen, wie z. B. das Erstellen oder Aktualisieren eines Amazon Machine Image (AMI). State Manager verwendet Automation-Runbooks, um eine Konfiguration anzuwenden. Diese Aktionen können während des Lebenszyklus einer Instance jederzeit für ein oder mehrere Ziele ausgeführt werden. Maintenance Windows verwendet Automation-Runbooks, um basierend auf dem angegebenen Zeitplan allgemeine Wartungs- und Bereitstellungsaufgaben durchzuführen. Alle Automation-Runbooks, die für Linux-basierte Betriebssysteme unterstützt werden, werden auch auf EC2-Instances für macOS unterstützt.  | 
|  Kalenderdokument ändern  |   [Change Calendar](systems-manager-change-calendar.md)   |  Change Calendar, ein Tool in AWS Systems Manager, verwendet den `ChangeCalendar` Dokumenttyp. Ein Change Calendar-Dokument speichert einen Kalendereintrag und zugehörige Ereignisse, die es ermöglichen oder verhindern können, dass Automation-Aktionen Ihre Umgebung verändern. In Change Calendar speichert ein Dokument [iCalendar 2.0](https://icalendar.org/)-Daten im Klartextformat. Change Calendar wird auf EC2-Instances für macOS nicht unterstützt.  | 
|  AWS CloudFormation Vorlage  |   [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)   |  AWS CloudFormation Vorlagen beschreiben die Ressourcen, die Sie in Ihren CloudFormation Stacks bereitstellen möchten. Durch das Speichern von CloudFormation Vorlagen als Systems Manager-Dokumente können Sie von den Dokumentfunktionen von Systems Manager profitieren. Dazu gehören das Erstellen und Vergleichen mehrerer Versionen Ihrer Vorlage und das Freigeben Ihrer Vorlage für andere Konten in derselben AWS-Region. Sie können CloudFormation Vorlagen und Stapel mithilfe Application Manager eines Tools in Systems Manager erstellen und bearbeiten. Weitere Informationen finden Sie unter [Arbeiten mit CloudFormation Vorlagen und Stapeln in Application Manager](application-manager-working-stacks.md).  | 
|  Befehlsdokument  |   [Run Command](run-command.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  Run Command, ein Tool in AWS Systems Manager, verwendet Befehlsdokumente, um Befehle auszuführen. State Manager, ein Tool in AWS Systems Manager, verwendet Befehlsdokumente, um eine Konfiguration anzuwenden. Diese Aktionen können zu einem beliebigen Zeitpunkt im Lebenszyklus einer Instance auf einem oder mehreren Zielen ausgeführt werden. Maintenance Windows, ein Tool in AWS Systems Manager, verwendet Befehlsdokumente, um eine Konfiguration auf der Grundlage des angegebenen Zeitplans anzuwenden. Die meisten Befehlsdokumente werden unter allen Linux- und Windows Server-Betriebssystemen von Systems Manager unterstützt. Die folgenden Befehlsdokumente werden auf EC2-Instances für macOS unterstützt: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/documents.html)  | 
|  AWS Config Vorlage für ein Konformitätspaket  |   [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)   |  AWS Config Vorlagen für Konformitätspakete sind Dokumente im YAML-Format, die zur Erstellung von Konformitätspaketen verwendet werden. Sie enthalten die Liste der AWS Config verwalteten oder benutzerdefinierten Regeln und Abhilfemaßnahmen. Weitere Informationen finden Sie unter [Konformitätspakete](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html).  | 
|  Paketdokument  |   [Distributor](distributor.md)   |  In Distributor, einem Tool in AWS Systems Manager, wird ein Paket durch ein SSM-Dokument dargestellt. Ein Paketdokument enthält angefügte ZIP-Archivdateien mit Software oder Ressourcen zur Installation auf verwalteten Instances. Durch die Erstellung eines Pakets in Distributor wird das Paketdokument erstellt. Distributor wird unter Oracle Linux und macOS verwalteten Instances nicht unterstützt.  | 
|  Richtliniendokument  |   [State Manager](systems-manager-state.md)   |  Inventory, ein Tool in AWS Systems Manager, verwendet das `AWS-GatherSoftwareInventory` Richtliniendokument mit einer State Manager Verknüpfung, um Inventardaten von verwalteten Instanzen zu sammeln. Beim Erstellen eigener SSM-Dokumente sind Automation-Runbooks und Command-Dokumente die bevorzugte Methode zum Durchsetzen einer Richtlinie auf einer verwalteten Instance. Systems Manager Inventory und `AWS-GatherSoftwareInventory`-Richtliniendokument werden auf allen Betriebssystemen unterstützt, die von Systems Manager unterstützt werden.  | 
|  Vorlage für die Analyse nach einem Vorfall  |   [Incident Manager-Analyse nach einem Vorfall](https://docs.aws.amazon.com/incident-manager/latest/userguide/analysis.html)   |  Incident Manager verwendet die Vorlage für die Analyse nach einem Vorfall, um eine Analyse zu erstellen, die auf bewährten Methoden für das AWS Betriebsmanagement basiert. Erstellen Sie mithilfe der Vorlage eine Analyse, mit der Ihr Team Verbesserungen für die Reaktion auf Vorfälle ermitteln kann.   | 
|  Sitzungsdokument  |   [Session Manager](session-manager.md)   |  Session Manager, ein Tool in AWS Systems Manager, bestimmt anhand von Sitzungsdokumenten, welcher Sitzungstyp gestartet werden soll, z. B. eine Portweiterleitungssitzung, eine Sitzung zur Ausführung eines interaktiven Befehls oder eine Sitzung zur Erstellung eines SSH-Tunnels. Befehlsdokumente werden unter allen Linux- und Windows Server-Betriebssystemen von Systems Manager unterstützt. Die folgenden Befehlsdokumente werden auf EC2-Instances für macOS unterstützt: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/documents.html)  | 

**SSM-Dokumentkontingente**  
Informationen zu SSM-Dokumentkontingenten finden Sie unter [Systems Manager Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) in der *Allgemeine Amazon Web Services-Referenz*.

**Topics**
+ [

## Wie kann meine Organisation vom Documents-Tool profitieren?
](#ssm-docs-benefits)
+ [

## Wer sollte Documents verwenden?
](#documents-who)
+ [

## Welche Typen von SSM-Dokumenten gibt es?
](#what-are-document-types)
+ [

# Dokument-Komponenten
](documents-components.md)
+ [

# Erstellen von SSM-Dokumentinhalten
](documents-creating-content.md)
+ [

# Arbeiten mit Dokumenten
](documents-using.md)
+ [

# Beheben von Fehlern mit der Parameterverarbeitung
](parameter-troubleshooting.md)

# Dokument-Komponenten
<a name="documents-components"></a>

Dieser Bereich enthält Informationen zu den Komponenten, aus denen sich SSM-Dokumente zusammensetzen.

**Topics**
+ [

# Schemata, Features und Beispiele
](documents-schemas-features.md)
+ [

# Datenelemente und Parameter
](documents-syntax-data-elements-parameters.md)
+ [

# Referenz für Befehlsdokument-Plugins
](documents-command-ssm-plugin-reference.md)

# Schemata, Features und Beispiele
<a name="documents-schemas-features"></a>

AWS Systems Manager (SSM) -Dokumente verwenden die folgenden Schemaversionen.
+ Dokumente des Typs `Command` können die Schema-Versionen 1.2, 2.0 und 2.2 verwenden. Wenn Sie Schema 1.2-Dokumente verwenden, empfehlen wir, dass Sie Dokumente erstellen, die Schema-Version 2.2 verwenden.
+ Dokumente des Typs `Policy` müssen Schema-Version 2.0 oder höher verwenden.
+ Dokumente des Typs `Automation` müssen Schema-Version 0.3 verwenden.
+ Dokumente des Typs `Session` müssen Schema-Version 1.0 verwenden.
+ Sie können Dokumente im JSON- oder YAML-Format erstellen.

Weitere Informationen zu `Session`-Dokumentschemas finden Sie unter [Schema des Sitzungsdokuments](session-manager-schema.md).

Durch die Verwendung der neuesten Schema-Version `Command`- und `Policy`-Dokumente können Sie die folgenden Features nutzen.


**Features für Schema-Version 2.2-Dokumente**  

| Feature | Details | 
| --- | --- | 
|  Dokumentbearbeitung  |  Dokumente können jetzt aktualisiert werden. Bei Version 1.2 mussten aktualisierte Dokument unter einem anderen Namen gespeichert werden.  | 
|  Automatisches Versioning  |  Bei jeder Änderung an einem Dokument wird eine neue Version erstellt. Dies ist kein Schema-Version, sondern eine Version des Dokuments.  | 
|  Standardversion  |  Wenn Sie mehrere Versionen eines Dokuments haben, können Sie festlegen, welche Version das Standarddokument ist.  | 
|  Sequenzierung  |  Plugins oder *Schritte* in einem Dokument werden in der Reihenfolge ausgeführt, die Sie angegeben haben.  | 
|  Unterstützung für plattformübergreifende Anweisungen  |  Die Unterstützung für plattformübergreifende Anweisungen ermöglicht die Angabe unterschiedlicher Betriebssysteme für verschiedene Plugins innerhalb desselben SSM-Dokuments. Plattformübergreifende Anweisungen verwenden in einem Schritt den Parameter `precondition`.   | 
| Parameterinterpolation | Interpolation bedeutet, einen Variablenwert in einer Zeichenfolge einzufügen oder zu ersetzen. Sie füllen sozusagen eine Lücke mit Werten, bevor die Zeichenfolge verwendet wird. Im Zusammenhang mit SSM-Dokumenten ermöglicht die Parameterinterpolation, Zeichenfolgeparameter vor der Befehlsausführung in Umgebungsvariablen zu interpolieren, was mehr Schutz vor Befehlseinschleusungen bietet. Wenn diese Option auf `ENV_VAR` gesetzt ist, erstellt der Agent eine Umgebungsvariable mit dem Namen `SSM_parameter-name`, die den Wert des Parameters enthält. | 

**Anmerkung**  
Sie müssen Ihre Instanzen mit der neuesten Version AWS Systems Manager SSM Agent auf dem neuesten Stand halten, um die neuen Systems Manager Manager-Funktionen und SSM-Dokumentfunktionen nutzen zu können. Weitere Informationen finden Sie unter [Aktualisierung von SSM Agent mithilfe von Run Command](run-command-tutorial-update-software.md#rc-console-agentexample).

In der folgenden Tabelle finden Sie die Unterschiede zwischen de Schema-Hauptversionen.


****  

| Version 1.2 | Version 2.2 (neueste Version) | Details | 
| --- | --- | --- | 
|  runtimeConfig  |  mainSteps  |  In Version 2.2 ersetzt der Abschnitt `mainSteps` `runtimeConfig`. Im Abschnitt `mainSteps` erlaubt Systems Manager das Ausführen von nacheinander folgenden Schritten.  | 
|  Eigenschaften  |  inputs  |  In Version 2.2 ersetzt der Abschnitt `inputs` den Abschnitt `properties`. Der Abschnitt `inputs` nimmt Parameter für Schritte entgegen.  | 
|  commands  |  runCommand  |  In Version 2.2 ersetzt im Abschnitt `inputs` der Parameter `runCommand` den Parameter `commands`.  | 
|  id  |  action  |  In Version 2.2 ersetzt `Action` `ID`. Dies ist lediglich eine Umbenennung.  | 
|  n.v.  |  Name  |  In Version 2.2 ist `name` ein benutzerdefinierter Name für einen Schritt.  | 

**Verwenden des Parameters „precondition“**  
Bei Schema-Version 2.2 oder neuer können Sie mithilfe des Parameters `precondition` das Zielbetriebssystem für jedes Plugin angeben oder um Eingabeparameter zu validieren, die Sie in Ihrem SSM-Dokument definiert haben. Der `precondition`-Parameter unterstützt die Referenzierung der Eingabeparameter Ihres SSM-Dokuments und `platformType` unter Verwendung von Werten von `Linux`, `MacOS` und `Windows`. Nur der `StringEquals`-Operator wird unterstützt.

Wenn bei Dokumenten in Schema-Version 2.2 oder höher `precondition` nicht angegeben ist, werden Plugins entweder ausgeführt oder übersprungen, je nachdem, ob das Plugin mit dem jeweiligen Betriebssystem kompatibel ist. Plugin-Kompatibilität mit dem Betriebssystem wird vor der `precondition` ausgewertet. Bei Dokumenten, die Schema-Version 2.0 oder eine frühere Version verwenden, wird bei nicht kompatiblen Plugins ein Fehler ausgelöst.

Wenn beispielsweise in einem Schema-Version 2.2-Dokument `precondition` nicht angegeben ist und das `aws:runShellScript`-Plugin zur Ausführung aufgelistet ist, wird der Schritt auf Linux-Instances ausgeführt, aber auf Windows Server-Instances übersprungen, da `aws:runShellScript` nicht kompatibel mit Windows Server-Instances ist. Bei Schema-Version 2.0 Dokumenten schlägt jedoch die Ausführung fehl, wenn Sie das `aws:runShellScript`-Plugin angeben und dann das Dokument auf einer Windows Server-Instance ausführen. Weiter hinten in diesem Abschnitt finden Sie ein Beispiel der Vorbedingungsparameter in SSM-Dokumenten.

## Schema der Version 2.2
<a name="documents-schema-twox"></a>

**Top-Level-Elemente**  
Das folgende Beispiel zeigt die Elemente der obersten Ebene eines SSM-Dokuments bei Verwendung von Schema-Version 2.2.

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

```
---
schemaVersion: "2.2"
description: A description of the document.
parameters:
  parameter 1:
    property 1: "value"
    property 2: "value"
  parameter 2:
    property 1: "value"
    property 2: "value"
mainSteps:
  - action: Plugin name
    name: A name for the step.
    inputs:
      input 1: "value"
      input 2: "value"
      input 3: "{{ parameter 1 }}"
```

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

```
{
   "schemaVersion": "2.2",
   "description": "A description of the document.",
   "parameters": {
       "parameter 1": {
           "property 1": "value",
           "property 2": "value"
        },
        "parameter 2":{
           "property 1": "value",
           "property 2": "value"
        } 
    },
   "mainSteps": [
      {
         "action": "Plugin name",
         "name": "A name for the step.",
         "inputs": {
            "input 1": "value",
            "input 2": "value",
            "input 3": "{{ parameter 1 }}"
         }
      }
   ]
}
```

------

**Schema-Version 2.2 -Beispiel**  
Im folgenden Beispiel wird das `aws:runPowerShellScript` Plugin verwendet, um einen PowerShell Befehl auf den Zielinstanzen auszuführen.

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

```
---
schemaVersion: "2.2"
description: "Example document"
parameters:
  Message:
    type: "String"
    description: "Example parameter"
    default: "Hello World"
    allowedValues: 
    - "Hello World"
mainSteps:
  - action: "aws:runPowerShellScript"
    name: "example"
    inputs:
      timeoutSeconds: '60'
      runCommand:
      - "Write-Output {{Message}}"
```

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

```
{
   "schemaVersion": "2.2",
   "description": "Example document",
   "parameters": {
      "Message": {
         "type": "String",
         "description": "Example parameter",
         "default": "Hello World",
         "allowedValues": ["Hello World"]
      }
   },
   "mainSteps": [
      {
         "action": "aws:runPowerShellScript",
         "name": "example",
         "inputs": {
            "timeoutSeconds": "60",
            "runCommand": [
               "Write-Output {{Message}}"
            ]
         }
      }
   ]
}
```

------

**Schema der Version 2.2 – Vorbedingungsparameterbeispielen**  
Schema-Version 2.2 bietet Unterstützung für plattformübergreifende Aktionen. Dies bedeutet, dass Sie in einem SSM-Dokument unterschiedliche Betriebssysteme für verschiedene Plugins angeben können. Plattformübergreifende Aktionen werden durch den Parameter `precondition` in einem Schritt aufgerufen, wie in dem folgenden Beispiel dargestellt. Sie können auch den `precondition`-Parameter verwenden, um Eingabeparameter zu validieren, die Sie in Ihrem SSM-Dokument definiert haben. Dies sehen Sie im zweiten der folgenden Beispiele.

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

```
---
schemaVersion: '2.2'
description: cross-platform sample
mainSteps:
- action: aws:runPowerShellScript
  name: PatchWindows
  precondition:
    StringEquals:
    - platformType
    - Windows
  inputs:
    runCommand:
    - cmds
- action: aws:runShellScript
  name: PatchLinux
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - cmds
```

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

```
{
   "schemaVersion": "2.2",
   "description": "cross-platform sample",
   "mainSteps": [
      {
         "action": "aws:runPowerShellScript",
         "name": "PatchWindows",
         "precondition": {
            "StringEquals": [
               "platformType",
               "Windows"
            ]
         },
         "inputs": {
            "runCommand": [
               "cmds"
            ]
         }
      },
      {
         "action": "aws:runShellScript",
         "name": "PatchLinux",
         "precondition": {
            "StringEquals": [
               "platformType",
               "Linux"
            ]
         },
         "inputs": {
            "runCommand": [
               "cmds"
            ]
         }
      }
   ]
}
```

------

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

```
---
schemaVersion: '2.2'
parameters:
  action:
    type: String
    allowedValues:
    - Install
    - Uninstall
  confirmed:
    type: String
    allowedValues:
    - True
    - False
mainSteps:
- action: aws:runShellScript
  name: InstallAwsCLI
  precondition:
    StringEquals:
    - "{{ action }}"
    - "Install"
  inputs:
    runCommand:
    - sudo apt install aws-cli
- action: aws:runShellScript
  name: UninstallAwsCLI
  precondition:
    StringEquals:
    - "{{ action }} {{ confirmed }}"
    - "Uninstall True"
  inputs:
    runCommand:
    - sudo apt remove aws-cli
```

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

```
{
   "schemaVersion": "2.2",
   "parameters": {
      "action": {
         "type": "String",
         "allowedValues": [
            "Install",
            "Uninstall"
         ]
      },
      "confirmed": {
         "type": "String",
         "allowedValues": [
            true,
            false
         ]
      }
   },
   "mainSteps": [
      {
         "action": "aws:runShellScript",
         "name": "InstallAwsCLI",
         "precondition": {
            "StringEquals": [
               "{{ action }}",
               "Install"
            ]
         },
         "inputs": {
            "runCommand": [
               "sudo apt install aws-cli"
            ]
         }
      },
      {
         "action": "aws:runShellScript",
         "name": "UninstallAwsCLI",
         "precondition": {
            "StringEquals": [
               "{{ action }} {{ confirmed }}",
               "Uninstall True"
            ]
         },
         "inputs": {
            "runCommand": [
               "sudo apt remove aws-cli"
            ]
         }
      }
   ]
}
```

------

**Interpolationsbeispiel für Schemaversion 2.2 mit SSM Agent-Versionen vor 3.3.2746.0**  
In SSM Agent-Versionen vor 3.3.2746.0 ignoriert der Agent den `interpolationType`-Parameter und ersetzt stattdessen einfach die Zeichenfolge. Wenn Sie `SSM_parameter-name` referenzieren, müssen Sie dies explizit festlegen. Im folgenden Beispiel für Linux wird explizit auf die Umgebungsvariable `SSM_Message` verwiesen.

```
{
    "schemaVersion": "2.2",
    "description": "An example document",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType" : "ENV_VAR",
	     "allowedPattern: "^[^"]*$"

        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "inputs": {
            "runCommand": [
              "if [ -z "${SSM_Message+x}" ]; then",
              "    export SSM_Message=\"{{Message}}\"",
              "fi",
              "",
              "echo $SSM_Message"
            ]
        }
    }
}
```

**Anmerkung**  
`allowedPattern` ist streng genommen nicht erforderlich, wenn ein SSM-Dokument keine doppelten Klammern verwendet: `{{ }}`

**Schema-Version 2.2 State Manager-Beispiel**  
Sie können das folgende SSM-Dokument mit State Manager nutzen, einem Tool in Systems Manager, um die ClamAV-Antivirensoftware herunterzuladen und zu installieren. State Manager erzwingt eine bestimmte Konfiguration, d. h. jedes Mal, wenn die State Manager-Zuordnung ausgeführt wird, prüft das System, ob die ClamAV-Software installiert ist. Ist dies nicht der Fall, führt State Manager dieses Dokument erneut aus.

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

```
---
schemaVersion: '2.2'
description: State Manager Bootstrap Example
parameters: {}
mainSteps:
- action: aws:runShellScript
  name: configureServer
  inputs:
    runCommand:
    - sudo yum install -y httpd24
    - sudo yum --enablerepo=epel install -y clamav
```

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

```
{
   "schemaVersion": "2.2",
   "description": "State Manager Bootstrap Example",
   "parameters": {},
   "mainSteps": [
      {
         "action": "aws:runShellScript",
         "name": "configureServer",
         "inputs": {
            "runCommand": [
               "sudo yum install -y httpd24",
               "sudo yum --enablerepo=epel install -y clamav"
            ]
         }
      }
   ]
}
```

------

**Schema Version 2.2 - Bestandsbeispiel**  
Sie können das folgende SSM-Dokument mit State Manager verwenden, um Bestandsmetadaten zu Ihren Instances zu erfassen.

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

```
---
schemaVersion: '2.2'
description: Software Inventory Policy Document.
parameters:
  applications:
    type: String
    default: Enabled
    description: "(Optional) Collect data for installed applications."
    allowedValues:
    - Enabled
    - Disabled
  awsComponents:
    type: String
    default: Enabled
    description: "(Optional) Collect data for AWS Components like amazon-ssm-agent."
    allowedValues:
    - Enabled
    - Disabled
  networkConfig:
    type: String
    default: Enabled
    description: "(Optional) Collect data for Network configurations."
    allowedValues:
    - Enabled
    - Disabled
  windowsUpdates:
    type: String
    default: Enabled
    description: "(Optional) Collect data for all Windows Updates."
    allowedValues:
    - Enabled
    - Disabled
  instanceDetailedInformation:
    type: String
    default: Enabled
    description: "(Optional) Collect additional information about the instance, including
      the CPU model, speed, and the number of cores, to name a few."
    allowedValues:
    - Enabled
    - Disabled
  customInventory:
    type: String
    default: Enabled
    description: "(Optional) Collect data for custom inventory."
    allowedValues:
    - Enabled
    - Disabled
mainSteps:
- action: aws:softwareInventory
  name: collectSoftwareInventoryItems
  inputs:
    applications: "{{ applications }}"
    awsComponents: "{{ awsComponents }}"
    networkConfig: "{{ networkConfig }}"
    windowsUpdates: "{{ windowsUpdates }}"
    instanceDetailedInformation: "{{ instanceDetailedInformation }}"
    customInventory: "{{ customInventory }}"
```

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

```
{
   "schemaVersion": "2.2",
   "description": "Software Inventory Policy Document.",
   "parameters": {
      "applications": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for installed applications.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "awsComponents": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for AWS Components like amazon-ssm-agent.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "networkConfig": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for Network configurations.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "windowsUpdates": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for all Windows Updates.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "instanceDetailedInformation": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect additional information about the instance, including\nthe CPU model, speed, and the number of cores, to name a few.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "customInventory": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for custom inventory.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      }
   },
   "mainSteps": [
      {
         "action": "aws:softwareInventory",
         "name": "collectSoftwareInventoryItems",
         "inputs": {
            "applications": "{{ applications }}",
            "awsComponents": "{{ awsComponents }}",
            "networkConfig": "{{ networkConfig }}",
            "windowsUpdates": "{{ windowsUpdates }}",
            "instanceDetailedInformation": "{{ instanceDetailedInformation }}",
            "customInventory": "{{ customInventory }}"
         }
      }
   ]
}
```

------

**Schema-Version 2.2 `AWS-ConfigureAWSPackage`-Beispiel**  
Das folgende Beispiel zeigt das `AWS-ConfigureAWSPackage`-Dokument. Der Abschnitt `mainSteps` enthält das `aws:configurePackage`-Plugin im Schritt `action`.

**Anmerkung**  
In Linux-Betriebssystemen werden nur die `AmazonCloudWatchAgent`- und `AWSSupport-EC2Rescue`-Pakete unterstützt.

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

```
---
schemaVersion: '2.2'
description: 'Install or uninstall the latest version or specified version of an AWS
package. Available packages include the following: AWSPVDriver, AwsEnaNetworkDriver,
  AwsVssComponents, and AmazonCloudWatchAgent, and AWSSupport-EC2Rescue.'
parameters:
  action:
    description: "(Required) Specify whether or not to install or uninstall the package."
    type: String
    allowedValues:
    - Install
    - Uninstall
  name:
    description: "(Required) The package to install/uninstall."
    type: String
    allowedPattern: "^arn:[a-z0-9][-.a-z0-9]{0,62}:[a-z0-9][-.a-z0-9]{0,62}:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:package\\/[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$|^[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$"
  version:
    type: String
    description: "(Optional) A specific version of the package to install or uninstall."
mainSteps:
- action: aws:configurePackage
  name: configurePackage
  inputs:
    name: "{{ name }}"
    action: "{{ action }}"
    version: "{{ version }}"
```

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

```
{
   "schemaVersion": "2.2",
   "description": "Install or uninstall the latest version or specified version of an AWS package. Available packages include the following: AWSPVDriver, AwsEnaNetworkDriver, AwsVssComponents, and AmazonCloudWatchAgent, and AWSSupport-EC2Rescue.",
   "parameters": {
      "action": {
         "description":"(Required) Specify whether or not to install or uninstall the package.",
         "type":"String",
         "allowedValues":[
            "Install",
            "Uninstall"
         ]
      },
      "name": {
         "description": "(Required) The package to install/uninstall.",
         "type": "String",
         "allowedPattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:[a-z0-9][-.a-z0-9]{0,62}:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:package\\/[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$|^[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$"
      },
      "version": {
         "type": "String",
         "description": "(Optional) A specific version of the package to install or uninstall."
      }
   },
   "mainSteps":[
      {
         "action": "aws:configurePackage",
         "name": "configurePackage",
         "inputs": {
            "name": "{{ name }}",
            "action": "{{ action }}",
            "version": "{{ version }}"
         }
      }
   ]
}
```

------

## Schema der Version 1.2
<a name="documents-schema-onex"></a>

Das folgende Beispiel zeigt die Elemente der obersten Ebene eines Dokuments in Schema-Version 1.2.

```
{
   "schemaVersion":"1.2",
   "description":"A description of the SSM document.",
   "parameters":{
      "parameter 1":{
         "one or more parameter properties"
      },
      "parameter 2":{
         "one or more parameter properties"
      },
      "parameter 3":{
         "one or more parameter properties"
      }
   },
   "runtimeConfig":{
      "plugin 1":{
         "properties":[
            {
               "one or more plugin properties"
            }
         ]
      }
   }
}
```

**Schema-Version 1.2 `aws:runShellScript`-Beispiel**  
Das folgende Beispiel zeigt das `AWS-RunShellScript` SSM-Dokument. Der Abschnitt **runtimeConfig** bindet das Plugin `aws:runShellScript` ein.

```
{
    "schemaVersion":"1.2",
    "description":"Run a shell script or specify the commands to run.",
    "parameters":{
        "commands":{
            "type":"StringList",
            "description":"(Required) Specify a shell script or a command to run.",
            "minItems":1,
            "displayType":"textarea"
        },
        "workingDirectory":{
            "type":"String",
            "default":"",
            "description":"(Optional) The path to the working directory on your instance.",
            "maxChars":4096
        },
        "executionTimeout":{
            "type":"String",
            "default":"3600",
            "description":"(Optional) The time in seconds for a command to complete before it is considered to have failed. Default is 3600 (1 hour). Maximum is 172800 (48 hours).",
            "allowedPattern":"([1-9][0-9]{0,3})|(1[0-9]{1,4})|(2[0-7][0-9]{1,3})|(28[0-7][0-9]{1,2})|(28800)"
        }
    },
    "runtimeConfig":{
        "aws:runShellScript":{
            "properties":[
                {
                    "id":"0.aws:runShellScript",
                    "runCommand":"{{ commands }}",
                    "workingDirectory":"{{ workingDirectory }}",
                    "timeoutSeconds":"{{ executionTimeout }}"
                }
            ]
        }
    }
}
```

## Schema der Version 0.3
<a name="automation-doc-syntax-examples"></a>

**Top-Level-Elemente**  
Im folgenden Beispiel werden die Elemente der obersten Ebene eines Automation-Runbook der Schema-Version 0.3im JSON-Format gezeigt.

```
{
    "description": "document-description",
    "schemaVersion": "0.3",
    "assumeRole": "{{assumeRole}}",
    "parameters": {
        "parameter1": {
            "type": "String",
            "description": "parameter-1-description",
            "default": ""
        },
        "parameter2": {
            "type": "String",
            "description": "parameter-2-description",
            "default": ""
        }
    },
    "variables": {
        "variable1": {
            "type": "StringMap",
            "description": "variable-1-description",
            "default": {}
        },
        "variable2": {
            "type": "String",
            "description": "variable-2-description",
            "default": "default-value"
        }
    },
    "mainSteps": [
        {
            "name": "myStepName",
            "action": "action-name",
            "maxAttempts": 1,
            "inputs": {
                "Handler": "python-only-handler-name",
                "Runtime": "runtime-name",
                "Attachment": "script-or-zip-name"
            },
            "outputs": {
                "Name": "output-name",
                "Selector": "selector.value",
                "Type": "data-type"
            }
        }
    ],
    "files": {
        "script-or-zip-name": {
            "checksums": {
                "sha256": "checksum"
            },
            "size": 1234
        }
    }
}
```

**Beispiel für YAML-Automation-Runbook**  
Das folgende Beispiel zeigt den Inhalt eines Automation-Runbooks im YAML-Format. In diesem funktionierenden Beispiel der Version 0.3 des Dokumentschemas wird auch die Verwendung von Markdown zur Formatierung von Dokumentbeschreibungen veranschaulicht.

```
description: >-
  ##Title: LaunchInstanceAndCheckState

  -----

  **Purpose**: This Automation runbook first launches an EC2 instance
  using the AMI ID provided in the parameter ```imageId```. The second step of
  this document continuously checks the instance status check value for the
  launched instance until the status ```ok``` is returned.


  ##Parameters:

  -----

  Name | Type | Description | Default Value

  ------------- | ------------- | ------------- | -------------

  assumeRole | String | (Optional) The ARN of the role that allows Automation to
  perform the actions on your behalf. | -

  imageId  | String | (Optional) The AMI ID to use for launching the instance.
  The default value uses the latest Amazon Linux AMI ID available. | {{
  ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64 }}
schemaVersion: '0.3'
assumeRole: 'arn:aws:iam::111122223333::role/AutomationServiceRole'
parameters:
  imageId:
    type: String
    default: '{{ ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64 }}'
    description: >-
      (Optional) The AMI ID to use for launching the instance. The default value
      uses the latest released Amazon Linux AMI ID.
  tagValue:
    type: String
    default: ' LaunchedBySsmAutomation'
    description: >-
      (Optional) The tag value to add to the instance. The default value is
      LaunchedBySsmAutomation.
  instanceType:
    type: String
    default: t2.micro
    description: >-
      (Optional) The instance type to use for the instance. The default value is
      t2.micro.
mainSteps:
  - name: LaunchEc2Instance
    action: 'aws:executeScript'
    outputs:
      - Name: payload
        Selector: $.Payload
        Type: StringMap
    inputs:
      Runtime: python3.11
      Handler: launch_instance
      Script: ''
      InputPayload:
        image_id: '{{ imageId }}'
        tag_value: '{{ tagValue }}'
        instance_type: '{{ instanceType }}'
      Attachment: launch.py
    description: >-
      **About This Step**


      This step first launches an EC2 instance using the ```aws:executeScript```
      action and the provided python script.
  - name: WaitForInstanceStatusOk
    action: 'aws:executeScript'
    inputs:
      Runtime: python3.11
      Handler: poll_instance
      Script: |-
        def poll_instance(events, context):
          import boto3
          import time

          ec2 = boto3.client('ec2')

          instance_id = events['InstanceId']

          print('[INFO] Waiting for instance status check to report ok', instance_id)

          instance_status = "null"

          while True:
            res = ec2.describe_instance_status(InstanceIds=[instance_id])

            if len(res['InstanceStatuses']) == 0:
              print("Instance status information is not available yet")
              time.sleep(5)
              continue

            instance_status = res['InstanceStatuses'][0]['InstanceStatus']['Status']

            print('[INFO] Polling to get status of the instance', instance_status)

            if instance_status == 'ok':
              break

            time.sleep(10)

          return {'Status': instance_status, 'InstanceId': instance_id}
      InputPayload: '{{ LaunchEc2Instance.payload }}'
    description: >-
      **About This Step**


      The python script continuously polls the instance status check value for
      the instance launched in Step 1 until the ```ok``` status is returned.
files:
  launch.py:
    checksums:
      sha256: 18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE
```

## Beispiele für die sichere Parameterverarbeitung
<a name="secure-parameter-examples"></a>

In den folgenden Beispielen wird die sichere Verarbeitung von Parametern mithilfe der Umgebungsvariable `interpolationType` gezeigt.

### Grundlegende sichere Befehlsausführung
<a name="basic-secure-command"></a>

Dieses Beispiel zeigt, wie ein Befehlsparameter sicher verarbeitet werden kann:

**Anmerkung**  
`allowedPattern` ist in SSD-Dokumenten streng genommen nicht erforderlich, wenn sie keine doppelten Klammern enthalten: `{{ }}` 

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

```
---

schemaVersion: '2.2'
description: An example document.
parameters:
  Message:
    type: String
    description: "Message to be printed"
    default: Hello
    interpolationType: ENV_VAR
    allowedPattern: "^[^"]*$"
mainSteps:
  - action: aws:runShellScript
    name: printMessage
    precondition:
      StringEquals:
        - platformType
        - Linux
    inputs:
      runCommand:
        - echo {{Message}}
```

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

```
{
    "schemaVersion": "2.2",
    "description": "An example document.",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType": "ENV_VAR",
            "allowedPattern": "^[^"]*$"
        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "precondition": {
           "StringEquals": ["platformType", "Linux"]
        },
        "inputs": {
            "runCommand": [
              "echo {{Message}}"
            ]
        }
    }]
}
```

------

### Verwenden von Parametern in interpretierten Sprachen
<a name="interpreted-language-example"></a>

Dieses Beispiel zeigt die sichere Parameterverarbeitung in Python:

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

```
---
schemaVersion: '2.2'
description: 'Secure Python script execution'
parameters:
  inputData:
    type: String
    description: 'Input data for processing'
    interpolationType: 'ENV_VAR'
mainSteps:
  - action: aws:runPowerShellScript
    name: runPython
    inputs:
      runCommand:
        - |
          python3 -c '
          import os
          import json
          
          # Safely access parameter through environment variable
          input_data = os.environ.get("SSM_inputData", "")
          
          # Process the data
          try:
              processed_data = json.loads(input_data)
              print(f"Successfully processed: {processed_data}")
          except json.JSONDecodeError:
              print("Invalid JSON input")
          '
```

------

### Beispiel für die Abwärtskompatibilität
<a name="backwards-compatibility-example"></a>

Dieses Beispiel zeigt, wie Sie Parameter sicher verarbeiten und die Abwärtskompatibilität wahren können:

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

```
---
schemaVersion: '2.2'
description: 'Backwards compatible secure parameter handling'
parameters:
  userInput:
    type: String
    description: 'User input to process'
    interpolationType: 'ENV_VAR'
    allowedPattern: '^[^"]*$'

mainSteps:
  - action: aws:runShellScript
    name: processInput
    inputs:
      runCommand:
        - |
          # Handle both modern and legacy agent versions
          if [ -z "${SSM_userInput+x}" ]; then
              # Legacy agent - fall back to direct parameter reference
              export SSM_userInput="{{userInput}}"
          fi
          
          # Process the input securely
          echo "Processing input: $SSM_userInput"
```

------

**Anmerkung**  
`allowedPattern` ist in SSD-Dokumenten streng genommen nicht erforderlich, wenn sie keine doppelten Klammern enthalten: `{{ }}` 

## Bewährte Methoden für die Parametersicherheit
<a name="parameter-security-best-practices"></a>

Folgen Sie diesen bewährten Methoden beim Verarbeiten von Parametern in SSM-Dokumenten:
+ **Interpolation von Umgebungsvariablen nutzen**: Verwenden Sie immer `interpolationType: "ENV_VAR"` für Zeichenfolgeparameter, die in der Befehlsausführung verwendet werden.
+ **Eingabevalidierung implementieren**: Verwenden Sie `allowedPattern`, um Parameterwerte auf sichere Muster zu beschränken.
+ **Legacy-Systeme**: Fügen Sie Fallback-Logik für ältere Versionen von SSM Agent hinzu, die die Interpolation von Umgebungsvariablen nicht unterstützen.
+ **Sonderzeichen maskieren**: Wenn Sie Parameterwerte in Befehlen verwenden, sollten Sie Sonderzeichen korrekt maskieren, um eine Interpretation durch die Shell zu verhindern.
+ **Parameterbereich einschränken**: Verwenden Sie die restriktivsten Parametermuster, die für Ihren Anwendungsfall möglich sind.

# Datenelemente und Parameter
<a name="documents-syntax-data-elements-parameters"></a>

In diesem Thema werden die in SSM-Dokumenten verwendeten Datenelemente beschrieben. Die Schemaversion, die zum Erstellen eines Dokuments verwendet wird, definiert die Syntax und die Datenelemente, die das Dokument akzeptiert. Es wird empfohlen, Schema-Version 2.2 oder höher für Befehlsdokumente zu verwenden. Automation-Runbooks verwenden die Schema-Version 0.3. Automation-Runbooks unterstützen darüber hinaus die Verwendung von Markdown, einer Markup-Sprache, mit der Sie Wiki-Beschreibungen zu Dokumenten und einzelnen Schritten innerhalb des Dokuments hinzufügen können. Weitere Informationen zur Verwendung von Markdown finden Sie unter [Verwenden von Markdown in der Konsole](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) im *AWS-Managementkonsole -Handbuch „Erste Schritte“*.

Im folgenden Abschnitt werden die Datenelemente beschrieben, die Sie in ein SSM-Dokument aufnehmen können.

## Top-Level-Datenelemente
<a name="top-level"></a>

**schemaVersion**  
Die zu verwendende Schema-Version.  
Typ: Version  
Erforderlich: Ja

**description**  
Von Ihnen angegebene Informationen, um den Zweck des Dokuments zu beschreiben. Sie können dieses Feld auch verwenden, um anzugeben, ob ein Parameter einen Wert für die Ausführung eines Dokuments benötigt oder ob die Bereitstellung eines Werts für den Parameter optional ist. Erforderliche und optionale Parameter sind in den Beispielen dieses Themas zu sehen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Parameter**  
Eine Struktur, die die Parameter definiert, die das Dokument akzeptiert.   
Um die Sicherheit bei der Verarbeitung von Zeichenfolgeparametern zu erhöhen, können Sie die Interpolation von Umgebungsvariablen verwenden, indem Sie die Eigenschaft `interpolationType` angeben. Wenn dies auf `ENV_VAR` gesetzt ist, wird eine Umgebungsvariable mit dem Namen `SSM_parameter-name` erstellt, die den Parameterwert enthält.  
Das folgende Beispiel enthält einen Parameter mit der Umgebungsvariable `interpolationType`:  

```
{
    "schemaVersion": "2.2",
    "description": "An example document.",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType" : "ENV_VAR",
            "allowedPattern": "^[^"]*$"

        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "precondition" : {
           "StringEquals" : ["platformType", "Linux"]
        },
        "inputs": {
            "runCommand": [
              "echo {{Message}}"
            ]
        }
    }
}
```
`allowedPattern` ist in SSD-Dokumenten streng genommen nicht erforderlich, wenn sie keine doppelten Klammern enthalten: `{{ }}` 
Wir empfehlen, häufig verwendete Parameter in Parameter Store zu speichern, einem Tool in AWS Systems Manager. Anschließend können Sie Parameter in Ihrem Dokument definieren, die Parameter Store-Parameter als Standardwert referenzieren. Um auf einen Parameter Store-Parameter zu verweisen, verwenden Sie die folgende Syntax.   

```
{{ssm:parameter-name}}
```
Sie können einen Parameter, der auf einen Parameter Store-Parameter verweist, auf die gleiche Weise wie alle anderen Dokumentparameter verwenden. Im folgenden Beispiel ist der Standardwert für den `commands`-Parameter der Parameter Store-Parameter `myShellCommands`. Durch Angabe des `commands`-Parameters als `runCommand`-Zeichenfolge führt das Dokument die im `myShellCommands`-Parameter gespeicherten Befehle aus.  

```
---
schemaVersion: '2.2'
description: runShellScript with command strings stored as Parameter Store parameter
parameters:
  commands:
    type: StringList
    description: "(Required) The commands to run on the instance."
    default: ["{{ ssm:myShellCommands }}"],
            interpolationType : 'ENV_VAR'
            allowedPattern: '^[^"]*$'

mainSteps:
- action: aws:runShellScript
  name: runShellScriptDefaultParams
  inputs:
    runCommand:"{{ commands }}"
```

```
{
    "schemaVersion": "2.2",
    "description": "runShellScript with command strings stored as Parameter Store parameter",
    "parameters": {
      "commands": {
        "type": "StringList",
        "description": "(Required) The commands to run on the instance.",
        "default": ["{{ ssm:myShellCommands }}"],
        "interpolationType" : "ENV_VAR"
      }
    },
    "mainSteps": [
      {
        "action": "aws:runShellScript",
        "name": "runShellScriptDefaultParams",
        "inputs": {
            "runCommand": [
              "{{ commands }}"
          ]
        }
      }
    ]
  }
```
Im `parameters`-Abschnitt Ihres Dokuments können Sie die -Parameter `String` und `StringList` Parameter Store referenzieren. Sie können nicht die Parameter `SecureString` Parameter Store referenzieren.
Mehr über Parameter Store erfahren Sie unter [AWS Systems Manager Parameter Store](systems-manager-parameter-store.md).  
Typ: Struktur  
Die `parameters`-Struktur akzeptiert die folgenden Felder und Werte:  
+ `type`: (Erforderlich) Zulässige Werte umfassen die Folgenden: `String`, `StringList`, `Integer`, `Boolean`, `MapList` und `StringMap`. Beispiele für jeden Typ finden Sie [Beispiele für den Parameter `type` in SSM-Dokumenten](#top-level-properties-type) im nächsten Abschnitt.
**Anmerkung**  
Befehlstyp-Dokumente unterstützen nur die Parametertypen `String` und `StringList`.
+ `description`: (Optional) Eine Beschreibung der Parametergruppe.
+ `default`: (Optional) Der Standardwert des Parameters oder eine Referenz bezüglich eines Parameters in Parameter Store.
+ `allowedValues`: (Optional) Ein Array von Werten, die für den Parameter zulässig sind. Durch das Definieren zulässiger Werte für den Parameter wird die Benutzereingabe überprüft. Wenn ein Benutzer einen Wert eingibt, der nicht zulässig ist, kann die Ausführung nicht gestartet werden.

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

  ```
  DirectoryType:
    type: String
    description: "(Required) The directory type to launch."
    default: AwsMad
    allowedValues:
    - AdConnector
    - AwsMad
    - SimpleAd
  ```

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

  ```
  "DirectoryType": {
    "type": "String",
    "description": "(Required) The directory type to launch.",
    "default": "AwsMad",
    "allowedValues": [
      "AdConnector",
      "AwsMad",
      "SimpleAd"
    ]
  }
  ```

------
+ `allowedPattern`: (Optional) Ein regulärer Ausdruck, der überprüft, ob die Benutzereingabe mit dem definierten Muster für den Parameter übereinstimmt. Wenn die Benutzereingabe nicht mit dem zulässigen Muster übereinstimmt, kann die Ausführung nicht gestartet werden.
**Anmerkung**  
Systems Manager führt zwei Validierungen für `allowedPattern` aus. Die erste Validierung erfolgt unter Verwendung der [Java regex library](https://docs.oracle.com/javase/8/docs/api/java/util/regex/package-summary.html) (Java-Regex-Bibliothek) auf API-Ebene, wenn Sie ein Dokument verwenden. Die zweite Validierung wird am SSM Agent ausgeführt, indem Sie die [GO regexp library](https://pkg.go.dev/regexp) (GO-regexp-Bibliothek) verwenden, bevor Sie das Dokument bearbeiten. 

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

  ```
  InstanceId:
    type: String
    description: "(Required) The instance ID to target."
    allowedPattern: "^i-(?:[a-f0-9]{8}|[a-f0-9]{17})$"
    default: ''
  ```

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

  ```
  "InstanceId": {
    "type": "String",
    "description": "(Required) The instance ID to target.",
    "allowedPattern": "^i-(?:[a-f0-9]{8}|[a-f0-9]{17})$",
    "default": ""
  }
  ```

------
+ `displayType`: (Optional) Wird verwendet, um entweder a `textfield` oder a `textarea` in der anzuzeigen AWS-Managementkonsole. `textfield`ist ein einzeiliges Textfeld. `textarea`ist ein mehrzeiliger Textbereich.
+ `minItems`: (Optional) Die minimal zulässige Anzahl von Elementen.
+ `maxItems`: (Optional) Die maximal zulässige Anzahl von Elementen.
+ `minChars`: (Optional) Die minimal zulässige Anzahl an Parameterzeichen.
+ `maxChars`: (Optional) Die maximal zulässige Anzahl an Parameterzeichen.
+ `interpolationType`: (Optional) Definiert, wie Parameterwerte vor der Befehlsausführung verarbeitet werden. Wenn dies auf `ENV_VAR` gesetzt ist, wird der Parameterwert als Umgebungsvariable mit dem Namen `SSM_parameter-name` verfügbar gemacht. Dieses Feature trägt dazu bei, die Einschleusung von Befehlen zu verhindern, da Parameterwerte als Literalzeichenfolgen behandelt werden.

  Typ: Zeichenfolge

  Zulässige Werte: `ENV_VAR`
Erforderlich: Nein

**variables**  
(Nur Schemaversion 0.3) Werte, auf die Sie während der einzelnen Schritte in einem Automation-Runbook verweisen oder diese aktualisieren können. Variablen ähneln Parametern, unterscheiden sich jedoch in einem sehr wichtigen Punkt. Parameterwerte sind im Kontext eines Runbooks statisch, aber die Werte von Variablen können im Kontext des Runbooks geändert werden. Beim Aktualisieren des Werts einer Variable muss der Datentyp dem definierten Datentyp entsprechen. Hinweise zum Aktualisieren von Variablenwerten in einer Automatisierung finden Sie unter [`aws:updateVariable` – Aktualisiert einen Wert für eine Runbook-Variable](automation-action-update-variable.md).  
Typ: Boolean \$1 Integer \$1 \$1 Zeichenfolge \$1 MapList \$1 StringList StringMap  
Erforderlich: Nein  

```
variables:
    payload:
        type: StringMap
        default: "{}"
```

```
{
    "variables": [
        "payload": {
            "type": "StringMap",
            "default": "{}"
        }
    ]
}
```

**runtimeConfig**  
(Nur für Schemaversion 1.2) Die Konfiguration für die Instance, wie sie von mindestens einem Systems Manager-Plugin verwendet wird. Es wird nicht garantiert, dass Plugins nacheinander ausgeführt werden.   
Typ: Dictionary<String, > PluginConfiguration  
Erforderlich: Nein

**mainSteps**  
(Nur Schema-Version 0.3, 2.0 und 2.2) Ein Objekt, das mehrere Schritte (Plugins) enthalten kann. Plugins werden innerhalb von Schritten definiert. Die Schritte werden in der Reihenfolge ausgeführt, in der sie im Dokument aufgeführt sind.   
Typ: Dictionary<String, > PluginConfiguration  
Erforderlich: Ja

**outputs**  
(Nur Schema-Version 0.3) Daten, die durch die Ausführung dieses Dokuments generiert werden, die in anderen Prozessen verwendet werden können. Wenn Ihr Dokument beispielsweise ein neues erstelltAMI, können Sie "angeben. CreateImage ImageId"als Ausgabewert und verwenden Sie diese Ausgabe dann, um in einer nachfolgenden Automatisierungsausführung neue Instanzen zu erstellen. Weitere Informationen zu Ausgaben finden Sie unter [Verwenden von Aktionsausgaben als Eingaben](automation-action-outputs-inputs.md).  
Geben Sie ein: Dictionary<String, > OutputConfiguration  
Erforderlich: Nein

**files**  
(Nur Schema-Version 0.3) Die Skriptdateien (und ihre Prüfsummen), die dem Dokument zugeordnet sind und während einer Automatisierungsausführung ausgeführt werden. Gilt nur für Dokumente, die die `aws:executeScript` Aktion enthalten und für die Anfügungen in einem oder mehreren Schritten angegeben wurden.   
Weitere Informationen zu den von Automation-Runbooks unterstützten Laufzeiten finden Sie unter [`aws:executeScript` - Führen Sie ein Skript aus](automation-action-executeScript.md). Weitere Informationen zum Einbinden von Skripten in Automation-Runbooks finden Sie unter [Verwenden von Skripten in Runbooks](automation-document-script-considerations.md) und [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md).  
Wenn Sie ein Automatisierungs-Runbook mit Anlagen erstellen, müssen Sie auch Anhangsdateien mit der `--attachments` Option (für AWS CLI) oder `Attachments` (für API und SDK) angeben. Sie können den Dateispeicherort für SSM-Dokumente und Dateien angeben, die in Amazon Simple Storage Service (Amazon S3)-Buckets gespeichert sind. Weitere Informationen finden Sie in der AWS Systems Manager API-Referenz unter [Anlagen](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments).  

```
---
files:
  launch.py:
    checksums:
      sha256: 18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE
```

```
"files": {
    "launch.py": {
        "checksums": {
            "sha256": "18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE"
        }
    }
}
```
Geben Sie ein: Dictionary<String, > FilesConfiguration  
Erforderlich: Nein

## Beispiele für den Parameter `type` in SSM-Dokumenten
<a name="top-level-properties-type"></a>

Parametertypen in SSM-Dokumenten sind statisch. Dies bedeutet, dass der Parametertyp nicht geändert werden kann, nachdem er definiert wurde. Bei der Verwendung von Parametern mit SSM-Dokumenten-Plugins kann der Typ eines Parameters innerhalb der Eingabe eines Plugins nicht dynamisch geändert werden. Beispielsweise können Sie nicht auf einen `Integer`-Parameter innerhalb der Eingabe `runCommand` des Plugins `aws:runShellScript` verweisen, da diese Eingabe eine Zeichenfolge oder eine Liste von Zeichenfolgen akzeptiert. Um einen Parameter für eine Plugin-Eingabe verwenden zu können, muss der Parametertyp mit dem akzeptierten Typ übereinstimmen. Sie müssen beispielsweise einen Parameter des Typs `Boolean` für die Eingabe `allowDowngrade` des Plugins `aws:updateSsmAgent` angeben. Wenn der Parametertyp nicht mit dem Eingabetyp für ein Plugin übereinstimmt, kann das SSM-Dokument nicht validiert werden und das System erstellt das Dokument nicht. Dies gilt auch, wenn Parameter nachgeschaltet in Eingaben für andere Plugins oder Automatisierungsaktionen verwendet werden. AWS Systems Manager Sie können beispielsweise keinen `StringList`-Parameter in der `documentParameters`-Eingabe des Plugins `aws:runDocument` referenzieren. Die `documentParameters`-Eingabe akzeptiert eine Zuordnung von Zeichenfolgen, auch wenn der nachgelagerte Parametertyp des SSM-Dokuments ein `StringList`-Parameter ist und dem referenzierten Parameter entspricht.

Wenn Sie Parameter mit -Automation-Aktionen verwenden, werden Parametertypen bei der Erstellung des SSM-Dokuments in den meisten Fällen nicht validiert. Nur wenn Sie die Aktion `aws:runCommand` verwenden, werden Parametertypen bei der Erstellen des SSM-Dokuments validiert. In allen anderen Fällen erfolgt die Parametervalidierung während der Automatisierungsausführung, wenn die Eingabe einer Aktion überprüft wird, bevor die Aktion ausgeführt wird. Wenn der Eingabeparameter beispielsweise ein `String` ist und Sie auf ihn als Wert für die Eingabe `MaxInstanceCount` der Aktion `aws:runInstances` verweisen, wird das SSM-Dokument erstellt. Beim Ausführen des Dokuments schlägt die Automatisierung jedoch fehl, wenn die Aktion `aws:runInstances` validiert wird, da für die Eingabe `MaxInstanceCount` ein `Integer` erforderlich ist.

Im Folgenden finden Sie für jeden Parameter`type` ein Beispiel.

Zeichenfolge  
Eine Abfolge von null oder mehr Unicode-Zeichen in Anführungszeichen. Zum Beispiel „i-1234567890abcdef0“. Verwenden Sie umgekehrte Schrägstriche als Escapezeichen.  
Zeichenfolgeparameter können ein optionales `interpolationType`-Feld mit dem Wert `ENV_VAR` enthalten, um die Interpolation von Umgebungsvariablen zu ermöglichen und so die Sicherheit zu erhöhen.  

```
---
InstanceId:
  type: String
  description: "(Optional) The target EC2 instance ID."
  interpolationType: ENV_VAR
```

```
"InstanceId":{
  "type":"String",
  "description":"(Optional) The target EC2 instance ID.",
  "interpolationType": "ENV_VAR"
}
```

StringList  
Eine Liste von String-Elementen, die durch Kommas getrennt sind. Zum Beispiel ["cd \$1", "pwd"].  

```
---
commands:
  type: StringList
  description: "(Required) Specify a shell script or a command to run."
  default: ""
  minItems: 1
  displayType: textarea
```

```
"commands":{
  "type":"StringList",
  "description":"(Required) Specify a shell script or a command to run.",
  "minItems":1,
  "displayType":"textarea"
}
```

Boolesch  
Akzeptiert nur `true` oder `false`. Akzeptiert nicht „true“ oder 0.  

```
---
canRun:
  type: Boolean
  description: ''
  default: true
```

```
"canRun": {
  "type": "Boolean",
  "description": "",
  "default": true
}
```

Ganzzahl  
Ganze Zahlen. Akzeptiert keine Dezimalzahlen, z. B. 3,14159, oder Zahlen in Anführungszeichen, z. B. „3“.  

```
---
timeout:
  type: Integer
  description: The type of action to perform.
  default: 100
```

```
"timeout": {
  "type": "Integer",
  "description": "The type of action to perform.",
  "default": 100    
}
```

StringMap  
Ein Mapping von Schlüsseln zu Werten. Schlüssel und Werte müssen Zeichenfolgen sein. Zum Beispiel \$1"Env": "Prod"\$1.  

```
---
notificationConfig:
  type: StringMap
  description: The configuration for events to be notified about
  default:
    NotificationType: 'Command'
    NotificationEvents:
    - 'Failed'
    NotificationArn: "$dependency.topicArn"
  maxChars: 150
```

```
"notificationConfig" : {
  "type" : "StringMap",
  "description" : "The configuration for events to be notified about",
  "default" : {
    "NotificationType" : "Command",
    "NotificationEvents" : ["Failed"],
    "NotificationArn" : "$dependency.topicArn"
  },
  "maxChars" : 150
}
```

MapList  
Eine Liste von StringMap Objekten.  

```
blockDeviceMappings:
  type: MapList
  description: The mappings for the create image inputs
  default:
  - DeviceName: "/dev/sda1"
    Ebs:
      VolumeSize: "50"
  - DeviceName: "/dev/sdm"
    Ebs:
      VolumeSize: "100"
  maxItems: 2
```

```
"blockDeviceMappings":{
  "type":"MapList",
  "description":"The mappings for the create image inputs",
  "default":[
    {
      "DeviceName":"/dev/sda1",
      "Ebs":{
        "VolumeSize":"50"
      }
    },
    {
      "DeviceName":"/dev/sdm",
      "Ebs":{
        "VolumeSize":"100"
      }
    }
  ],
  "maxItems":2
}
```

## Inhalte von SSM-Befehlsdokument anzeigen
<a name="viewing-ssm-document-content"></a>

Um eine Vorschau der erforderlichen und optionalen Parameter für ein AWS Systems Manager (SSM-) Befehlsdokument anzuzeigen, können Sie zusätzlich zu den Aktionen, die das Dokument ausführt, den Inhalt des Dokuments in der Systems Manager Manager-Konsole anzeigen.

**Inhalte von SSM-Befehlsdokument anzeigen**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie im Suchfeld **Dokumenttyp** und wählen Sie danach **Befehl**.

1. Wählen Sie den Namen eines Dokuments und dann die Registerkarte **Content (Inhalt)** aus. 

1. Überprüfen Sie im Inhaltsfeld die verfügbaren Parameter und Aktionsschritte für das Dokument.

   Das folgende Image zeigt beispielsweise, dass (1) `version` und (2) `allowDowngrade` optionale Parameter für das `AWS-UpdateSSMAgent`-Dokument sind, und dass die erste Aktion, die vom Dokument ausgeführt wird, (3) `aws:updateSsmAgent` ist.  
![\[Zeigen Sie SSM-Dokumentinhalte in der Systems Manager-Konsole an.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/view-document-content.png)

# Referenz für Befehlsdokument-Plugins
<a name="documents-command-ssm-plugin-reference"></a>

Diese Referenz beschreibt die Plugins, die Sie in einem Dokument vom Typ AWS Systems Manager (SSM) Command angeben können. Diese Plugins können nicht in SSM-Automation-Runbooks verwendet werden, die Automation-Aktionen verwenden. Informationen zu AWS Systems Manager Automatisierungsaktionen finden Sie unter[Systems Manager Automation Aktionen-Referenz](automation-actions.md).

Systems Manager bestimmt die Aktionen, die auf einer verwalteten Instance ausgeführt werden sollen, durch Lesen der Inhalte eines SSM-Dokuments. Jedes Dokument enthält einen Abschnitt zur Ausführung von Code. Abhängig von der Schemaversion des Dokuments umfasst dieser Abschnitt zu Codeausführung ein oder mehrere Plugins oder Schritte. Im Rahmen dieses Hilfethemas werden die Plugins und Schritte als *Plugins* bezeichnet. Dieser Abschnitt enthält Informationen zu allen Systems Manager-Plugins. Weitere Informationen zu Dokumenten, einschließlich Informationen zum Erstellen von Dokumenten und zu den Unterschiede zwischen Schemaversionen finden Sie unter [AWS Systems Manager-Documents](documents.md).

Bei Plugins, die Zeichenfolgeparameter akzeptieren, z. B. `aws:runShellScript` und `aws:runPowerShellScript`, kann der Parameter `interpolationType` verwendet werden, um die Sicherheit zu erhöhen. Dazu werden Parametereingaben als Zeichenfolgeliterale und nicht als potenziell ausführbare Befehle behandelt. Beispiel:

```
{
    "schemaVersion": "2.2",
    "description": "runShellScript with command strings stored as Parameter Store parameter",
    "parameters": {
      "commands": {
        "type": "StringList",
        "description": "(Required) The commands to run on the instance.",
        "default": ["{{ ssm:myShellCommands }}"],
        "interpolationType" : "ENV_VAR"
      }
    },
    //truncated
 }
```

**Anmerkung**  
Manche der hier beschriebenen Plugins funktionieren nur auf Windows Server-Instances oder Linux-Instances. Für alle Plugins werden Plattformabhängigkeiten angegeben.   
Die folgenden Dokumentenplugins werden auf Amazon Elastic Compute Cloud (Amazon EC2)-Instances für macOS unterstützt:  
`aws:refreshAssociation`
`aws:runShellScript`
`aws:runPowerShellScript`
`aws:softwareInventory`
`aws:updateSsmAgent`

**Topics**
+ [

## Gemeinsame Eingaben
](#shared-inputs)
+ [

## `aws:applications`
](#aws-applications)
+ [

## `aws:cloudWatch`
](#aws-cloudWatch)
+ [

## `aws:configureDocker`
](#aws-configuredocker)
+ [

## `aws:configurePackage`
](#aws-configurepackage)
+ [

## `aws:domainJoin`
](#aws-domainJoin)
+ [

## `aws:downloadContent`
](#aws-downloadContent)
+ [

## `aws:psModule`
](#aws-psModule)
+ [

## `aws:refreshAssociation`
](#aws-refreshassociation)
+ [

## `aws:runDockerAction`
](#aws-rundockeraction)
+ [

## `aws:runDocument`
](#aws-rundocument)
+ [

## `aws:runPowerShellScript`
](#aws-runPowerShellScript)
+ [

## `aws:runShellScript`
](#aws-runShellScript)
+ [

## `aws:softwareInventory`
](#aws-softwareinventory)
+ [

## `aws:updateAgent`
](#aws-updateagent)
+ [

## `aws:updateSsmAgent`
](#aws-updatessmagent)

## Gemeinsame Eingaben
<a name="shared-inputs"></a>

Mit SSM Agent Version 3.0.502 und höher, können alle Plugins die folgenden Eingaben verwenden:

**finallyStep**  
Der letzte Schritt, in dem das Dokument ausgeführt werden soll. Wenn diese Eingabe für einen Schritt definiert ist, hat sie Vorrang vor einem `exit`-Wert, der `onFailure`- oder `onSuccess`-Eingängen definiert ist. Damit ein Schritt mit dieser Eingabe erwartungsgemäß ausgeführt wird, muss der Schritt der letzte sein, der in den `mainSteps` Ihres Dokuments ausgeführt wird.  
Typ: Boolescher Wert  
Zulässige Werte: `true` \$1 `false`  
Erforderlich: Nein

**onFailure**  
Wenn Sie diese Eingabe für ein Plugin mit dem Wert `exit` angeben und der Schritt fehlschlägt, spiegelt der Schrittstatus den Fehler wider und das Dokument führt keine weiteren Schritte aus, es sei denn, es wurde ein `finallyStep` definiert. Wenn Sie diese Eingabe für ein Plugin mit dem Wert `successAndExit` angeben und der Schritt fehlschlägt, zeigt der Schrittstatus Erfolg an und das Dokument führt keine weiteren Schritte aus, es sei denn, es wurde ein `finallyStep` definiert.  
Typ: Zeichenfolge  
Zulässige Werte: `exit` \$1 `successAndExit`  
Erforderlich: Nein

**onSuccess**  
Wenn Sie diese Eingabe für ein Plugin angeben und der Schritt erfolgreich ausgeführt wird, führt das Dokument keine weiteren Schritte durch, es sei denn, es wurde ein `finallyStep`definiert.  
Typ: Zeichenfolge  
Zulässige Werte: `exit`  
Erforderlich: Nein

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

```
---
schemaVersion: '2.2'
description: Shared inputs example
parameters:
  customDocumentParameter:
    type: String
    description: Example parameter for a custom Command-type document.
mainSteps:
- action: aws:runDocument
  name: runCustomConfiguration
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomDocument"
    documentParameters: '"documentParameter":{{customDocumentParameter}}'
    onSuccess: exit
- action: aws:runDocument
  name: ifConfigurationFailure
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomRepairDocument"
    onFailure: exit
- action: aws:runDocument
  name: finalConfiguration
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomFinalDocument"
    finallyStep: true
```

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

```
{
   "schemaVersion": "2.2",
   "description": "Shared inputs example",
   "parameters": {
      "customDocumentParameter": {
         "type": "String",
         "description": "Example parameter for a custom Command-type document."
      }
   },
   "mainSteps":[
      {
         "action": "aws:runDocument",
         "name": "runCustomConfiguration",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomDocument",
            "documentParameters": "\"documentParameter\":{{customDocumentParameter}}",
            "onSuccess": "exit"
         }
      },
      {
         "action": "aws:runDocument",
         "name": "ifConfigurationFailure",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomRepairDocument",
            "onFailure": "exit"
         }
      },
      {
         "action": "aws:runDocument",
         "name":"finalConfiguration",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomFinalDocument",
            "finallyStep": true
         }
      }
   ]
}
```

------

## `aws:applications`
<a name="aws-applications"></a>

Installieren, Reparieren oder Deinstallieren von Anwendungen auf einer EC2-Instance. Dieses Plugin läuft nur unter Windows Server-Betriebssystemen.

### Syntax
<a name="applications-syntax"></a>

#### Schema 2.2
<a name="applications-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:applications plugin
parameters:
  source:
    description: "(Required) Source of msi."
    type: String
mainSteps:
- action: aws:applications
  name: example
  inputs:
    action: Install
    source: "{{ source }}"
```

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

```
{
  "schemaVersion":"2.2",
  "description":"aws:applications",
  "parameters":{
    "source":{
    "description":"(Required) Source of msi.",
    "type":"String"
    }
  },
  "mainSteps":[
    {
      "action":"aws:applications",
      "name":"example",
      "inputs":{
        "action":"Install",
        "source":"{{ source }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="applications-syntax-1.2"></a>

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

```
---
runtimeConfig:
  aws:applications:
    properties:
    - id: 0.aws:applications
      action: "{{ action }}"
      parameters: "{{ parameters }}"
      source: "{{ source }}"
      sourceHash: "{{ sourceHash }}"
```

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

```
{
   "runtimeConfig":{
      "aws:applications":{
         "properties":[
            {
               "id":"0.aws:applications",
               "action":"{{ action }}",
               "parameters":"{{ parameters }}",
               "source":"{{ source }}",
               "sourceHash":"{{ sourceHash }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="applications-properties"></a>

**action**  
Die zu ergreifende Maßnahme.  
Type: Zähler  
Zulässige Werte: `Install` \$1 `Repair` \$1 `Uninstall`  
Erforderlich: Ja

**Parameter**  
Die Parameter für das Installationsprogramm.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Quelle**  
Die URL der `.msi`-Datei der Anwendung.  
Typ: Zeichenfolge  
Erforderlich: Ja

**sourceHash**  
Der SHA256 Hash der `.msi` Datei.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:cloudWatch`
<a name="aws-cloudWatch"></a>

Exportieren Sie Daten aus Windows Server Amazon CloudWatch oder Amazon CloudWatch Logs und überwachen Sie die Daten anhand von CloudWatch Metriken. Dieses Plugin läuft nur unter Windows Server-Betriebssystemen. Weitere Informationen zur Konfiguration der CloudWatch Integration mit Amazon Elastic Compute Cloud (Amazon EC2) finden Sie unter [Erfassung von Metriken, Protokollen und Traces mit dem CloudWatch Agenten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) im * CloudWatch Amazon-Benutzerhandbuch*.

**Wichtig**  
Der Unified CloudWatch Agent wurde SSM Agent als Tool zum Senden von Protokolldaten an Amazon CloudWatch Logs ersetzt. Das SSM Agent-aws:cloudWatch-Plugin wird nicht unterstützt. Wir empfehlen, nur den Unified CloudWatch Agent für Ihre Protokollerfassungsprozesse zu verwenden. Weitere Informationen finden Sie unter den folgenden Themen:  
[Senden von Knotenprotokollen an Unified CloudWatch Logs (CloudWatch Agent)](monitoring-cloudwatch-agent.md)
[Migrieren Sie die Erfassung von Windows Server-Knotenprotokollen auf den CloudWatch Agenten](monitoring-cloudwatch-agent.md#monitoring-cloudwatch-agent-migrate)
[Erfassung von Metriken, Protokollen und Traces mit dem CloudWatch Agenten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) im * CloudWatch Amazon-Benutzerhandbuch*.

Sie können die folgenden Datentypen exportieren und überwachen:

**ApplicationEventLog**  
Sendet Daten aus dem Anwendungsereignisprotokoll an CloudWatch Logs.

**CustomLogs**  
Sendet jede textbasierte Protokolldatei an Amazon CloudWatch Logs. Das CloudWatch Plugin erstellt einen Fingerabdruck für Protokolldateien. Anschließend verknüpft das System einen Datenversatz mit jedem Fingerabdruck. Das Plugin lädt Dateien hoch, wenn Änderungen vorliegen, erfasst den Versatz und verknüpft ihn mit einem Fingerabdruck. Diese Methode wird verwendet, um zu verhindern, dass ein Benutzer das Plugin aktiviert, den Service mit einem Verzeichnis verknüpft, in dem sich eine große Anzahl von Dateien befindet, und das System alle Dateien hochlädt.  
Hinweis: Falls Ihre Anwendung während der Abfrage Protokolle kürzt oder zu säubern versucht, besteht die Möglichkeit, dass alle Protokolle, die für `LogDirectoryPath` angegeben wurden, Einträge verlieren. Wenn Sie beispielsweise die Größe der Protokolldatei einschränken möchten, erstellen Sie eine neue Protokolldatei, wenn diese Beschränkung erreicht ist, und lassen Sie neue Daten dann in die neue Datei schreiben.

**ETW**  
Sendet ETW-Daten (Event Tracing for Windows) an CloudWatch Logs.

**IIS**  
Sendet IIS-Protokolldaten an CloudWatch Logs.

**PerformanceCounter**  
Sendet Windows-Leistungsindikatoren an CloudWatch. Sie können verschiedene Kategorien für den Upload CloudWatch als Messwerte auswählen. Erstellen Sie für jeden Leistungsindikator, den Sie hochladen möchten, einen **PerformanceCounter**Abschnitt mit einer eindeutigen ID (z. B. "PerformanceCounter2"," PerformanceCounter 3" usw.) und konfigurieren Sie dessen Eigenschaften.  
Wenn das AWS Systems Manager SSM Agent oder das CloudWatch Plugin gestoppt ist, werden die Leistungsindikatordaten nicht protokolliert CloudWatch. Diese Verhaltensweise unterscheidet sich von der von benutzerdefinierten oder von Windows-Event-Protokollen.. In benutzerdefinierten Protokollen und Windows-Ereignisprotokollen werden die SSM Agent Leistungsindikatordaten gespeichert und CloudWatch nach der Verfügbarkeit des CloudWatch Plug-ins hochgeladen.

**SecurityEventLog**  
Sendet Daten aus dem Sicherheitsereignisprotokoll an CloudWatch Logs.

**SystemEventLog**  
Sendet Daten aus dem Systemereignisprotokoll an CloudWatch Logs.

Sie können die folgenden Ziele für die Daten definieren:

**CloudWatch**  
Das Ziel, an das die Leistungsindikatormetrikdaten gesendet werden. Sie können weitere eindeutige Abschnitte hinzufügen IDs (z. B. "CloudWatch2", CloudWatch 3" usw.) und für jede neue ID eine andere Region angeben, um dieselben Daten an verschiedene Speicherorte zu senden.

**CloudWatchLogs**  
Das Ziel, an das die Protokolldaten gesendet werden. Sie können weitere Abschnitte mit eindeutigen IDs Merkmalen hinzufügen (z. B. "CloudWatchLogs2", CloudWatchLogs 3" usw.) und für jede neue ID eine andere Region angeben, um dieselben Daten an verschiedene Standorte zu senden.

### Syntax
<a name="cloudWatch-syntax"></a>

```
"runtimeConfig":{
        "aws:cloudWatch":{
            "settings":{
                "startType":"{{ status }}"
            },
            "properties":"{{ properties }}"
        }
    }
```

### Einstellungen und Eigenschaften
<a name="cloudWatch-properties"></a>

**AccessKey**  
Ihre -Zugriffsschlüssel-ID Diese Eigenschaft ist erforderlich, wenn Sie die Instance mithilfe einer IAM-Rolle gestartet haben. Diese Eigenschaft kann nicht mit SSM verwendet werden.  
Typ: Zeichenfolge  
Erforderlich: Nein

**CategoryName**  
Die Leistungsindikatorkategorie von Performance Monitor.  
Typ: Zeichenfolge  
Erforderlich: Ja

**CounterName**  
Der Name des Leistungsindikators von Performance Monitor.  
Typ: Zeichenfolge  
Erforderlich: Ja

**CultureName**  
Das Gebietsschema, unter dem der Zeitstempel protokolliert wird. Wenn dieses Feld leer **CultureName**ist, wird standardmäßig dasselbe Gebietsschema verwendet, das von Ihrer Windows Server Instanz verwendet wird.  
Typ: Zeichenfolge  
Gültige Werte: Eine Liste der unterstützten Werte finden Sie unter [National Language Support (NLS)](https://msdn.microsoft.com/en-us/library/cc233982.aspx) auf der Microsoft-Website. Die Werte **div**, **div-MV**, **hu** und **hu-HU** werden nicht unterstützt.  
Erforderlich: Nein

**DimensionName**  
Eine Dimension für Ihre CloudWatch Amazon-Metrik. Wenn Sie `DimensionName` angeben, müssen Sie auch `DimensionValue` angeben. Diese Parameter bieten eine andere Ansicht bei der Auflistung von Metriken. Sie können eine Dimension auch für mehrere Metriken verwenden, sodass Sie alle Metriken anzeigen können, die zu einer bestimmten Dimension gehören.  
Typ: Zeichenfolge  
Erforderlich: Nein

**DimensionValue**  
Ein Dimensionswert für Ihre CloudWatch Amazon-Metrik.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Codierung**  
Die zu verwendende Dateikodierung (z. B: UTF-8). Verwenden Sie den Kodierungsnamen, nicht den Anzeigenamen.  
Typ: Zeichenfolge  
Gültige Werte: Eine Liste der unterstützten Werte finden Sie unter [Encoding Class](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding?view=net-7.0) in der Microsoft Learn Bibliothek.  
Erforderlich: Ja

**Filter**  
Das Präfix des Protokollnamens. Lassen Sie diesen Parameter leer, um alle Dateien zu überwachen.  
Typ: Zeichenfolge  
Gültige Werte: Eine Liste der unterstützten Werte finden Sie unter „[FileSystemWatcherFilter Eigenschaft](http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx)“ in der MSDN-Bibliothek.  
Erforderlich: Nein

**Flüsse**  
Jeder Datentyp, der hochgeladen werden soll, zusammen mit dem Ziel für die Daten (CloudWatch oder CloudWatch Protokolle). Um beispielsweise einen unter definierten Leistungsindikator an das unter definierte CloudWatch Ziel `"Id": "PerformanceCounter"` zu senden`"Id": "CloudWatch"`, geben Sie **"PerformanceCounter,CloudWatch"** ein. Geben Sie auf ähnliche Weise **„(ETW)," ein, um das benutzerdefinierte Protokoll`"Id": "ETW"`, das ETW-Protokoll** und das Systemprotokoll an das unter definierte CloudWatch Protokollziel zu senden. CloudWatchLogs Außerdem können Sie dieselbe Leistungsindikator- oder Protokolldatei an mehrere Ziele senden. Um beispielsweise das Anwendungsprotokoll an zwei verschiedene Ziele zu senden, die Sie unter `"Id": "CloudWatchLogs"` und definiert haben`"Id": "CloudWatchLogs2"`, geben Sie **", (ApplicationEventLogCloudWatchLogs, CloudWatchLogs 2)**“ ein.  
Typ: Zeichenfolge  
Gültige Werte (Quelle): `ApplicationEventLog` \$1 `CustomLogs` \$1 `ETW` \$1 `PerformanceCounter` \$1 `SystemEventLog` \$1 `SecurityEventLog`   
Gültige Werte (Ziel): `CloudWatch` \$1 `CloudWatchLogs` \$1 `CloudWatch` *n* \$1 `CloudWatchLogs` *n*   
Erforderlich: Ja

**FullName**  
Der vollständige Name der Komponente.  
Typ: Zeichenfolge  
Erforderlich: Ja

**Id**  
Identifiziert die Datenquelle bzw. das Ziel. Die ID muss innerhalb der Konfigurationsdatei eindeutig sein.  
Typ: Zeichenfolge  
Erforderlich: Ja

**InstanceName**  
Der Name der Leistungsindikator-Instance. Verwenden Sie kein Sternchen (\$1) für alle Instances, da jede Leistungszählerkomponente nur eine Metrik unterstützt. Sie können jedoch **\$1Total** verwenden.  
Typ: Zeichenfolge  
Erforderlich: Ja

**Levels**  
Die Arten von Nachrichten, die an Amazon gesendet werden sollen CloudWatch.  
Typ: Zeichenfolge  
Zulässige Werte:   
+ **1** – Nur Fehlermeldungen werden hochgeladen.
+ **2** – Nur Warnmeldungen werden hochgeladen.
+ **4** – Nur Informationsmeldungen werden hochgeladen.
Sie können Werte kombinieren, um mehr als einen Meldungstyp einzuschließen. Beispiel: **3** bedeutet, dass Fehlermeldungen (**1**) und Warnmeldungen (**2**) enthalten sind. Wenn Sie den Wert **7** eingeben, werden Fehlermeldungen (**1**), Warnmeldungen (**2**) und Informationsmeldungen (**4**) einbezogen.  
Erforderlich: Ja  
Windows-Sicherheitsprotokolle müssen für „Levels“ den Wert „7“ festlegen.

**LineCount**  
Die Anzahl der Zeilen im Header zur Identifikation der Protokolldatei. Beispielsweise haben IIS-Protokolldateien praktisch identische Header. Sie können **3** eingeben; dann würden die ersten drei Zeilen des Headers der Protokolldatei gelesen, um diese zu identifizieren. In IIS-Protokolldateien ist die dritte Zeile Datum und Zeitstempel, die sich zwischen Protokolldateien unterscheiden.  
Typ: Ganzzahl  
Erforderlich: Nein

**LogDirectoryPath**  
Für den Pfad CustomLogs, in dem Protokolle auf Ihrer EC2-Instance gespeichert werden. Bei IIS-Protokollen der Ordner, in dem IIS-Protokolle für eine einzelne Site gespeichert werden (z. B. **C:\$1\$1 inetpub\$1\$1 logs\$1\$1\$1LogFiles\$1 W3SVC**). *n* Hinsichtlich IIS-Protokolle wird nur das Protokollformat W3C unterstützt. IIS, NCSA und benutzerdefinierte Formate werden nicht unterstützt.   
Typ: Zeichenfolge  
Erforderlich: Ja

**LogGroup**  
Der Name für Ihre Protokollgruppe. Dieser Name wird auf dem Bildschirm **Log Groups (Protokollgruppen)** in der CloudWatch-Konsole angezeigt.  
Typ: Zeichenfolge  
Erforderlich: Ja

**LogName**  
Der Name der Protokolldateien.  

1. Zum Suchen des Protokollnamens klicken Sie in der Ereignisanzeige im Navigationsbereich auf **Applications and Services Logs**.

1. Klicken Sie in der Liste der Protokolle mit der rechten Maustaste auf das Protokoll, das Sie hochladen möchten (z. B. `Microsoft` > `Windows` > `Backup` > `Operational`), und klicken Sie dann auf **Benutzerdefinierte Ansicht erstellen**.

1. Klicken Sie im Dialogfeld **Create Custom View** auf die Registerkarte **XML**. Das **LogName**befindet sich im <Select Path=> -Tag (zum Beispiel). `Microsoft-Windows-Backup` Kopieren Sie diesen Text in den **LogName**Parameter.
Typ: Zeichenfolge  
Zulässige Werte: `Application` \$1 `Security` \$1 `System` \$1 `Microsoft-Windows-WinINet/Analytic`  
Erforderlich: Ja

**LogStream**  
Der Zielprotokollstream. Wenn Sie **\$1instance\$1id\$1**, verwenden, also den Standard, wird die Instance-ID dieser Instance als Name des Protokollstreams verwendet.  
Typ: Zeichenfolge  
Gültige Werte: `{instance_id}` \$1 `{hostname}` \$1 `{ip_address}` *<log\$1stream\$1name>*  
Wenn Sie einen Log-Stream-Namen eingeben, der noch nicht existiert, erstellt CloudWatch Logs ihn automatisch für Sie. Sie können den Protokollstream mit einer Literalzeichenfolge, einer vordefinierten Variablen (**\$1instance\$1id\$1**, **\$1hostname\$1**, **\$1ip\$1address\$1**) oder einer Kombination aus allen drei Variablen definieren.  
Der in diesem Parameter angegebene Protokollstreamname wird auf dem *<YourLogStream>* Bildschirm **Protokollgruppen > Streams für** in der CloudWatch Konsole angezeigt.  
Erforderlich: Ja

**MetricName**  
Die CloudWatch Metrik, unter der die Leistungsdaten enthalten sein sollen.  
Verwenden Sie keine Sonderzeichen in dem Namen. Andernfalls funktionieren die Metrik und die zugehörigen Alarme möglicherweise nicht.
Typ: Zeichenfolge  
Erforderlich: Ja

**NameSpace**  
Der Metrik-Namespace, in dem die Leistungsindikatordaten geschrieben werden sollen.  
Typ: Zeichenfolge  
Erforderlich: Ja

**PollInterval**  
Die Anzahl der Sekunden, die vergehen muss, bevor neue Leistungsindikator- und Protokolldaten hochgeladen werden.  
Typ: Ganzzahl  
Gültige Werte: Legen Sie für diesen Wert 5 oder mehr Sekunden fest. Fünfzehn Sekunden (00:00:15) sind empfohlen.  
Erforderlich: Ja

**Region**  
Der AWS-Region Ort, an den Sie Protokolldaten senden möchten. Obwohl Sie Leistungszähler an eine andere Region als die, an die Sie Ihre Protokolldaten senden, senden können, empfehlen wir, diesen Parameter auf dieselbe Region zu setzen, in der Ihre Instance ausgeführt wird.  
Typ: Zeichenfolge  
Gültige Werte: Regionen IDs , die sowohl von Systems Manager als auch von CloudWatch Logs AWS-Regionen unterstützt werden`us-east-2`, wie`eu-west-1`, und`ap-southeast-1`. Eine Liste der von den einzelnen Services AWS-Regionen unterstützten Services finden Sie unter [Amazon CloudWatch Logs Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/cwl_region.html#cwl_region) und [Systems Manager Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) in der. *Allgemeine Amazon Web Services-Referenz*   
Erforderlich: Ja

**SecretKey**  
Ihr geheimer -Zugriffsschlüssel Diese Eigenschaft ist erforderlich, wenn Sie die Instance mithilfe einer IAM-Rolle gestartet haben.  
Typ: Zeichenfolge  
Erforderlich: Nein

**startType**  
Schalten Sie die Instance ein oder aus CloudWatch .  
Typ: Zeichenfolge  
Zulässige Werte: `Enabled` \$1 `Disabled`  
Erforderlich: Ja

**TimestampFormat**  
Das Zeitstempelformat, das Sie verwenden möchten. Eine Liste der unterstützten Werte finden Sie unter [Custom Date and Time Format Strings](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx) in der MSDN-Bibliothek.  
Typ: Zeichenfolge  
Erforderlich: Ja

**TimeZoneKind**  
Stellt Zeitzoneninformationen bereit, wenn der Zeitstempel Ihres Protokolls keine Zeitzoneninformationen enthält. Wenn dieser Parameter leer gelassen wird und Ihr Zeitstempel keine Zeitzoneninformationen enthält, verwendet CloudWatch Logs standardmäßig die lokale Zeitzone. Dieser Parameter wird ignoriert, wenn der Zeitstempel bereits Zeitzoneninformationen enthält.  
Typ: Zeichenfolge  
Zulässige Werte: `Local` \$1 `UTC`  
Erforderlich: Nein

**Einheit**  
Die korrekte Maßeinheit für die Metrik.  
Typ: Zeichenfolge  
Gültige Werte: Sekunden \$1 Mikrosekunden \$1 Millisekunden \$1 Byte \$1 Kilobyte \$1 Megabyte \$1 Gigabyte \$1 Terabyte \$1 Bits \$1 Kilobits \$1 Kilobits \$1 Megabit \$1 Gigabit \$1 Terabit \$1 Prozent \$1 Anzahl \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 Keine Bytes/Second Kilobytes/Second Megabytes/Second Gigabytes/Second Terabytes/Second Bits/Second Kilobits/Second Megabits/Second Gigabits/Second Terabits/Second Count/Second   
Erforderlich: Ja

## `aws:configureDocker`
<a name="aws-configuredocker"></a>

(Schemaversion 2.0 oder höher) Konfigurieren Sie eine Instance für die Arbeit mit Container und Docker. Dieses Plugin wird unter den meisten Linux-Varianten und Windows Server-Betriebssystemen unterstützt.

### Syntax
<a name="configuredocker-syntax"></a>

#### Schema 2.2
<a name="configuredocker-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:configureDocker
parameters:
  action:
    description: "(Required) The type of action to perform."
    type: String
    default: Install
    allowedValues:
    - Install
    - Uninstall
mainSteps:
- action: aws:configureDocker
  name: configureDocker
  inputs:
    action: "{{ action }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:configureDocker plugin",
  "parameters": {
    "action": {
      "description": "(Required) The type of action to perform.",
      "type": "String",
      "default": "Install",
      "allowedValues": [
        "Install",
        "Uninstall"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:configureDocker",
      "name": "configureDocker",
      "inputs": {
        "action": "{{ action }}"
      }
    }
  ]
}
```

------

### Eingaben
<a name="configuredocker-properties"></a>

**action**  
Der Typ der Aktion, die durchgeführt werden soll.  
Type: Zähler  
Zulässige Werte: `Install` \$1 `Uninstall`  
Erforderlich: Ja

## `aws:configurePackage`
<a name="aws-configurepackage"></a>

(Schemaversion AWS Systems Manager Distributor 2.0 oder höher) Installieren oder deinstallieren Sie ein Paket. Sie können die neueste Version, die Standardversion oder eine Version des angegebenen Pakets installieren. Pakete, die von bereitgestellt AWS werden, werden ebenfalls unterstützt. Dieses Plugin läuft unter Windows Server- und Linux-Betriebssystemen, wobei jedoch in Linux-Betriebssystemen nicht alle verfügbaren Pakete unterstützt werden.

Zu den verfügbaren AWS Paketen für Windows Server gehören: `AWSPVDriver``AWSNVMe`,`AwsEnaNetworkDriver`,`AwsVssComponents`,`AmazonCloudWatchAgent`,`CodeDeployAgent`, und `AWSSupport-EC2Rescue.`

Zu den verfügbaren AWS Paketen für Linux-Betriebssysteme gehören die folgenden: `AmazonCloudWatchAgent``CodeDeployAgent`, und`AWSSupport-EC2Rescue`.

### Syntax
<a name="configurepackage-syntax"></a>

#### Schema 2.2
<a name="configurepackage-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:configurePackage
parameters:
  name:
    description: "(Required) The name of the AWS package to install or uninstall."
    type: String
  action:
    description: "(Required) The type of action to perform."
    type: String
    default: Install
    allowedValues:
    - Install
    - Uninstall
  ssmParameter:
    description: "(Required) Argument stored in Parameter Store."
    type: String
    default: "{{ ssm:parameter_store_arg }}"
mainSteps:
- action: aws:configurePackage
  name: configurePackage
  inputs:
    name: "{{ name }}"
    action: "{{ action }}"
    additionalArguments: 
      "{\"SSM_parameter_store_arg\": \"{{ ssmParameter }}\", \"SSM_custom_arg\": \"myValue\"}"
```

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

```
{
   "schemaVersion": "2.2",
   "description": "aws:configurePackage",
   "parameters": {
      "name": {
         "description": "(Required) The name of the AWS package to install or uninstall.",
         "type": "String"
      },
      "action": {
         "description": "(Required) The type of action to perform.",
         "type": "String",
         "default": "Install",
         "allowedValues": [
            "Install",
            "Uninstall"
         ]
      },
      "ssmParameter": {
         "description": "(Required) Argument stored in Parameter Store.",
         "type": "String",
         "default": "{{ ssm:parameter_store_arg }}"
      }
   },
   "mainSteps": [
      {
         "action": "aws:configurePackage",
         "name": "configurePackage",
         "inputs": {
            "name": "{{ name }}",
            "action": "{{ action }}",
            "additionalArguments": "{\"SSM_parameter_store_arg\": \"{{ ssmParameter }}\", \"SSM_custom_arg\": \"myValue\"}"
         }
      }
   ]
}
```

------

### Eingaben
<a name="configurepackage-properties"></a>

**Name**  
Der Name des zu installierenden oder zu deinstallierenden AWS Pakets. In verfügbaren Paketen ist Folgendes enthalten: `AWSPVDriver`, `AwsEnaNetworkDriver`, `AwsVssComponents` und `AmazonCloudWatchAgent`.  
Typ: Zeichenfolge  
Erforderlich: Ja

**action**  
Installieren oder deinstallieren Sie ein Paket.  
Type: Zähler  
Zulässige Werte: `Install` \$1 `Uninstall`  
Erforderlich: Ja

**installationType**  
Der Typ der auszuführenden Installation. Wenn Sie `Uninstall and reinstall` angeben, wird das Paket vollständig deinstalliert und anschließend neu installiert. Die Anwendung ist bis zum Abschluss der Neuinstallation nicht verfügbar. Wenn Sie `In-place update` angeben, werden der vorhandenen Installation nur neue oder geänderte Dateien hinzugefügt, entsprechend den Anweisungen, die Sie in einem Update-Skript bereitstellen. Die Anwendung ist während des Aktualisierungsprozesses weiterhin verfügbar. Die `In-place update` Option wird für Pakete mit dem Namen AWS-published nicht unterstützt. `Uninstall and reinstall`ist der Standardwert.  
Type: Zähler  
Zulässige Werte: `Uninstall and reinstall` \$1 `In-place update`  
Erforderlich: Nein

**additionalArguments**  
Eine JSON-Zeichenkette mit den zusätzlichen Parametern, die Sie Ihren Installations-, Deinstallations- oder Update-Skripten bereitstellen müssen. Jedem Parameter muss das Präfix `SSM_` angefügt werden. Sie können in Ihren zusätzlichen Argumenten auf einen Parameter Store-Parameter verweisen, indem Sie die Konvention `{{ssm:parameter-name}}` verwenden. Um den zusätzlichen Parameter in Ihrem Installations-, Deinstallations- oder Updateskript zu verwenden, müssen Sie den Parameter mithilfe der für das Betriebssystem geeigneten Syntax als Umgebungsvariable referenzieren. In verweisen Sie PowerShell beispielsweise auf das `SSM_arg` Argument als`$Env:SSM_arg`. Es gibt keine Begrenzung für die Anzahl der von Ihnen definierten Argumente, aber die Eingabe von zusätzlichen Argumenten hat eine Begrenzung von 4096 Zeichen. Dieser Grenzwert umfasst alle von Ihnen definierten Schlüssel und Werte.  
Typ: StringMap  
Erforderlich: Nein

**version**  
Installieren oder deinstallieren Sie eine bestimmte Version des Pakets. Wenn Sie ein Installation vornehmen, installiert das System standardmäßig die neueste veröffentlichte Version. Wenn Sie eine Deinstallation vornehmen, deinstalliert das System standardmäßig die derzeit installierte Version. Wenn keine installierte Version gefunden wird, wird die neueste veröffentlichte Version heruntergeladen und die Deinstallationsaktion ausgeführt.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:domainJoin`
<a name="aws-domainJoin"></a>

Verbinden Sie eine EC2-Instance mit einer Domain. Dieses Plugin läuft unter Linux- und Windows Server-Betriebssystemen. Dieses Plugin ändert den Hostnamen für Linux-Instances in das Format EC2 AMAZ-. *XXXXXXX* Weitere Informationen zum Beitreten von EC2-Instances finden Sie unter [Join an EC2 Instance to Your AWS Managed Microsoft AD Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html) im *AWS Directory Service Administrationshandbuch*.

### Syntax
<a name="domainJoin-syntax"></a>

#### Schema 2.2
<a name="domainJoin-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:domainJoin
parameters:
  directoryId:
    description: "(Required) The ID of the directory."
    type: String
  directoryName:
    description: "(Required) The name of the domain."
    type: String
  directoryOU:
    description: "(Optional) The organizational unit to assign the computer object to."
    type: String
  dnsIpAddresses:
    description: "(Required) The IP addresses of the DNS servers for your directory."
    type: StringList
  hostname:
    description: "(Optional) The hostname you want to assign to the node."
    type: String
mainSteps:
- action: aws:domainJoin
  name: domainJoin
  inputs:
    directoryId: "{{ directoryId }}"
    directoryName: "{{ directoryName }}"
    directoryOU: "{{ directoryOU }}"
    dnsIpAddresses: "{{ dnsIpAddresses }}"
    hostname: "{{ hostname }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:domainJoin",
  "parameters": {
    "directoryId": {
      "description": "(Required) The ID of the directory.",
      "type": "String"
    },
    "directoryName": {
      "description": "(Required) The name of the domain.",
      "type": "String"
    },
    "directoryOU": {
        "description": "(Optional) The organizational unit to assign the computer object to.",
        "type": "String"
      },
    "dnsIpAddresses": {
      "description": "(Required) The IP addresses of the DNS servers for your directory.",
      "type": "StringList"
    },
    "hostname": {
        "description": "(Optional) The hostname you want to assign to the node.",
        "type": "String"
      }
  },
  "mainSteps": [
    {
      "action": "aws:domainJoin",
      "name": "domainJoin",
      "inputs": {
        "directoryId": "{{ directoryId }}",
        "directoryName": "{{ directoryName }}",
        "directoryOU":"{{ directoryOU }}",
        "dnsIpAddresses":"{{ dnsIpAddresses }}",
        "hostname":"{{ hostname }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="domainJoin-syntax-1.2"></a>

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

```
---
runtimeConfig:
  aws:domainJoin:
    properties:
      directoryId: "{{ directoryId }}"
      directoryName: "{{ directoryName }}"
      directoryOU: "{{ directoryOU }}"
      dnsIpAddresses: "{{ dnsIpAddresses }}"
```

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

```
{
   "runtimeConfig":{
      "aws:domainJoin":{
         "properties":{
            "directoryId":"{{ directoryId }}",
            "directoryName":"{{ directoryName }}",
            "directoryOU":"{{ directoryOU }}",
            "dnsIpAddresses":"{{ dnsIpAddresses }}"
         }
      }
   }
}
```

------

### Eigenschaften
<a name="domainJoin-properties"></a>

**directoryId**  
Die ID des Verzeichnisses.  
Typ: Zeichenfolge  
Erforderlich: Ja  
Beispiel: "directoryId": "d-1234567890"

**directoryName**  
Der Name der Domain.  
Typ: Zeichenfolge  
Erforderlich: Ja  
Beispiel: "directoryName": "example.com"

**directoryOU**  
Die Organisationseinheit (OU).  
Typ: Zeichenfolge  
Erforderlich: Nein  
Beispiel: "directoryOU": "OU=test,DC=example,DC=com"

**dnsIpAddresses**  
Die IP-Adressen des DNS-Servers.  
Typ: StringList  
Erforderlich: Ja  
Beispiel: "dnsIpAddresses„: [" 198.51.100.1", "198.51.100.2"]

**hostname**  
Der Hostname, den Sie dem Knoten zuweisen möchten. Wenn nicht angegeben, gibt es keine Namensänderung für Windows Server-Instances. Linux-Instances hingegen verwenden das Standardbenennungsmuster. Wenn angegeben, verwenden Windows Server-Instances den entsprechenden Wert. Bei Linux-Instances dient er hingegen als Präfix (sofern `keepHostName` nicht auf „true“ gesetzt ist).  
Typ: Zeichenfolge  
Erforderlich: Nein

**keepHostName**  
Ermittelt, ob der Hostname für Linux-Instances geändert wird, wenn sie der Domain beitreten. Dies ist ein reiner Linux-Parameter. Standardmäßig (ohne Eingaben für `hostname``hostnameNumAppendDigits`, und mit „false“) werden `keepHostName` Linux-Hosts nach dem Muster AMAZ-XXXXXX umbenannt. EC2 Wenn der Wert auf „true“ gesetzt ist, wird der ursprüngliche Hostname beibehalten und Eingaben von `hostname` und `hostnameNumAppendDigits` werden ignoriert.  
Typ: Boolesch  
Erforderlich: Nein

**hostnameNumAppendZiffern**  
Definiert die Anzahl der zufälligen numerischen Ziffern, die nach dem Hostnamenwert angehängt werden sollen. Dies ist ein reiner Linux-Parameter, der zusammen mit dem Parameter `hostname` verwendet wird. Wenn `hostname` nicht angegeben wurde, wird er ignoriert.  
Typ: Zeichenfolge  
Zulässige Werte: 1 bis 5  
Erforderlich: Nein

### Beispiele
<a name="domainJoin-examples"></a>

Beispiele finden Sie unter [Verbinden einer Amazon-EC2-Instance mit Ihrem AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ec2-join-aws-domain.html) im *AWS Directory Service -Administratorhandbuch*.

## `aws:downloadContent`
<a name="aws-downloadContent"></a>

(Schemaversion 2.0 oder höher) Laden Sie SSM-Dokumente und -Skripte von Remote-Standorten herunter. GitHub Enterprise-Repositorys werden nicht unterstützt. Dieses Plugin wird unter Linux- und Windows Server-Betriebssystemen unterstützt.

### Syntax
<a name="downloadContent-syntax"></a>

#### Schema 2.2
<a name="downloadContent-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:downloadContent
parameters:
  sourceType:
    description: "(Required) The download source."
    type: String
  sourceInfo:
    description: "(Required) The information required to retrieve the content from
      the required source."
    type: StringMap
mainSteps:
- action: aws:downloadContent
  name: downloadContent
  inputs:
    sourceType: "{{ sourceType }}"
    sourceInfo: "{{ sourceInfo }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:downloadContent",
  "parameters": {
    "sourceType": {
    "description": "(Required) The download source.",
    "type": "String"
  },
  "sourceInfo": {
    "description": "(Required) The information required to retrieve the content from the required source.",
    "type": "StringMap"
    }
  },
  "mainSteps": [
    {
      "action": "aws:downloadContent",
      "name": "downloadContent",
      "inputs": {
        "sourceType":"{{ sourceType }}",
        "sourceInfo":"{{ sourceInfo }}"
      }
    }
  ]
}
```

------

### Eingaben
<a name="downloadContent-inputs"></a>

**sourceType**  
Die Downloadquelle. Systems Manager unterstützt derzeit die folgenden Quellarten für das Herunterladen von Skripts und SSM documents:-Dokumenten: `GitHub`, `Git`, `HTTP`, `S3` und `SSMDocument`.  
Typ: Zeichenfolge  
Erforderlich: Ja

**sourceInfo**  
Die erforderlichen Informationen zum Abrufen der Inhalte aus der erforderlichen Quelle.  
Typ: StringMap  
Erforderlich: Ja  
 **Für sourceType `GitHub,` geben Sie Folgendes an:**   
+ owner: Die Eigentümer des Repositorys.
+ repository: Der Name des Repositorys.
+ path: Der Pfad zu der Datei oder dem Verzeichnis, die bzw. das Sie herunterladen möchten.
+ getOptions: Zusätzliche Optionen zum Abrufen von Inhalten aus einem anderen Branch als dem Master-Branch oder aus einem bestimmten Commit im Repository. getOptions kann weggelassen werden, wenn Sie den letzten Commit in der Master-Branch verwenden. Wenn Ihr Repository nach dem 1. Oktober 2020 erstellt wurde, wird der Standardzweig möglicherweise „main“ statt „master“ genannt. In diesem Fall müssen Sie Werte für den getOptions-Parameter angeben.

  Dieser Parameter verwendet das folgende Format:
  + Branche: refs/heads/ *branch\$1name*

    Der Standardwert ist `master`.

    Verwenden Sie das folgende Format, um einen nicht standardmäßigen Zweig anzugeben:

    Branch:refs/heads/ *branch\$1name*
  + commitID: *commitID*

    Der Standardwert ist `head`.

    Um die Version Ihres SSM-Dokuments in einem anderen als dem letzten Commit zu verwenden, geben Sie die vollständige Commit-ID an. Beispiel:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ tokenInfo: Der Systems Manager Manager-Parameter (ein SecureString Parameter), in dem Sie Ihre GitHub Zugriffstoken-Informationen speichern, im Format. `{{ssm-secure:secure-string-token-name}}`
**Anmerkung**  
Dieses `tokenInfo` Feld ist das einzige SSM-Dokument-Plugin-Feld, das einen Parameter unterstützt. SecureString SecureString Parameter werden weder für andere Felder noch für andere SSM-Dokument-Plugins unterstützt.

```
{
    "owner":"TestUser",
    "repository":"GitHubTest",
    "path":"scripts/python/test-script",
    "getOptions":"branch:master",
    "tokenInfo":"{{ssm-secure:secure-string-token}}"
}
```
 **Für sourceType `Git` müssen Sie Folgendes angeben:**   
+ Repository

  Die URL des Git-Repositorys zu der Datei oder dem Verzeichnis, die bzw. das Sie herunterladen möchten.

  Typ: Zeichenfolge
Sie können zusätzlich einen der folgenden optionalen Parameter angeben:  
+ getOptions

  Zusätzliche Optionen zum Abrufen von Inhalten aus einem anderen Branch als dem Master-Branch oder aus einem bestimmten Commit im Repository. getOptions kann weggelassen werden, wenn Sie den letzten Commit in der Master-Branch verwenden.

  Typ: Zeichenfolge

  Dieser Parameter verwendet das folgende Format:
  + Branch:refs/heads/ *branch\$1name*

    Der Standardwert ist `master`.

    `"branch"` ist nur erforderlich, wenn Ihr SSM-Dokument in einer anderen Verzweigung als `master` gespeichert ist. Beispiel:

    ```
    "getOptions": "branch:refs/heads/main"
    ```
  + commitID: *commitID*

    Der Standardwert ist `head`.

    Um die Version Ihres SSM-Dokuments in einem anderen als dem letzten Commit zu verwenden, geben Sie die vollständige Commit-ID an. Beispiel:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ privat SSHKey

  Der SSH-Schlüssel, der beim Herstellen einer Verbindung zur `repository` verwendet werden soll. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres SSH-Schlüssels zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
+ skipHostKeyÜberprüfend

  Bestimmt den Wert der StrictHostKeyChecking Option, wenn eine Verbindung zu dem von `repository` Ihnen angegebenen hergestellt wird. Der Standardwert ist `false`.

  Typ: Boolescher Wert
+ username

  Der Benutzername, der bei der Verbindung mit der `repository` verwendet werden soll, die Sie mit HTTP angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Benutzernamens zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
+ password

  Das Passwort, das bei der Verbindung mit der `repository` verwendet werden soll, die Sie mit HTTP angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Passworts zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
 **Für sourceType `HTTP` müssen Sie Folgendes angeben:**   
+ URL

  Die URL zu der Datei oder dem Verzeichnis, die bzw. das Sie herunterladen möchten.

  Typ: Zeichenfolge
Sie können zusätzlich einen der folgenden optionalen Parameter angeben:  
+ allowInsecureDownload

  Bestimmt, ob ein Download über eine Verbindung durchgeführt werden kann, die nicht mit Secure Socket Layer (SSL) oder Transport Layer Security (TLS) verschlüsselt ist. Der Standardwert ist `false`. Wir raten davon ab, Downloads ohne Verschlüsselung durchzuführen. Wenn Sie sich dafür entscheiden, übernehmen Sie alle damit verbundenen Risiken. Sicherheit ist eine gemeinsame Verantwortung zwischen Ihnen AWS und Ihnen. Dies wird als Modell der geteilten Verantwortung beschrieben. Weitere Informationen hierzu finden Sie in [Modell der geteilten Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/).

  Typ: Boolescher Wert
+ authMethod

  Bestimmt, ob ein Benutzername und ein Passwort für die Authentifizierung verwendet werden, wenn eine Verbindung mit der `url` hergestellt wird, die Sie angeben. Wenn Sie `Basic` oder `Digest` angeben, müssen Sie Werte für die `username`- und `password`-Parameter bereitstellen. Um die `Digest`-Methode zu verwenden, muss SSM Agent-Version 3.0.1181.0 oder höher muss auf Ihrer Instance installiert sein. Die `Digest` Methode unterstützt MD5 SHA256 Verschlüsselung.

  Typ: Zeichenfolge

  Zulässige Werte: `None` \$1 `Basic` \$1 `Digest`
+ username

  Der Benutzername, der bei der Verbindung mit der `url` verwendet werden soll, die Sie mit `Basic`-Authentifizierung angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Benutzernamens zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
+ password

  Das Passwort, das bei der Verbindung mit der `url` verwendet werden soll, die Sie mit `Basic`-Authentifizierung angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Passworts zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
 **Für sourceType `S3` geben Sie Folgendes an:**   
+ Die URL zu der Datei oder dem Verzeichnis, die bzw. das Sie von Amazon S3 herunterladen möchten.
Beim Herunterladen einer Datei aus einem S3-Bucket werden die .etag-Dateien im Download-Verzeichnis generiert.

```
{
    "path": "https://s3.amazonaws.com/amzn-s3-demo-bucket/powershell/helloPowershell.ps1" 
}
```
 **Geben Sie für sourceType `SSMDocument` *eine* der folgenden Optionen an:**   
+ name: Der Name und die Version des Dokuments in folgendem Format: `name:version`. Version ist optional. 

  ```
  {
      "name": "Example-RunPowerShellScript:3" 
  }
  ```
+ name: Der ARN für das Dokument im folgenden Format: `arn:aws:ssm:region:account_id:document/document_name`

  ```
  {
     "name":"arn:aws:ssm:us-east-2:3344556677:document/MySharedDoc"
  }
  ```

**destinationPath**  
Ein optionaler lokaler Pfad auf der Instance, in den die Datei heruntergeladen werden soll. Wenn Sie keinen Pfad angeben, wird der Inhalt in einen Pfad relativ zu Ihrer Befehls-ID heruntergeladen.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:psModule`
<a name="aws-psModule"></a>

Installieren Sie PowerShell Module auf einer Amazon EC2 EC2-Instance. Dieses Plugin läuft nur unter Windows Server-Betriebssystemen.

### Syntax
<a name="psModule-syntax"></a>

#### Schema 2.2
<a name="psModule-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:psModule
parameters:
  source:
    description: "(Required) The URL or local path on the instance to the application
      .zip file."
    type: String
mainSteps:
- action: aws:psModule
  name: psModule
  inputs:
    source: "{{ source }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:psModule",
  "parameters": {
    "source": {
      "description": "(Required) The URL or local path on the instance to the application .zip file.",
      "type": "String"
    }
  },
  "mainSteps": [
    {
      "action": "aws:psModule",
      "name": "psModule",
      "inputs": {
        "source": "{{ source }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="domainJoin-syntax-1.2"></a>

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

```
---
runtimeConfig:
  aws:psModule:
    properties:
    - runCommand: "{{ commands }}"
      source: "{{ source }}"
      sourceHash: "{{ sourceHash }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

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

```
{
   "runtimeConfig":{
      "aws:psModule":{
         "properties":[
            {
               "runCommand":"{{ commands }}",
               "source":"{{ source }}",
               "sourceHash":"{{ sourceHash }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="psModule-properties"></a>

**runCommand**  
Der PowerShell Befehl, der nach der Installation des Moduls ausgeführt werden soll.  
Typ: StringList  
Erforderlich: Nein

**Quelle**  
Die URL bzw. der lokale Pfad auf der Instance zur `.zip`-Datei der Anwendung.  
Typ: Zeichenfolge  
Erforderlich: Ja

**sourceHash**  
Der SHA256 Hash der `.zip` Datei.  
Typ: Zeichenfolge  
Erforderlich: Nein

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis auf der Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:refreshAssociation`
<a name="aws-refreshassociation"></a>

(Schemaversion 2.0 oder höher) Aktualisieren (Erzwingen) Sie bei Bedarf eine Zuweisung. Diese Aktion ändert den Systemstatus basierend auf was in der ausgewählten Verknüpfungen bzw. in allen zielgebundenen Verknüpfungen definiert ist. Dieses Plugin läuft unter Linux- und Microsoft Windows Server-Betriebssystemen.

### Syntax
<a name="refreshassociation-syntax"></a>

#### Schema 2.2
<a name="refreshassociation-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:refreshAssociation
parameters:
  associationIds:
    description: "(Optional) List of association IDs. If empty, all associations bound
      to the specified target are applied."
    type: StringList
mainSteps:
- action: aws:refreshAssociation
  name: refreshAssociation
  inputs:
    associationIds:
    - "{{ associationIds }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:refreshAssociation",
  "parameters": {
    "associationIds": {
      "description": "(Optional) List of association IDs. If empty, all associations bound to the specified target are applied.",
      "type": "StringList"
    }
  },
  "mainSteps": [
    {
      "action": "aws:refreshAssociation",
      "name": "refreshAssociation",
      "inputs": {
        "associationIds": [
          "{{ associationIds }}"
        ]
      }
    }
  ]
}
```

------

### Eingaben
<a name="refreshassociation-properties"></a>

**associationIds**  
Liste der Assoziationen IDs. Wenn das Feld leer ist, werden alle Verknüpfungen mit dem angegebenen Ziel angewendet.  
Typ: StringList  
Erforderlich: Nein

## `aws:runDockerAction`
<a name="aws-rundockeraction"></a>

(Schemaversion 2.0 oder höher) Führen Sie Docker-Aktionen auf Containern aus. Dieses Plugin läuft unter Linux- und Microsoft Windows Server-Betriebssystemen.

### Syntax
<a name="rundockeraction-syntax"></a>

#### Schema 2.2
<a name="rundockeraction-syntax-2.2"></a>

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

```
---
mainSteps:
- action: aws:runDockerAction
  name: RunDockerAction
  inputs:
    action: "{{ action }}"
    container: "{{ container }}"
    image: "{{ image }}"
    memory: "{{ memory }}"
    cpuShares: "{{ cpuShares }}"
    volume: "{{ volume }}"
    cmd: "{{ cmd }}"
    env: "{{ env }}"
    user: "{{ user }}"
    publish: "{{ publish }}"
    workingDirectory: "{{ workingDirectory }}"
    timeoutSeconds: "{{ timeoutSeconds }}"
```

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

```
{
   "mainSteps":[
      {
         "action":"aws:runDockerAction",
         "name":"RunDockerAction",
         "inputs":{
            "action":"{{ action }}",
            "container":"{{ container }}",
            "image":"{{ image }}",
            "memory":"{{ memory }}",
            "cpuShares":"{{ cpuShares }}",
            "volume":"{{ volume }}",
            "cmd":"{{ cmd }}",
            "env":"{{ env }}",
            "user":"{{ user }}",
            "publish":"{{ publish }}",
            "workingDirectory": "{{ workingDirectory }}",
            "timeoutSeconds": "{{ timeoutSeconds }}"
         }
      }
   ]
}
```

------

### Eingaben
<a name="rundockeraction-properties"></a>

**action**  
Der Typ der Aktion, die durchgeführt werden soll.  
Typ: Zeichenfolge  
Erforderlich: Ja

**Container**  
Die Container-ID des Dockers.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Abbild**  
Der Name des Docker-Image.  
Typ: Zeichenfolge  
Erforderlich: Nein

**cmd**  
Der Container-Befehl.  
Typ: Zeichenfolge  
Erforderlich: Nein

**memory**  
Die Grenze des Container-Speichers.  
Typ: Zeichenfolge  
Erforderlich: Nein

**cpuShares**  
Die Container-CPU-Anteile (relative Gewichtung).  
Typ: Zeichenfolge  
Erforderlich: Nein

**Volume**  
Die Container-Volume-Mounts.  
Typ: StringList  
Erforderlich: Nein

**env**  
Die Container-Umgebungsvariablen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**user**  
Der Container-Benutzername.  
Typ: Zeichenfolge  
Erforderlich: Nein

**publish**  
Die veröffentlichten Container-Ports.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis in Ihrem verwalteten Knoten.  
Typ: Zeichenfolge  
Erforderlich: Nein

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:runDocument`
<a name="aws-rundocument"></a>

(Schema-Version 2.0 oder höher) Führt SSM-Dokumente aus, die in Systems Manager oder einem lokal freigegebenen Verzeichnis gespeichert sind. Sie können dieses Plugin mit dem Plugin [`aws:downloadContent`](#aws-downloadContent) verwenden, um ein SSM-Dokument von einem Remote-Standort in ein lokal freigegebenes Verzeichnis herunterzuladen, und es dann ausführen. Dieses Plugin wird unter Linux- und Windows Server-Betriebssystemen unterstützt. Dieses Plugin unterstützt nicht das Ausführen des `AWS-UpdateSSMAgent`-Dokuments oder eines anderen Dokuments, das den `aws:updateSsmAgent`-Plugin verwendet.

### Syntax
<a name="rundocument-syntax"></a>

#### Schema 2.2
<a name="aws-rundocument-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:runDocument
parameters:
  documentType:
    description: "(Required) The document type to run."
    type: String
    allowedValues:
    - LocalPath
    - SSMDocument
mainSteps:
- action: aws:runDocument
  name: runDocument
  inputs:
    documentType: "{{ documentType }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:runDocument",
  "parameters": {
    "documentType": {
      "description": "(Required) The document type to run.",
      "type": "String",
      "allowedValues": [
        "LocalPath",
        "SSMDocument"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:runDocument",
      "name": "runDocument",
      "inputs": {
        "documentType": "{{ documentType }}"
      }
    }
  ]
}
```

------

### Eingaben
<a name="rundocument-properties"></a>

**documentType**  
Der auszuführende Dokumenttyp. Sie können lokale Dokumente (`LocalPath`) oder in Systems Manager gespeicherte Dokumente (`SSMDocument`) ausführen.  
Typ: Zeichenfolge  
Erforderlich: Ja

**documentPath**  
Der Pfad zu dem Dokument. Wenn `documentType` `LocalPath` ist, geben Sie den Pfad des Dokuments im lokal freigegebenen Verzeichnis an. Wenn `documentType` `SSMDocument` ist, geben Sie den Namen des Dokuments an.  
Typ: Zeichenfolge  
Erforderlich: Nein

**documentParameters**  
Parameter für das Dokument.  
Typ: StringMap  
Erforderlich: Nein

## `aws:runPowerShellScript`
<a name="aws-runPowerShellScript"></a>

Führen Sie PowerShell Skripts aus oder geben Sie den Pfad zu einem auszuführenden Skript an. Dieses Plugin läuft unter Microsoft Windows Server- und Linux-Betriebssystemen.

### Syntax
<a name="runPowerShellScript-syntax"></a>

#### Schema 2.2
<a name="runPowerShellScript-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:runPowerShellScript
parameters:
  commands:
    type: String
    description: "(Required) The commands to run or the path to an existing script
      on the instance."
    default: Write-Host "Hello World"
mainSteps:
- action: aws:runPowerShellScript
  name: runPowerShellScript
  inputs:
    timeoutSeconds: '60'
    runCommand:
    - "{{ commands }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:runPowerShellScript",
  "parameters": {
    "commands": {
      "type": "String",
      "description": "(Required) The commands to run or the path to an existing script on the instance.",
      "default": "Write-Host \"Hello World\""
    }
  },
  "mainSteps": [
    {
      "action": "aws:runPowerShellScript",
      "name": "runPowerShellScript",
      "inputs": {
        "timeoutSeconds": "60",
        "runCommand": [
          "{{ commands }}"
        ]
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="runPowerShellScript-syntax-1.2"></a>

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

```
---
runtimeConfig:
  aws:runPowerShellScript:
    properties:
    - id: 0.aws:runPowerShellScript
      runCommand: "{{ commands }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

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

```
{
   "runtimeConfig":{
      "aws:runPowerShellScript":{
         "properties":[
            {
               "id":"0.aws:runPowerShellScript",
               "runCommand":"{{ commands }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="runPowerShellScript-properties"></a>

**runCommand**  
Geben Sie die auszuführenden Befehle oder den Pfad zu einem vorhandenen Skript auf der Instance an.  
Typ: StringList  
Erforderlich: Ja

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird. Wenn der Wert für den Timeout erreicht ist, hält Systems Manager die Ausführung des Befehls an.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis auf der Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:runShellScript`
<a name="aws-runShellScript"></a>

Führen Sie Linux-Shell-Skripts aus oder geben Sie den Pfad zu einem auszuführenden Skript an. Dieses Plugin läuft nur unter Linux-Betriebssystemen.

### Syntax
<a name="runShellScript-syntax"></a>

#### Schema 2.2
<a name="runShellScript-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:runShellScript
parameters:
  commands:
    type: String
    description: "(Required) The commands to run or the path to an existing script
      on the instance."
    default: echo Hello World
mainSteps:
- action: aws:runShellScript
  name: runShellScript
  inputs:
    timeoutSeconds: '60'
    runCommand:
    - "{{ commands }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:runShellScript",
  "parameters": {
    "commands": {
      "type": "String",
      "description": "(Required) The commands to run or the path to an existing script on the instance.",
      "default": "echo Hello World"
    }
  },
  "mainSteps": [
    {
      "action": "aws:runShellScript",
      "name": "runShellScript",
      "inputs": {
        "timeoutSeconds": "60",
        "runCommand": [
          "{{ commands }}"
        ]
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="runShellScript-syntax-1.2"></a>

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

```
---
runtimeConfig:
  aws:runShellScript:
    properties:
    - runCommand: "{{ commands }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

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

```
{
   "runtimeConfig":{
      "aws:runShellScript":{
         "properties":[
            {
               "runCommand":"{{ commands }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="runShellScript-properties"></a>

**runCommand**  
Geben Sie die auszuführenden Befehle oder den Pfad zu einem vorhandenen Skript auf der Instance an.  
Typ: StringList  
Erforderlich: Ja

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird. Wenn der Wert für den Timeout erreicht ist, hält Systems Manager die Ausführung des Befehls an.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis auf der Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:softwareInventory`
<a name="aws-softwareinventory"></a>

(Schema-Version 2.0 oder höher) Erfassen von Metadaten zu Anwendungen, Dateien und Konfigurationen auf Ihren verwalteten Instances. Dieses Plugin läuft unter Linux- und Microsoft Windows Server-Betriebssystemen. Wenn Sie die Inventarerfassung konfigurieren, erstellen Sie zunächst eine AWS Systems Manager State Manager Zuordnung. Systems Manager erfasst die Bestandsdaten, wenn der Zuordnungsstatus ausgeführt wird. Wenn Sie den Zuordnungsstatus nicht zuerst erstellen und versuchen, das `aws:softwareInventory`-Plugin aufzurufen, gibt das System den folgenden Fehler aus:

```
The aws:softwareInventory plugin can only be invoked via ssm-associate.
```

Pro Instance kann nur jeweils ein Bestandszuordnungsstatus konfiguriert werden. Wenn Sie eine Instance mit zwei oder mehr Zuordnungen konfigurieren, wird der Bestandszuordnungsstatus nicht ausgeführt und es werden keine Bestandsdaten erfasst. Weitere Informationen über das Erfassen des Bestands finden Sie unter [AWS Systems Manager-Bestand](systems-manager-inventory.md).

### Syntax
<a name="softwareinventory-syntax"></a>

#### Schema 2.2
<a name="softwareinventory-syntax-2.2"></a>

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

```
---
mainSteps:
- action: aws:softwareInventory
  name: collectSoftwareInventoryItems
  inputs:
    applications: "{{ applications }}"
    awsComponents: "{{ awsComponents }}"
    networkConfig: "{{ networkConfig }}"
    files: "{{ files }}"
    services: "{{ services }}"
    windowsRoles: "{{ windowsRoles }}"
    windowsRegistry: "{{ windowsRegistry}}"
    windowsUpdates: "{{ windowsUpdates }}"
    instanceDetailedInformation: "{{ instanceDetailedInformation }}"
    customInventory: "{{ customInventory }}"
```

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

```
{
   "mainSteps":[
      {
         "action":"aws:softwareInventory",
         "name":"collectSoftwareInventoryItems",
         "inputs":{
            "applications":"{{ applications }}",
            "awsComponents":"{{ awsComponents }}",
            "networkConfig":"{{ networkConfig }}",
            "files":"{{ files }}",
            "services":"{{ services }}",
            "windowsRoles":"{{ windowsRoles }}",
            "windowsRegistry":"{{ windowsRegistry}}",
            "windowsUpdates":"{{ windowsUpdates }}",
            "instanceDetailedInformation":"{{ instanceDetailedInformation }}",
            "customInventory":"{{ customInventory }}"
         }
      }
   ]
}
```

------

### Eingaben
<a name="softwareinventory-properties"></a>

**applications**  
(Optional) Erfassen von Metadaten für installierte Anwendungen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**awsComponents**  
(Optional) Sammeln Sie Metadaten für AWS Komponenten wie amazon-ssm-agent.  
Typ: Zeichenfolge  
Erforderlich: Nein

**files**  
(Optional, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Metadaten für Dateien, einschließlich Dateinamen, der Erstellungszeit der Dateien, der letzten Änderungs- und Zugriffszeit der Dateien oder Dateigrößen usw. Weitere Informationen zum Erfassen eines Dateibestands finden Sie unter [Arbeiten mit Datei- und Windows-Registrierungsbestand](inventory-file-and-registry.md).  
Typ: Zeichenfolge  
Erforderlich: Nein

**networkConfig**  
(Optional) Erfassen von Metadaten für Netzwerkkonfigurationen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**billingInfo**  
(Optional) Sammeln von Metadaten für Plattformdetails, die mit dem Fakturierungscode des AMI verknüpft sind.  
Typ: Zeichenfolge  
Erforderlich: Nein

**windowsUpdates**  
(Optional) Erfassen von Metadaten für alle Windows-Updates.  
Typ: Zeichenfolge  
Erforderlich: Nein

**instanceDetailedInformation**  
(Optional) Erfassen weiterer Instance-Informationen neben den Informationen des Standardbestands-Plugins (`aws:instanceInformation`), einschließlich CPU-Modell, Geschwindigkeit und Anzahl der Kerne usw.  
Typ: Zeichenfolge  
Erforderlich: Nein

**service**  
(Optional, nur Windows-BS, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Daten für Servicekonfigurationen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**windowsRegistry**  
(Optional, nur Windows-BS, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Windows Registry-Schlüsseln und -Werten. Sie können einen Schlüssel-Pfad auswählen und alle Schlüssel und Werte rekursiv erfassen. Sie können auch einen bestimmten Registrierungsschlüssel und seinen Wert für einen bestimmten Pfad erfassen. Inventory erfasst den Schlüsselpfad, den Namen, Typ und Wert. Weitere Informationen zur Erfassung von Windows Registry-Bestand finden Sie unter [Arbeiten mit Datei- und Windows-Registrierungsbestand](inventory-file-and-registry.md).  
Typ: Zeichenfolge  
Erforderlich: Nein

**windowsRoles**  
(Optional, nur Windows-BS, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Metadaten für Microsoft Windows-Rollenkonfigurationen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**customInventory**  
(Optional) Erfassen von benutzerdefinierten Bestandsdaten. Weitere Informationen zum benutzerdefinierten Bestand finden Sie unter [Arbeiten mit benutzerdefiniertem Bestand](inventory-custom.md)  
Typ: Zeichenfolge  
Erforderlich: Nein

**customInventoryDirectory**  
(Optional) Erfassen benutzerdefinierter Inventardaten aus dem angegebenen Verzeichnis. Weitere Informationen zum benutzerdefinierten Bestand finden Sie unter [Arbeiten mit benutzerdefiniertem Bestand](inventory-custom.md)  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:updateAgent`
<a name="aws-updateagent"></a>

Aktualisieren Sie den EC2 Config-Dienst auf die neueste Version oder geben Sie eine ältere Version an. Dieses Plugin läuft nur unter Microsoft Windows Server-Betriebssystemen. Weitere Informationen zum EC2 Config-Service finden Sie unter [Konfiguration einer Windows-Instance mithilfe des EC2 Config-Service (Legacy)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2config-service.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

### Syntax
<a name="updateagent-syntax"></a>

#### Schema 2.2
<a name="updateagent-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:updateAgent
mainSteps:
- action: aws:updateAgent
  name: updateAgent
  inputs:
    agentName: Ec2Config
    source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:updateAgent",
  "mainSteps": [
    {
      "action": "aws:updateAgent",
      "name": "updateAgent",
      "inputs": {
        "agentName": "Ec2Config",
        "source": "https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="updateagent-syntax-1.2"></a>

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

```
---
runtimeConfig:
  aws:updateAgent:
    properties:
      agentName: Ec2Config
      source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
      allowDowngrade: "{{ allowDowngrade }}"
      targetVersion: "{{ version }}"
```

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

```
{
   "runtimeConfig":{
      "aws:updateAgent":{
         "properties":{
            "agentName":"Ec2Config",
            "source":"https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json",
            "allowDowngrade":"{{ allowDowngrade }}",
            "targetVersion":"{{ version }}"
         }
      }
   }
}
```

------

### Eigenschaften
<a name="updateagent-properties"></a>

**agentName**  
EC2Config. Dies ist der Name des Agenten, der den EC2 Config-Dienst ausführt.  
Typ: Zeichenfolge  
Erforderlich: Ja

**allowDowngrade**  
Erlauben Sie, dass der EC2 Config-Dienst auf eine frühere Version herabgestuft wird. Wenn hierfür „false“ festgelegt ist, kann der Service nur auf neuere Versionen aktualisiert werden (Standard). Wenn hierfür „true“ festgelegt wurde, geben Sie die ältere Version an.   
Typ: Boolesch  
Erforderlich: Nein

**Quelle**  
Der Speicherort, an den Systems Manager die Version von EC2 Config kopiert, um sie zu installieren. Sie können diesen Speicherort nicht ändern.  
Typ: Zeichenfolge  
Erforderlich: Ja

**targetVersion**  
Eine bestimmte Version des EC2 Config-Dienstes, die installiert werden soll. Ist hierfür nichts angegeben, wird der Dienst auf die neueste Version aktualisiert.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:updateSsmAgent`
<a name="aws-updatessmagent"></a>

Aktualisieren Sie SSM Agent auf die neueste Version oder geben Sie eine ältere Version an. Dieses Plugin läuft unter Linux- und Windows Server-Betriebssystemen. Weitere Informationen finden Sie unter [Arbeiten mit SSM Agent](ssm-agent.md). 

### Syntax
<a name="updateSSMagent-syntax"></a>

#### Schema 2.2
<a name="updateaSSMgent-syntax-2.2"></a>

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

```
---
schemaVersion: '2.2'
description: aws:updateSsmAgent
parameters:
  allowDowngrade:
    default: 'false'
    description: "(Optional) Allow the Amazon SSM Agent service to be downgraded to
      an earlier version. If set to false, the service can be upgraded to newer versions
      only (default). If set to true, specify the earlier version."
    type: String
    allowedValues:
    - 'true'
    - 'false'
mainSteps:
- action: aws:updateSsmAgent
  name: updateSSMAgent
  inputs:
    agentName: amazon-ssm-agent
    source: https://s3.{Region}.amazonaws.com/amazon-ssm-{Region}/ssm-agent-manifest.json
    allowDowngrade: "{{ allowDowngrade }}"
```

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

```
{
  "schemaVersion": "2.2",
  "description": "aws:updateSsmAgent",
  "parameters": {
    "allowDowngrade": {
      "default": "false",
      "description": "(Required) Allow the Amazon SSM Agent service to be downgraded to an earlier version. If set to false, the service can be upgraded to newer versions only (default). If set to true, specify the earlier version.",
      "type": "String",
      "allowedValues": [
        "true",
        "false"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:updateSsmAgent",
      "name": "awsupdateSsmAgent",
      "inputs": {
        "agentName": "amazon-ssm-agent",
        "source": "https://s3.{Region}.amazonaws.com/amazon-ssm-{Region}/ssm-agent-manifest.json",
        "allowDowngrade": "{{ allowDowngrade }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="updateaSSMgent-syntax-1.2"></a>

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

```
---
runtimeConfig:
  aws:updateSsmAgent:
    properties:
    - agentName: amazon-ssm-agent
      source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
      allowDowngrade: "{{ allowDowngrade }}"
```

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

```
{
   "runtimeConfig":{
      "aws:updateSsmAgent":{
         "properties":[
            {
               "agentName":"amazon-ssm-agent",
               "source":"https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json",
               "allowDowngrade":"{{ allowDowngrade }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="updateSSMagent-properties"></a>

**agentName**  
amazon-ssm-agent. Dies ist der Name des Systems Manager Manager-Agenten, der Anfragen verarbeitet und Befehle auf der Instanz ausführt.  
Typ: Zeichenfolge  
Erforderlich: Ja

**allowDowngrade**  
Erlauben Sie, dass SSM Agent auf eine ältere Version zurückgesetzt wird. Wenn hierfür „false“ festgelegt ist, kann der Agent nur auf neuere Versionen aktualisiert werden (Standard). Wenn hierfür „true“ festgelegt wurde, geben Sie die ältere Version an.   
Typ: Boolescher Wert  
Erforderlich: Ja

**Quelle**  
Der Ort, an den Systems Manager die zu installierende Version von SSM Agent kopiert. Sie können diesen Speicherort nicht ändern.  
Typ: Zeichenfolge  
Erforderlich: Ja

**targetVersion**  
Eine bestimmte zu installierende Version von SSM Agent. Ist hierfür nichts angegeben, wird der Agent auf die neueste Version aktualisiert.  
Typ: Zeichenfolge  
Erforderlich: Nein

# Erstellen von SSM-Dokumentinhalten
<a name="documents-creating-content"></a>

Wenn die AWS Systems Manager öffentlichen Dokumente nicht alle Aktionen ausführen, die Sie für Ihre AWS Ressourcen ausführen möchten, können Sie Ihre eigenen SSM-Dokumente erstellen. Sie können SSM-Dokumente auch über die Konsole klonen. Beim Klonen von Dokumenten werden Inhalte aus einem vorhandenen Dokument in ein neues Dokument kopiert, das Sie ändern können. Beim Erstellen oder Klonen eines Dokuments darf der Inhalt des Dokuments 64 KB nicht überschreiten. Dieses Kontingent beinhaltet auch den zur Laufzeit für Eingabeparameter angegebenen Inhalt. Wenn Sie ein neues `Command`- oder `Policy`-Dokument erstellen, wird empfohlen, Schemaversion 2.2 oder höher zu verwenden, damit Sie die neuesten Features wie Dokumentbearbeitung, automatisches Versioning, Sequenzierung usw. nutzen können.

## Schreiben von SSM-Dokumentinhalt
<a name="writing-ssm-doc-content"></a>

Um eigene SSM-Dokumentinhalte zu erstellen, müssen Sie die verschiedenen Schemas, Features, Plugins und die Syntax für SSM-Dokumente verstehen. Wir empfehlen Ihnen, sich mit den folgenden Ressourcen vertraut zu machen.
+  [Schreiben Sie Ihre eigenen Dokumente AWS Systems Manager](https://aws.amazon.com/blogs//mt/writing-your-own-aws-systems-manager-documents/) 
+  [Datenelemente und Parameter](documents-syntax-data-elements-parameters.md) 
+  [Schemata, Features und Beispiele](documents-schemas-features.md) 
+  [Referenz für Befehlsdokument-Plugins](documents-command-ssm-plugin-reference.md) 
+  [Systems Manager Automation Aktionen-Referenz](automation-actions.md) 
+  [Systemvariablen für Automation](automation-variables.md) 
+  [Weitere Runbook-Beispiele](automation-document-examples.md) 
+  [Arbeiten mit Systems Manager Automation-Runbooks](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) mithilfe des AWS Toolkit for Visual Studio Code 
+  [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md) 
+  [Verwenden von Skripten in Runbooks](automation-document-script-considerations.md) 

AWS Vordefinierte SSM-Dokumente können einige der von Ihnen benötigten Aktionen ausführen. Sie können diese Dokumente je nach Dokumenttyp mithilfe der Plugins `aws:runDocument`, `aws:runCommand` oder `aws:executeAutomation` in Ihrem benutzerdefinierten SSM-Dokument aufrufen. Sie können Teile dieser Dokumente auch in ein benutzerdefiniertes SSM-Dokument kopieren und den Inhalt entsprechend Ihren Anforderungen bearbeiten.

**Tipp**  
Beim Erstellen von SSM-Dokumentinhalten können Sie den Inhalt ändern und das SSM-Dokument während des Tests mehrmals aktualisieren. Mit den folgenden Befehlen wird das SSM-Dokument mit dem neuesten Inhalt aktualisiert und die Standardversion des Dokuments wird auf die neueste Dokumentversion aktualisiert.  
Die Linux- und Windows-Befehle nutzen das `jq`-Befehlszeilen-Tool, um die JSON-Antwortdaten zu filtern.

```
latestDocVersion=$(aws ssm update-document \
    --content file://path/to/file/documentContent.json \
    --name "ExampleDocument" \
    --document-format JSON \
    --document-version '$LATEST' \
    | jq -r '.DocumentDescription.LatestVersion')

aws ssm update-document-default-version \
    --name "ExampleDocument" \
    --document-version $latestDocVersion
```

```
latestDocVersion=$(aws ssm update-document ^
    --content file://C:\path\to\file\documentContent.json ^
    --name "ExampleDocument" ^
    --document-format JSON ^
    --document-version "$LATEST" ^
    | jq -r '.DocumentDescription.LatestVersion')

aws ssm update-document-default-version ^
    --name "ExampleDocument" ^
    --document-version $latestDocVersion
```

```
$content = Get-Content -Path "C:\path\to\file\documentContent.json" | Out-String
$latestDocVersion = Update-SSMDocument `
    -Content $content `
    -Name "ExampleDocument" `
    -DocumentFormat "JSON" `
    -DocumentVersion '$LATEST' `
    | Select-Object -ExpandProperty LatestVersion

Update-SSMDocumentDefaultVersion `
    -Name "ExampleDocument" `
    -DocumentVersion $latestDocVersion
```

### Bewährte Methoden für die Sicherheit für SSM-Dokumente
<a name="ssm-document-security-practices"></a>

Beachten Sie beim Erstellen von SSM-Dokumenten die folgenden bewährten Methoden, um das Einschleusen von Befehlen zu verhindern und eine sichere Parameterbearbeitung zu gewährleisten:
+ Verwenden Sie die Interpolation von Umgebungsvariablen für Zeichenfolgeparameter, die in Befehlen oder Skripten verwendet werden. Fügen Sie Ihren Zeichenfolgeparametern die Eigenschaft `interpolationType` mit dem Wert `ENV_VAR` hinzu:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR"
      }
  }
  ```

  Sie können die Sicherheit Ihrer SSM-Dokumente weiter verbessern, indem Sie angeben, dass doppelte Anführungszeichen in durch Interpolation gelieferten Werten nicht zulässig sind:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR",
              "allowedPattern": "^[^"]*$"
      }
  }
  ```
+ Wenn Sie interpretierte Sprachen wie Python, Ruby oder Node.js verwenden, verweisen Sie auf Parameter mit der entsprechenden Umgebungsvariablensyntax:

  ```
  # Python example
  import os
  command = os.environ['SSM_Message']
  ```
+ Um die Abwärtskompatibilität mit älteren Versionen von SSM Agent zu gewährleisten (vor Version 3.3.2746.0), fügen Sie eine Fallback-Logik für Umgebungsvariablen hinzu:

  ```
  if [ -z "${SSM_command+x}" ]; then
      export SSM_command="{{command}}"
  fi
  ```
+ Kombinieren Sie die Interpolation von Umgebungsvariablen mit `allowedPattern`, um eine zusätzliche Eingabevalidierung bereitzustellen. Im folgenden Beispiel verhindert der `allowedPattern`-Wert `^[^"]*$` doppelte Anführungszeichen im Zeichenfolgewert:

  ```
  {
      "command": {
          "type": "String",
          "interpolationType": "ENV_VAR",
          "allowedPattern": "^[a-zA-Z0-9_-]+$"
      }
  }
  ```
+ Bevor Sie Ihr SSM-Dokument implementieren, sollten Sie die folgenden Sicherheitsaspekte prüfen:
  + Alle Zeichenfolgeparameter, die Benutzereingaben akzeptieren, verwenden gegebenenfalls die Interpolation mit Umgebungsvariablen.
  + Die Eingabevalidierung wird nach Möglichkeit mit `allowedPattern` implementiert.
  + Das Dokument beinhaltet eine angemessene Fehlerbehandlung für die Parameterverarbeitung.
  + Für Umgebungen, die ältere Versionen von SSM Agent verwenden, wird die Abwärtskompatibilität beibehalten.

Informationen zu AWS diensteigenen Ressourcen, auf die Systems Manager zugreift, und zur Konfiguration von Datenperimeterrichtlinien finden Sie unter. [Datenperimeter in AWS Systems Manager](data-perimeters.md)

## Klonen eines SSM-Dokuments
<a name="cloning-ssm-document"></a>

Sie können AWS Systems Manager Dokumente mit der Systems Manager Documents Console klonen, um SSM-Dokumente zu erstellen. Durch das Klonen von SSM-Dokumenten werden Inhalte aus einem vorhandenen Dokument in ein neues Dokument kopiert, das Sie ändern können. Sie können kein Dokument klonen, das größer als 64 KB ist.

**Klonen eines SSM-Dokuments**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Geben Sie in das Suchfeld den Namen des Dokuments ein, das Sie klonen möchten.

1. Wählen Sie den Namen des Dokuments aus, das Sie klonen möchten. Wählen Sie anschließend die Option **Clone document (Dokument klonen)** im Dropdownmenü **Aktionen**. 

1. Ändern Sie das Dokument nach Belieben und wählen Sie dann **Create document** (Dokument erstellen), um das Dokument zu speichern. 

Nachdem Sie den SSM-Dokumentinhalt geschrieben haben, können Sie mithilfe eines der folgenden Methoden ein SSM-Dokument erstellen.

**Topics**
+ [

## Schreiben von SSM-Dokumentinhalt
](#writing-ssm-doc-content)
+ [

## Klonen eines SSM-Dokuments
](#cloning-ssm-document)
+ [

## Erstellen von zusammengesetzten Dokumenten
](#documents-creating-composite)

## Erstellen von zusammengesetzten Dokumenten
<a name="documents-creating-composite"></a>

Ein *zusammengesetztes* Dokument AWS Systems Manager (SSM) ist ein benutzerdefiniertes Dokument, das eine Reihe von Aktionen ausführt, indem es ein oder mehrere sekundäre SSM-Dokumente ausführt. Zusammengesetzte Dokumente fördern *Infrastruktur als Code*, indem sie Ihnen ermöglichen, einen Standardsatz an SSM-Dokumenten für allgemeine Aufgaben wie das Bootstrapping von Software oder den Domain-Betritt von Instances zu erstellen. Sie können diese Dokumente dann gemeinsam nutzen, um die Wartung von SSM-Dokumenten AWS-Region zu reduzieren und die Konsistenz AWS-Konten zu gewährleisten.

Sie können beispielsweise ein zusammengesetztes Dokument erstellen, das die folgenden Aktionen ausführt:

1. Installiert alle Patches in der Zulassungsliste.

1. Installieren von Antivirensoftware

1. Herunterladen von Skripts von GitHub und Ausführen der Skripts.

In diesem Beispiel umfasst das benutzerdefinierte SSM-Dokument die folgenden Plugins für die Ausführung dieser Aktionen:

1. Das `aws:runDocument`-Plugin zum Ausführen des `AWS-RunPatchBaseline`-Dokuments, das alle aufgeführten Patches installiert.

1. Das Plugin `aws:runDocument` zum Ausführen des Dokuments `AWS-InstallApplication`, das die Antivirensoftware installiert

1. Das Plugin `aws:downloadContent` zum Herunterladen von Skripts von GitHub und Ausführen der Skripts.

Zusammengesetzte und sekundäre Dokumente können in Systems Manager, GitHub (öffentliche und private Repositorys) oder Amazon S3 gespeichert werden. Zusammengesetzte und sekundäre Dokumente lassen sich im JSON- oder YAML-Format erstellen. 

**Anmerkung**  
Zusammengesetzte Dokumente können maximal drei Dokumente tief ausgeführt werden. Dies bedeutet, dass ein zusammengesetztes Dokument ein untergeordnetes Dokument aufrufen kann, das wiederum ein letztes Dokument aufrufen kann.

Zum Erstellen eines zusammengesetzten Dokuments fügen Sie das [`aws:runDocument`](documents-command-ssm-plugin-reference.md#aws-rundocument)-Plugin einem benutzerdefinierten SSM-Dokument hinzu und geben die erforderlichen Eingaben an. Folgendes ist ein Beispiel eines zusammengesetzten Dokuments, das die folgenden Aktionen ausführt:

1. Ausführen des [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent)-Plugins zum Herunterladen eines SSM-Dokuments von einem öffentlichen Repository auf GitHub in ein lokales Verzeichnis mit der Bezeichnung „bootstrap“. Das SSM-Dokument heißt StateManagerBootstrap .yml (ein YAML-Dokument).

1. Führt das `aws:runDocument` Plugin aus, um das .yml-Dokument auszuführen. StateManagerBootstrap Es wurden keine Parameter angegeben.

1. Führt das Plugin `aws:runDocument` aus, um das `AWS-ConfigureDocker pre-defined` SSM-Dokument auszuführen. Die angegebenen Parameter installieren Docker in der 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\"}"
      }
    }
  ]
}
```

**Weitere Informationen**  
+ Informationen zum Neustarten von Servern und Instances bei Verwendung von Run Command für den Aufruf von Skripts finden Sie unter [Umgang mit Neustarts beim Ausführen von Befehlen](send-commands-reboot.md).
+ Weitere Informationen zu den Plugins, die Sie einem benutzerdefinierten SSM-Dokument hinzufügen können, finden Sie unter [Referenz für Befehlsdokument-Plugins](documents-command-ssm-plugin-reference.md).
+ Informationen zum Ausführen von Dokumenten von einem Remote-Standort (ohne Erstellen eines zusammengesetzten Dokuments) finden Sie unter [Ausführen von -Dokumenten von Remote-Standorten](documents-running-remote-github-s3.md).

# Arbeiten mit Dokumenten
<a name="documents-using"></a>

Dieser Abschnitt enthält Informationen darüber, wie Sie SSM-Dokumente verwenden und mit ihnen arbeiten können.

**Topics**
+ [

# Vergleichen von SSM-Dokumentversionen
](comparing-versions.md)
+ [

# Erstellen eines SSM-Dokuments
](create-ssm-console.md)
+ [

# Löschen benutzerdefinierter SSM-Dokumente
](deleting-documents.md)
+ [

# Ausführen von -Dokumenten von Remote-Standorten
](documents-running-remote-github-s3.md)
+ [

# Freigeben von SSM-Dokumenten
](documents-ssm-sharing.md)
+ [

# Suchen nach SSM-Dokumenten
](ssm-documents-searching.md)

# Vergleichen von SSM-Dokumentversionen
<a name="comparing-versions"></a>

Sie können die Unterschiede im Inhalt zwischen Versionen von AWS Systems Manager (SSM)-Dokumenten in der Systems Manager-Dokumentenkonsole vergleichen. Beim Vergleich von Versionen eines SSM-Dokuments werden Unterschiede zwischen dem Inhalt der Versionen hervorgehoben.

**Vergleichen von SSM-Dokumentinhalten (Konsole)**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie in der Dokumentliste das freizugebende Dokument, dessen Inhalt Sie teilen möchten.

1. Wählen Sie auf der Registerkarte **Content** (Inhalt) die Option **Compare versions** (Versionen vergleichen) und wählen Sie die Version des Dokuments aus, mit der Sie den Inhalt vergleichen möchten.

# Erstellen eines SSM-Dokuments
<a name="create-ssm-console"></a>

Nachdem Sie den Inhalt wie unter [Schreiben von SSM-Dokumentinhalt](documents-creating-content.md#writing-ssm-doc-content) beschrieben für das benutzerdefinierte SSM-Dokument erstellt haben, können Sie mithilfe der Systems Manager-Konsole ein SSM-Dokument mit Ihrem Inhalt erstellen.

**So erstellen Sie ein SSM-Dokument**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie **Create command or session (Befehl oder Sitzung erstellen)** aus.

1. Geben Sie einen aussagekräftigen Namen für das Dokument ein.

1. (Optional) Geben Sie in **Target type (Zieltyp)** den Typ der Ressourcen an, auf denen das Dokument ausgeführt werden kann.

1. Wählen Sie in der Liste **Document type** den Typ des zu erstellenden Dokuments aus.

1. Löschen Sie die Klammern im Feld **Content (Inhalt)** und fügen Sie dann den zuvor erstellten Dokumentinhalt ein.

1. (Optional) Wenden Sie im Abschnitt **Document tags (Dokument-Tags)** ein oder mehrere Tag-Schlüssel-Name/Wert-Paare auf das Dokument an.

   Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Möglicherweise möchten Sie ein Dokument markieren, um den Typ der von ihm ausgeführten Aufgaben, den Typ der Betriebssysteme, auf die es ausgerichtet ist, und die Umgebung, in der es ausgeführt wird, zu identifizieren. In diesem Fall könnten Sie z.B. die folgenden Schlüsselname-Wert-Paare angeben:
   + `Key=TaskType,Value=MyConfigurationUpdate`
   + `Key=OS,Value=AMAZON_LINUX_2`
   + `Key=Environment,Value=Production`

1. Wählen Sie **Create document** aus, um das Dokument zu speichern.

# Löschen benutzerdefinierter SSM-Dokumente
<a name="deleting-documents"></a>

Wenn Sie ein benutzerdefiniertes SSM-Dokument nicht mehr verwenden möchten, können Sie es über die AWS Systems Manager-Konsole löschen. 

**Löschen eines SSM-Dokuments**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie das Dokument aus, die Sie löschen möchten.

1. Wählen Sie **Löschen**. Wenn Sie zum Löschen des Dokuments aufgefordert werden, wählen Sie **Löschen**.

Beispiele für die Verwendung von Befehlszeilentools oder SDKs zum Löschen von SSM-Dokumenten finden Sie unter [Verwendung `DeleteDocument` mit einem AWS SDK oder CLI](example_ssm_DeleteDocument_section.md).

# Ausführen von -Dokumenten von Remote-Standorten
<a name="documents-running-remote-github-s3"></a>

Sie können AWS Systems Manager (SSM-) Dokumente von entfernten Standorten aus ausführen, indem Sie das `AWS-RunDocument` vordefinierte SSM-Dokument verwenden. Dieses Dokument unterstützt die Ausführung von SSM-Dokumenten, die an den folgenden Speicherorten gespeichert sind:
+ Öffentliche und private GitHub-Repositorys (GitHub Enterprise wird nicht unterstützt)
+ Amazon-S3-Buckets
+ Systems Manager

Sie können Remote-Dokumente zwar auch mithilfe von State Manager oder Automation, Tools unter, ausführen. Im folgenden Verfahren wird jedoch nur beschrieben AWS Systems Manager, wie Sie Remote-SSM-Dokumente mithilfe AWS Systems Manager Run Command der Systems Manager Manager-Konsole ausführen. 

**Anmerkung**  
`AWS-RunDocument` kann verwendet werden, um nur SSM-Dokumente vom Befehlstyp auszuführen, nicht andere Typen wie Automation-Runbooks. Das `AWS-RunDocument` verwendet das `aws:downloadContent`-Plugin. Weitere Informationen zum `aws:downloadContent`-Plugin finden Sie unter [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent).

**Warnung**  
`AWS-RunDocument`kann Dokumenteninhalte aus verschiedenen Quellen (SSM-Dokumente, S3 GitHub, URLs) ausführen. Bei der Ausführung von Remote-Dokumenten beziehen sich die ausgewerteten IAM-Berechtigungen `ssm:GetDocument` auf das Remote-Dokument und `ssm:SendCommand` auf. `AWS-RunDocument` Wenn Sie über IAM-Richtlinien verfügen, die den Zugriff auf bestimmte SSM-Dokumente verweigern, können Benutzer mit `AWS-RunDocument` entsprechenden Berechtigungen diese abgelehnten Dokumente trotzdem ausführen, indem sie den Dokumentinhalt als Parameter übergeben, für die möglicherweise nicht dieselben dokumentspezifischen IAM-Einschränkungen gelten.  
Verwenden Sie einen der folgenden Ansätze, um die Ausführung von Dokumenten ordnungsgemäß einzuschränken:  
**Zulässige Quellen** zulassen: Wenn Sie die Ausführung von verschachtelten Dokumenten verwenden müssen, beschränken Sie den Zugriff nur auf genehmigte Quellen, indem Sie die entsprechenden Kontrollen für jeden Quelltyp verwenden: IAM-Richtlinien zur Steuerung `ssm:GetDocument` von SSM-Dokumentenquellen, IAM- und Amazon S3-Bucket-Richtlinien für Amazon S3-Quellen und Netzwerkeinstellungen (wie VPC-Endpunkte oder Sicherheitsgruppen) für öffentliche Internetquellen.
**Beschränken Sie den Zugriff auf AWS- RunDocument**: Deny `ssm:SendCommand` on `AWS-RunDocument` und alle anderen Dokumente, die das `aws:runDocument` Plugin in Ihren IAM-Richtlinien verwenden, um die Ausführung verschachtelter Dokumente zu verhindern.
**Verwenden Sie Berechtigungsgrenzen**: Implementieren Sie IAM-Berechtigungsgrenzen, um maximale Berechtigungen für Benutzer festzulegen und zu verhindern, dass sie unabhängig von der Ausführungsmethode nicht autorisierte Dokumente ausführen.
*Weitere Informationen zu bewährten IAM-Methoden und Berechtigungsgrenzen finden Sie im Benutzerhandbuch unter [Berechtigungsgrenzen für IAM-Entitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html).AWS Identity and Access Management *

**Bevor Sie beginnen**  
Bevor Sie ein Remote-Dokument ausführen, müssen Sie die folgenden Aufgaben erledigen.
+ Erstellen Sie ein SSM-Befehlsdokument und speichern Sie es an einem Remote-Standort. Weitere Informationen finden Sie unter [Erstellen von SSM-Dokumentinhalten](documents-creating-content.md).
+ Wenn Sie ein Remote-Dokument ausführen möchten, das in einem privaten GitHub-Repository gespeichert ist, müssen Sie einen Systems-Manager-`SecureString`-Parameter für Ihr GitHub-Sicherheitszugriffstoken erstellen. Sie können nicht auf ein Remote-Dokument in einem privaten GitHub-Repository zugreifen, indem Sie Ihr Token manuell über SSH übergeben. Das Zugriffstoken muss als `SecureString`-Systems Manager-Parameter übertragen werden. Weitere Informationen zum Erstellen eines `SecureString`-Parameters finden Sie unter [Parameter Store-Parameter im Systems Manager erstellen](sysman-paramstore-su-create.md).

## Ausführen eines Remote-Dokuments (Konsole)
<a name="documents-running-remote-github-s3-console"></a>

**So führen Sie ein Remote-Dokument aus**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Run Command** aus.

1. Wählen Sie **Befehl ausführen** aus.

1. Wählen Sie in der Liste **Dokument** die Option **`AWS-RunDocument`**.

1. Wählen Sie unter **Command parameters (Befehlsparameter)** für **Source Type (Quelltyp)** eine Option aus. 
   + Wenn Sie **GitHub** auswählen, geben Sie für **Quallinformationen** Informationen in folgendem Format an:

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "path": "path_to_document",
         "getOptions":"branch:branch_name",
         "tokenInfo": "{{ssm-secure:secure-string-token}}"
     }
     ```

     Beispiel:

     ```
     {
         "owner":"TestUser",
         "repository":"GitHubTestExamples",
         "path":"scripts/python/test-script",
         "getOptions":"branch:exampleBranch",
         "tokenInfo":"{{ssm-secure:my-secure-string-token}}"
     }
     ```
**Anmerkung**  
`getOptions` sind zusätzliche Optionen zum Abrufen von Inhalten aus einem anderen Branch als dem Master-Branch oder aus einem bestimmten Commit im Repository. `getOptions` kann weggelassen werden, wenn Sie den letzten Commit in der Master-Branch verwenden. Der `branch`-Parameter ist nur erforderlich, wenn Ihr SSM-Dokument in einer anderen Verzweigung als `master` gespeichert ist.  
Um die Version Ihres SSM-Dokuments in einem bestimmten *Commit* in Ihrem Repository zu verwenden, verwenden Sie `commitID` mit `getOptions`statt `branch`. Zum Beispiel:  

     ```
     "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
     ```
   + Wenn Sie **S3** auswählen, geben Sie für **Source Info** Informationen in folgendem Format an:

     ```
     {"path":"URL_to_document_in_S3"}
     ```

     Beispiel:

     ```
     {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
     ```
   + Wenn Sie **SSMDocument** auswählen, geben Sie für **Quallinformationen** Informationen in folgendem Format an:

     ```
     {"name": "document_name"}
     ```

     Beispiel:

     ```
     {"name": "mySSMdoc"}
     ```

1. Geben Sie im Feld **Document Parameters** Parameter für das Remote-SSM-Dokument ein. Wenn Sie beispielsweise das Dokument `AWS-RunPowerShell` ausführen, könnten Sie Folgendes angeben:

   ```
   {"commands": ["date", "echo \"Hello World\""]}
   ```

   Wenn Sie das Dokument `AWS-ConfigureAWSPack` ausführen, könnten Sie Folgendes angeben:

   ```
   {
      "action":"Install",
      "name":"AWSPVDriver"
   }
   ```

1. Identifizieren Sie für den Abschnitt **Targets** (Ziele) die verwalteten Knoten, auf denen Sie diese Operation ausführen möchten, indem Sie Tags angeben, Instances oder Edge-Geräte manuell auswählen oder eine Ressourcengruppe angeben.
**Tipp**  
Wenn ein verwalteter Knoten, den Sie erwarten, nicht aufgeführt ist, finden Sie weitere Informationen unter [Problembehandlung bei der Verfügbarkeit verwalteter Knoten](fleet-manager-troubleshooting-managed-nodes.md) Tipps zur Fehlerbehebung.

1. Für **Weitere Parameter**:
   + Geben Sie im Feld **Kommentar** Informationen zu diesem Befehl ein.
   + Geben Sie für **Timeout (Sekunden)** in Sekunden an, wie lange gewartet werden soll, bis für die gesamte Befehlsausführung ein Fehler auftritt. 

1. Für **Ratenregelung**:
   + Geben Sie unter **Nebenläufigkeit** entweder eine Zahl oder einen Prozentsatz der verwalteten Knoten an, auf denen der Befehl gleichzeitig ausgeführt werden soll.
**Anmerkung**  
Wenn Sie Ziele ausgewählt haben, indem Sie Tags für verwaltete Knoten oder AWS Ressourcengruppen angegeben haben und Sie sich nicht sicher sind, wie viele verwaltete Knoten das Ziel sind, schränken Sie die Anzahl der Ziele ein, die das Dokument gleichzeitig ausführen können, indem Sie einen Prozentsatz angeben.
   + Geben Sie unter **Fehlerschwellenwert** an, wann die Ausführung des Befehls auf anderen verwalteten Knoten beendet werden soll, nachdem dafür entweder auf einer bestimmten Anzahl oder einem Prozentsatz von Knoten ein Fehler aufgetreten ist. Falls Sie beispielsweise drei Fehler angeben, sendet Systems Manager keinen Befehl mehr, wenn der vierte Fehler empfangen wird. Von verwalteten Knoten, auf denen der Befehl noch verarbeitet wird, werden unter Umständen ebenfalls Fehler gesendet.

1. (Optional) Wenn Sie im Abschnitt **Ausgabeoptionen** die Befehlsausgabe in einer Datei speichern möchten, aktivieren Sie das Kontrollkästchen **Schreiben in einen S3-Bucket aktivieren**. Geben Sie die Namen für den Bucket und das Präfix (Ordner) in die Textfelder ein.
**Anmerkung**  
Die S3-Berechtigungen zum Schreiben von Daten in einen S3-Bucket sind diejenigen des Instance-Profils (für EC2-Instances) oder der IAM-Servicerolle (hybrid-aktivierte Maschinen), die der Instance zugewiesen sind, und nicht diejenigen des IAM-Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter [Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md) oder [Eine IAM-Servicerolle für eine Hybrid-Umgebung erstellen](hybrid-multicloud-service-role.md). Wenn sich der angegebene S3-Bucket in einem anderen AWS-Konto befindet, stellen Sie außerdem sicher, dass das Instance-Profil oder die IAM-Servicerolle, die dem verwalteten Knoten zugeordnet ist, über die erforderlichen Berechtigungen zum Schreiben in diesen Bucket verfügt.

1. Aktivieren Sie das Kontrollkästchen **SNS-Benachrichtigungen aktivieren** im Abschnitt **SNS-Benachrichtigungen**, wenn Sie über den Status der Befehlsausführung benachrichtigt werden möchten,

   Weitere Informationen zum Konfigurieren von Amazon-SNS-Benachrichtigungen für Run Command finden Sie unter [Überwachung von Systems Manager-Statusänderungen mit Amazon SNS-Benachrichtigungen](monitoring-sns-notifications.md).

1. Klicken Sie auf **Ausführen**.

**Anmerkung**  
Informationen zum Neustarten von Servern und Instances bei Verwendung von Run Command für den Aufruf von Skripts finden Sie unter [Umgang mit Neustarts beim Ausführen von Befehlen](send-commands-reboot.md).

# Freigeben von SSM-Dokumenten
<a name="documents-ssm-sharing"></a>

Sie können AWS Systems Manager (SSM) Dokumente privat oder öffentlich mit Konten in demselben AWS-Region teilen. Um ein Dokument privat freizugeben, ändern Sie die Dokumentberechtigungen und erlauben bestimmten Personen entsprechend ihrer AWS-Konto -ID den Zugriff darauf. Wenn Sie ein SSM-Dokument öffentlich freigeben möchten, ändern Sie die Zugriffsberechtigungen des Dokuments und geben `All` an. Dokumente können nicht gleichzeitig öffentlich und privat freigegeben werden.

**Warnung**  
Verwenden Sie freigegebene SSM-Dokumente nur, wenn sie aus vertrauenswürdigen Quellen stammen. Wenn Sie ein freigegebenes Dokument verwenden, überprüfen Sie den Inhalt des Dokuments sorgfältig, bevor Sie es verwenden, damit Sie verstehen, wie es die Konfiguration der Instance ändert. Weitere Informationen zu bewährten Methoden für freigegebene Dokumente finden Sie unter [Bewährte Methoden für freigegebene SSM-Dokumente](#best-practices-shared). 

**Einschränkungen**  
Beachten Sie die folgenden Einschränkungen, wenn Sie zum ersten Mal mit SSM-Dokumenten arbeiten.
+ Nur der Eigentümer eines Dokuments kann ein Dokument freigeben.
+ Sie müssen die Freigabe eines Dokuments aufheben, bevor Sie ein Dokument löschen können. Weitere Informationen finden Sie unter [Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument](#modify-permissions-shared).
+ Sie können ein Dokument mit maximal 1000 AWS-Konten Personen teilen. Sie können über das [Support Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase) eine Erhöhung dieses Limits anfordern. Wählen Sie unter **Limittyp** die Option *EC2 Systems Manager* aus und beschreiben Sie die Gründe für die Anforderung.
+ Sie können maximal fünf SSM-Dokumente öffentlich freigeben. Sie können über das [Support Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase) eine Erhöhung dieses Limits anfordern. Wählen Sie unter **Limittyp** die Option *EC2 Systems Manager* aus und beschreiben Sie die Gründe für die Anforderung.
+ Dokumente können AWS-Region nur mit anderen Konten in demselben Konto geteilt werden. Die Freigabe über Regionsgrenzen hinweg wird nicht unterstützt.

**Wichtig**  
In Systems Manager ist ein zu *Amazon gehörendes* SSM-Dokument ein Dokument, das von Amazon Web Services selbst erstellt und verwaltet wird. Dokumente, *die Amazon gehören*, enthalten ein Präfix wie `AWS-*` im Dokumentnamen. Als Eigentümer des Dokuments gilt Amazon und nicht als ein bestimmtes Benutzerkonto innerhalb AWS. Diese Dokumente sind öffentlich zugänglich und können von allen verwendet werden.

Weitere Informationen zu Service Quotas für Systems Manager finden Sie unter [AWS Systems Manager Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm).

**Topics**
+ [

## Bewährte Methoden für freigegebene SSM-Dokumente
](#best-practices-shared)
+ [

## Öffentliche Freigabe für SSM-Dokumente blockieren
](#block-public-access)
+ [

## Freigeben eines SSM-Dokuments
](#ssm-how-to-share)
+ [

## Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument
](#modify-permissions-shared)
+ [

## Verwenden von freigegebenen SSM-Dokumenten
](#using-shared-documents)

## Bewährte Methoden für freigegebene SSM-Dokumente
<a name="best-practices-shared"></a>

Überprüfen Sie die folgenden Richtlinien, bevor Sie ein Dokument freigeben oder ein gemeinsam genutztes Dokument verwenden. 

**Entfernen sensibler Daten**  
Überprüfen Sie Ihr AWS Systems Manager (SSM-) Dokument sorgfältig und entfernen Sie alle vertraulichen Informationen. Stellen Sie beispielsweise sicher, dass das Dokument Ihre AWS Anmeldeinformationen nicht enthält. Wenn Sie ein Dokument für bestimmten Personen freigeben, können die Informationen in dem Dokument anzeigen. Wenn Sie ein Dokument öffentlich freigeben, können beliebige Personen die Informationen in dem Dokument anzeigen.

**Öffentliche Freigabe für Dokumente blockieren**  
Überprüfen Sie alle öffentlich geteilten SSM-Dokumente in Ihrem Konto und bestätigen Sie, ob Sie sie weiterhin teilen möchten. Um die gemeinsame Nutzung eines Dokuments für die Öffentlichkeit zu beenden, müssen Sie die Einstellung für die Dokumentberechtigungen wie im [Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument](#modify-permissions-shared)-Abschnitt dieses Themas beschrieben ändern. Die Aktivierung der Einstellung „Öffentliches Teilen blockieren“ hat keine Auswirkungen auf Dokumente, die Sie derzeit für die Öffentlichkeit freigeben. Sofern Ihr Anwendungsfall nicht erfordert, dass Sie Dokumente öffentlich freigeben, empfehlen wir Ihnen, die Einstellung „Öffentliche Freigabe blockieren“ für Ihre SSM-Dokumente im Abschnitt **Einstellungen** der Systems-Manager-Dokumentenkonsole zu aktivieren. Wenn Sie diese Einstellung aktivieren, wird unerwünschter Zugriff auf Ihre SSM-Dokumente verhindert. Die Einstellung „Öffentliche Freigabe sperren“ ist eine Einstellung auf Kontoebene, die sich für jede AWS-Region unterscheiden kann.

**Beschränken von Run Command-Aktionen mithilfe einer IAM-Vertrauensrichtlinie**  
Erstellen Sie eine restriktive Richtlinie AWS Identity and Access Management (IAM) für Benutzer, die Zugriff auf das Dokument haben werden. Die IAM-Richtlinie bestimmt, welche SSM-Dokumente ein Benutzer entweder in der Amazon Elastic Compute Cloud (Amazon EC2) -Konsole oder durch Aufrufen `ListDocuments` mit AWS Command Line Interface (AWS CLI) oder sehen kann. AWS Tools for Windows PowerShell Die Richtlinie schränkt auch die Aktionen ein, die der Benutzer mit SSM-Dokumenten durchführen kann. Sie können eine restriktive Richtlinie erstellen, damit Benutzer nur bestimmte Dokumente verwenden können. Weitere Informationen finden Sie unter [Beispiele für vom Kunden verwaltete Richtlinien](security_iam_id-based-policy-examples.md#customer-managed-policies).

**Vorsicht bei der Verwendung freigegebener SSM-Dokumente**  
Überprüfen Sie den Inhalt jedes Dokuments, das für Sie freigegeben ist, insbesondere öffentliche Dokumente, um die Befehle zu verstehen, die über Ihre Instances ausgeführt werden. Ein Dokument kann absichtlich oder unbeabsichtigterweise negative Auswirkungen haben, wenn es ausgeführt wird. Wenn das Dokument auf ein externes Netzwerk verweist, überprüfen Sie die externe Quelle, bevor Sie das Dokument verwenden. 

**Versenden von Befehlen mit dem Dokument-Hash**  
Wenn Sie ein Dokument freigeben, erstellt das System einen SHA-256-Hash und weist diesen dem Dokument zu. Das System speichert außerdem einen Snapshot des Dokumentinhalts. Wenn Sie mit einem freigegebenen Dokument einen Befehl senden, können Sie für den Befehl diesen Hash angeben, um sicherzustellen, dass die folgenden Bedingungen erfüllt sind:  
+ Sie führen den Befehl über das richtige Systems Manager-Dokument aus.
+ Der Inhalt des Dokuments wurde nicht geändert, seit es für Sie freigegeben wurde.
Wenn der Hash nicht mit dem angegebenen Dokument übereinstimmt oder der Inhalt des freigegebenen Dokuments geändert wurde, löst der Befehl eine `InvalidDocument`-Ausnahmebedingung aus. Mit dem Hash können keine Dokumentinhalte von externen Standorten überprüft werden.

**Verwenden des Interpolationsparameters, um die Sicherheit zu verbessern**  
Verwenden Sie für Parameter vom Typ `String` in Ihren SSM-Dokumenten den Parameter und den Wert `interpolationType": "ENV_VAR`, um die Sicherheit vor Befehlseinschleusungen zu erhöhen. Parametereingaben werden dadurch als Zeichenfolgeliterale und nicht als potenziell ausführbare Befehle behandelt. In diesem Fall erstellt der Agent eine Umgebungsvariable mit dem Namen `SSM_parameter-name`, die den Wert des Parameters enthält. Wir empfehlen, allen SSM-Dokumenten mit Parametern vom Typ `String` den Parameter `"interpolationType": "ENV_VAR"` hinzuzufügen. Weitere Informationen finden Sie unter [Schreiben von SSM-Dokumentinhalt](documents-creating-content.md#writing-ssm-doc-content).

## Öffentliche Freigabe für SSM-Dokumente blockieren
<a name="block-public-access"></a>

Bevor Sie beginnen, überprüfen Sie alle öffentlich freigegebenen SSM-Dokumente in Ihrem AWS-Konto und bestätigen Sie, ob Sie diese weiterhin freigeben möchten. Um die gemeinsame Nutzung eines SSM-Dokuments für die Öffentlichkeit zu beenden, müssen Sie die Einstellung für Dokumentberechtigungen wie im [Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument](#modify-permissions-shared)-Abschnitt dieses Themas beschrieben ändern. Die Aktivierung der Einstellung „Öffentliches Teilen blockieren“ hat keine Auswirkungen auf SSM-Dokumente, die Sie derzeit für die Öffentlichkeit freigeben. Wenn die Einstellung „Öffentliches Teilen blockieren“ aktiviert ist, können Sie keine weiteren SSM-Dokumente mit der Öffentlichkeit teilen.

Sofern Ihr Anwendungsfall nicht erfordert, dass Sie Dokumente öffentlich freigeben, empfehlen wir Ihnen, die Einstellung „Öffentliche Freigabe blockieren“ für Ihre SSM-Dokumente zu aktivieren. Wenn Sie diese Einstellung aktivieren, wird unerwünschter Zugriff auf Ihre SSM-Dokumente verhindert. Bei der Einstellung „Öffentliches Teilen blockieren“ handelt es sich um eine Einstellung auf Kontoebene, die für jedes Konto unterschiedlich sein kann. AWS-Region Führen Sie die folgenden Aufgaben aus, um die öffentliche Freigabe für alle SSM-Dokumente zu blockieren, die Sie derzeit nicht freigeben.

### Öffentliche Freigabe blockieren (Konsole)
<a name="block-public-access-console"></a>

**Blockieren der öffentlichen Freigabe Ihrer SSM-Dokumente**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie **Preferences (Präferenzen)** und dann **Edit (Bearbeiten)** im Abschnitt **Block public sharing (Öffentliche Freigabe blockieren)** .

1. Wählen Sie das Kontrollkästchen **Block public sharing (Öffentliche Freigabe blockieren)** und wählen Sie aus **Save (speichern)**. 

### Öffentliche Freigabe blockieren (Befehlszeile)
<a name="block-public-access-cli"></a>

Öffnen Sie AWS Command Line Interface (AWS CLI) oder AWS Tools for Windows PowerShell auf Ihrem lokalen Computer und führen Sie den folgenden Befehl aus, um das öffentliche Teilen Ihrer SSM-Dokumente zu blockieren.

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

```
aws ssm update-service-setting  \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --setting-value Disable \
    --region 'The AWS-Region you want to block public sharing in'
```

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

```
aws ssm update-service-setting ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --setting-value Disable ^
    --region "The AWS-Region you want to block public sharing in"
```

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

```
Update-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -SettingValue Disable `
    –Region The AWS-Region you want to block public sharing in
```

------

Überprüfen Sie, ob der Einstellungswert aktualisiert wurde, indem Sie den folgenden Befehl verwenden.

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

```
aws ssm get-service-setting   \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --region The AWS-Region you blocked public sharing in
```

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

```
aws ssm get-service-setting  ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --region "The AWS-Region you blocked public sharing in"
```

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

```
Get-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -Region The AWS-Region you blocked public sharing in
```

------

### Beschränken des Zugriffs zum Blockieren der öffentlichen Freigabe mit IAM
<a name="block-public-access-changes-iam"></a>

Sie können AWS Identity and Access Management (IAM) -Richtlinien erstellen, die Benutzer daran hindern, die Einstellung „Öffentliches Teilen blockieren“ zu ändern. Dadurch wird verhindert, dass Benutzer unerwünschten Zugriff auf Ihre SSM-Dokumente zulassen. 

Nachfolgend finden Sie ein Beispiel für eine IAM-Richtlinie, die verhindert, dass Benutzer die Einstellung zum Blockieren der öffentlichen Freigabe zu aktualisieren. Um dieses Beispiel zu verwenden, müssen Sie die Beispiel-Konto-ID für Amazon Web Services durch Ihre eigene Konto-ID ersetzen.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ssm:UpdateServiceSetting",
            "Resource": "arn:aws:ssm:*:444455556666:servicesetting/ssm/documents/console/public-sharing-permission"
        }
    ]
}
```

------

## Freigeben eines SSM-Dokuments
<a name="ssm-how-to-share"></a>

Sie können AWS Systems Manager (SSM) Dokumente mithilfe der Systems Manager Manager-Konsole teilen. Beim Teilen von Dokumenten über die Konsole kann nur die Standardversion des Dokuments geteilt werden. Sie können SSM-Dokumente auch programmgesteuert teilen, indem Sie die `ModifyDocumentPermission` API-Operation mit dem AWS Command Line Interface (AWS CLI) AWS Tools for Windows PowerShell, oder dem SDK aufrufen. AWS Bevor Sie ein Dokument teilen, sollten Sie die Personen AWS-Konto IDs ermitteln, mit denen Sie es teilen möchten. Sie geben diese Konten an IDs , wenn Sie das Dokument teilen.

### Freigeben eines Dokuments (Konsole)
<a name="share-using-console"></a>

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie in der Dokumentenliste das Dokument aus, das Sie freigeben möchten, und klicken Sie dann auf **View details** (Details anzeigen). Überprüfen Sie dann auf der Registerkarte **Permissions**, ob Sie der Besitzer des Dokuments sind. Nur der Eigentümer eines Dokuments kann ein Dokument freigeben.

1. Wählen Sie **Bearbeiten** aus.

1. Um den Befehl öffentlich freizugeben, wählen Sie **Public** und dann die Option **Save**. Wählen Sie zur privaten Freigabe des Befehls die Option **Private** aus, geben Sie die AWS-Konto -ID ein und wählen Sie **Add permission** sowie anschließend die Option **Save** aus. 

### Freigeben eines Dokuments (Befehlszeile)
<a name="share-using-cli"></a>

Das folgende Verfahren erfordert, dass Sie eine AWS-Region für Ihre Befehlszeilensitzung angeben.

1. Öffnen Sie AWS CLI oder AWS Tools for Windows PowerShell auf Ihrem lokalen Computer und führen Sie den folgenden Befehl aus, um Ihre Anmeldeinformationen anzugeben. 

   Ersetzen Sie den Befehl im folgenden Befehl *region* durch Ihre eigenen Informationen. Eine Liste der unterstützten *region* Werte finden Sie in der Spalte **Region** der [Systems Manager Manager-Dienstendpunkte](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) in der *Allgemeine Amazon Web Services-Referenz*.

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

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

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

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

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

   ```
   Set-AWSCredentials –AccessKey your key –SecretKey your key
   Set-DefaultAWSRegion -Region region
   ```

------

1. Verwenden Sie den folgenden Befehl, um alle SSM-Dokumente aufzulisten, die für Sie verfügbar sind. Die Liste enthält Dokumente, die Sie erstellt haben, und Dokumente, die für Sie freigegeben wurden.

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

   ```
   aws ssm list-documents
   ```

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

   ```
   aws ssm list-documents
   ```

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

   ```
   Get-SSMDocumentList
   ```

------

1. Verwenden Sie den folgenden Befehl, um ein bestimmtes Dokument abzurufen.

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

   ```
   aws ssm get-document \
       --name document name
   ```

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

   ```
   aws ssm get-document ^
       --name document name
   ```

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

   ```
   Get-SSMDocument `
       –Name document name
   ```

------

1. Verwenden Sie den folgenden Befehl, um eine Beschreibung des Dokuments abzurufen.

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

   ```
   aws ssm describe-document \
       --name document name
   ```

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

   ```
   aws ssm describe-document ^
       --name document name
   ```

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

   ```
   Get-SSMDocumentDescription `
       –Name document name
   ```

------

1. Verwenden Sie den folgenden Befehl, um die Zugriffsberechtigungen für das Dokument anzuzeigen.

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

   ```
   aws ssm describe-document-permission \
       --name document name \
       --permission-type Share
   ```

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

   ```
   aws ssm describe-document-permission ^
       --name document name ^
       --permission-type Share
   ```

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

   ```
   Get-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share
   ```

------

1. Verwenden Sie den folgenden Befehl, um die Zugriffsberechtigungen für das Dokument zu ändern und das Dokument freizugeben. Sie müssen der Eigentümer des Dokuments sein, um die Berechtigungen bearbeiten zu können. Optional können Sie für Dokumente, die mit bestimmten AWS-Konto IDs Personen geteilt wurden, mithilfe des `--shared-document-version` Parameters eine Version des Dokuments angeben, die Sie teilen möchten. Wenn Sie keine Version angeben, gibt das System die `Default`-Version des Dokuments frei. Wenn Sie ein Dokument öffentlich (mit `all`) teilen, werden standardmäßig alle Versionen des angegebenen Dokuments geteilt. Mit dem folgenden Beispielbefehl wird das Dokument privat für eine bestimmte Person freigegeben, basierend auf der AWS-Konto ID dieser Person.

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

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add AWS-Konto ID
   ```

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

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add AWS-Konto ID
   ```

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

   ```
   Edit-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share `
       -AccountIdsToAdd AWS-Konto ID
   ```

------

1. Verwenden Sie den folgenden Befehl, um ein Dokument öffentlich freizugeben.
**Anmerkung**  
Wenn Sie ein Dokument öffentlich (mit `all`) teilen, werden standardmäßig alle Versionen des angegebenen Dokuments geteilt. 

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

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add 'all'
   ```

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

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add "all"
   ```

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

   ```
   Edit-SSMDocumentPermission `
       -Name document name `
       -PermissionType Share `
       -AccountIdsToAdd ('all')
   ```

------

## Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument
<a name="modify-permissions-shared"></a>

Wenn Sie einen Befehl teilen, können Benutzer diesen Befehl anzeigen und verwenden, bis Sie entweder den Zugriff auf das AWS Systems Manager (SSM-) Dokument aufheben oder das SSM-Dokument löschen. Sie können ein Dokument jedoch erst löschen, wenn es nicht mehr freigegeben ist. Sie müssen also zuerst die Freigabe beenden und können erst anschließend die Datei löschen.

### Beenden der Freigabe eines Dokuments (Konsole)
<a name="unshare-using-console"></a>

**Beenden der Freigabe eines Dokuments**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie in der Dokumentenliste das Dokument aus, dessen Freigabe Sie beenden möchten, und klicken Sie dann auf **Details anzeigen**. Überprüfen Sie dann auf der Registerkarte **Berechtigungen**, ob Sie der Besitzer des Dokuments sind. Nur der Eigentümer eines Dokuments kann die Freigabe eines Dokuments beenden.

1. Wählen Sie **Bearbeiten** aus.

1. Wählen Sie **X**, um die AWS-Konto ID zu löschen, die keinen Zugriff mehr auf den Befehl haben sollte, und wählen Sie dann **Speichern**. 

### Beenden der Freigabe eines Dokuments (Befehlszeile)
<a name="unshare-using-cli"></a>

Öffnen Sie AWS CLI oder AWS Tools for Windows PowerShell auf Ihrem lokalen Computer und führen Sie den folgenden Befehl aus, um die gemeinsame Nutzung eines Befehls zu beenden.

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

```
aws ssm modify-document-permission \
    --name document name \
    --permission-type Share \
    --account-ids-to-remove 'AWS-Konto ID'
```

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

```
aws ssm modify-document-permission ^
    --name document name ^
    --permission-type Share ^
    --account-ids-to-remove "AWS-Konto ID"
```

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

```
Edit-SSMDocumentPermission `
    -Name document name `
    -PermissionType Share `
    –AccountIdsToRemove AWS-Konto ID
```

------

## Verwenden von freigegebenen SSM-Dokumenten
<a name="using-shared-documents"></a>

Wenn Sie ein AWS Systems Manager (SSM) -Dokument teilen, generiert das System einen Amazon-Ressourcennamen (ARN) und weist ihn dem Befehl zu. Wenn Sie ein freigegebenes Dokument über die Systems-Manager-Konsole auswählen und ausführen, wird der ARN nicht angezeigt. Wenn Sie jedoch ein freigegebenes SSM-Dokument mit einer anderen Methode als der Systems-Manager-Konsole ausführen möchten, müssen Sie den vollständigen ARN des Dokuments für den `DocumentName`-Anforderungsparameter angeben. Wenn Sie den Befehl zum Auflisten der Dokumente ausführen, wird jeweils der vollständige ARN für SSM-Dokumente angezeigt. 

**Anmerkung**  
Sie müssen nicht angeben, ob es sich ARNs um AWS öffentliche Dokumente (Dokumente, die mit 1 beginnen`AWS-*`) oder um Dokumente handelt, deren Eigentümer Sie sind.

### Verwenden eines freigegebenen SSM-Dokuments (Befehlszeile)
<a name="using-shared-documents-cli"></a>

 **So listen Sie öffentliche SSM-Dokumente auf** 

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

```
aws ssm list-documents \
    --filters Key=Owner,Values=Public
```

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

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Public
```

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

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Public"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **So listen Sie private SSM-Dokumente auf, die für Sie freigegeben wurden** 

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

```
aws ssm list-documents \
    --filters Key=Owner,Values=Private
```

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

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Private
```

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

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Private"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **So listen Sie alle SSM-Dokumente auf, die für Sie verfügbar sind** 

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

```
aws ssm list-documents
```

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

```
aws ssm list-documents
```

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

```
Get-SSMDocumentList
```

------

 **So rufen Sie Informationen zu einem SSM-Dokument ab, das für Sie freigegeben wurde** 

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

```
aws ssm describe-document \
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

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

```
aws ssm describe-document ^
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

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

```
Get-SSMDocumentDescription `
    –Name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------

 **So führen Sie ein freigegebenes SSM-Dokument aus** 

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

```
aws ssm send-command \
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName \
    --instance-ids ID
```

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

```
aws ssm send-command ^
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName ^
    --instance-ids ID
```

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

```
Send-SSMCommand `
    –DocumentName arn:aws:ssm:us-east-2:12345678912:document/documentName `
    –InstanceIds ID
```

------

# Suchen nach SSM-Dokumenten
<a name="ssm-documents-searching"></a>

Sie können den AWS Systems Manager (SSM-) Dokumentenspeicher nach SSM-Dokumenten durchsuchen, indem Sie entweder die Freitextsuche oder eine filterbasierte Suche verwenden. Sie können auch Dokumente als Favoriten markieren, um häufig verwendete SSM-Dokumente zu finden. In den folgenden Abschnitten wird beschrieben, wie Sie diese Funktionen nutzen können.

## Verwenden der Freitextsuche
<a name="ssm-documents-searching-free-text"></a>

Das Suchfeld auf der Seite Systems Manager-**Dokumente** unterstützt die Freitextsuche. Die Freitextsuche vergleicht den bzw. die eingegebenen Suchbegriffe mit dem Dokumentnamen in jedem SSM-Dokument. Wenn Sie einen einzelnen Suchbegriff eingeben, z. B. **ansible**, gibt Systems Manager alle SSM-Dokumente zurück, in denen dieser Begriff erkannt wurde. Wenn Sie mehrere Suchbegriffe eingeben, sucht Systems Manager mithilfe einer `OR`-Anweisung. Wenn Sie z. B. **ansible** und **linux** angeben, gibt die Suche alle Dokumente zurück, die *eines* der beiden Schlüsselwörter im Namen tragen.

Wenn Sie einen Freitext-Suchbegriff eingeben und eine Suchoption wählen, z. B. **Plattformtyp**, dann verwendet die Suche eine `AND`-Anweisung und gibt alle Dokumente zurück, die das Schlüsselwort im Namen und den angegebenen Plattformtyp enthalten.

**Anmerkung**  
Beachten Sie die folgenden Details zur Freitextsuche.  
Bei der Freitextsuche wird *nicht* zwischen Groß- und Kleinschreibung unterschieden.
Die Suchbegriffe müssen mindestens drei und dürfen höchstens 20 Zeichen lang sein.
Die Freitextsuche akzeptiert bis zu fünf Suchbegriffe.
Wenn Sie ein Leerzeichen zwischen den Suchbegriffen eingeben, schließt das System das Leerzeichen bei der Suche ein.
Sie können die Freitextsuche mit anderen Suchoptionen wie **Dokumenttyp** oder **Plattformtyp** kombinieren.
Der Filter **Dokumentname-Präfix** und die Freitextsuche können nicht zusammen verwendet werden, da sie sich gegenseitig ausschließen.

**Suchen nach SSM-Dokumenten**

1. Öffnen Sie die Konsole unter AWS Systems Manager . [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Geben Sie Ihre Suchbegriffe in das Suchfeld ein und drücken Sie die Eingabetaste.

### Durchführen einer Freitextdokumentsuche mit dem AWS CLI
<a name="ssm-documents-searching-free-text-cli"></a>

**Durchführen der Freitextdokumentsuche mithilfe der CLI**

1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Führen Sie den folgenden Befehl aus, um eine Freitextdokumentsuche mit einem einzelnen Begriff durchzuführen. Ersetzen Sie diesen Befehl *search\$1term* durch Ihre eigenen Informationen.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term"
   ```

   Ein Beispiel:

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg" --region us-east-2
   ```

   Um mit mehreren Begriffen zu suchen, die eine `AND`-Anweisung erstellen, führen Sie den folgenden Befehl aus. Ersetzen Sie in diesem Befehl *search\$1term\$11* und *search\$1term\$12* durch Ihre eigenen Informationen.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term_1","search_term_2","search_term_3" --region us-east-2
   ```

   Ein Beispiel:

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg","aws-ec2","restart" --region us-east-2
   ```

## Verwenden von Filtern
<a name="ssm-documents-searching-filters"></a>

Der Systems Manager–Seite **Dokumente** zeigt automatisch die folgenden Filter an, wenn Sie das Suchfeld auswählen. 
+ Dokumentnamenpräfix
+ Plattformentypen
+ Dokumenttyp
+ Tag-Schlüssel

![\[Filteroptionen auf der Seite SSM-Dokumente.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/ssm-documents-filters-1.png)


Sie können mit einem einzigen Filter nach SSM-Dokumenten suchen. Wenn Sie einen spezifischeren Satz von SSM-Dokumenten zurückgeben möchten, können Sie mehrere Filter anwenden. Hier ein Beispiel für eine Suche, bei der die Filter **Plattformtypen** und **Dokumentnamenpräfix** verwendet werden.

![\[Anwenden mehrerer Filteroptionen auf der Seite SSM-Dokumente\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/ssm-documents-filters-2.png)


Wenn Sie mehrere Filter anwenden, erstellt Systems Manager verschiedene Suchanweisungen basierend auf den ausgewählten Filtern: 
+ Wenn Sie *denselben* Filter mehrfach anwenden, z. B. das Präfix für den **Dokumentennamenpräfix**, sucht Systems Manager mit Hilfe einer `OR`-Anweisung. Wenn Sie z. B. einen Filter **Dokumentname Präfix**=**AWS** und einen zweiten Filter **Dokumentnamenpräfix**=**Lambda** angeben, liefert die Suche alle Dokumente mit dem Präfix „`AWS`“ und alle Dokumente mit dem Präfix „`Lambda`“.
+ Wenn Sie *verschiedene* Filter anwenden, z. B. **Document name prefix** (Präfix Dokumentname) und **Platform types** (Plattformtypen), sucht Systems Manager mithilfe einer `AND`-Anweisung. Wenn Sie z. B. den Filter **Document name prefix** (Präfix Dokumentname) = **AWS** und den Filter **Platform types** (Plattformtypen) = **Linux** angeben, gibt die Suche alle Dokumente mit dem Präfix „`AWS`“ zurück, die spezifisch für die Linux-Plattform sind.

**Anmerkung**  
Dabei wird Groß- und Kleinschreibung beachtet. 

## Hinzufügen von Dokumenten zu Ihren Favoriten
<a name="favorite-documents"></a>

Fügen Sie Dokumente zu Ihren Favoriten hinzu, um häufig verwendete SSM-Dokumente leichter zu finden. Sie können bis zu 20 Dokumente pro Dokumenttyp, pro AWS-Konto und als Favorit markieren AWS-Region. Sie können Ihre Favoriten in der Dokumenten- AWS-Managementkonsole auswählen, ändern und anzeigen. Die folgenden Verfahren beschreiben, wie Sie Ihre Favoriten auswählen, ändern und anzeigen.

**So markieren Sie ein SSM-Dokument als Favorit**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie das Sternsymbol neben dem Namen des Dokuments aus, das Sie als Favorit markieren möchten.

**So entfernen Sie ein SSM-Dokument aus Ihren Favoriten**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie das Sternsymbol neben dem Namen des Dokuments ab, das Sie nicht mehr als Favorit markieren möchten.

**Um Ihre Favoriten aus den Dokumenten anzuzeigen AWS-Managementkonsole**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie die Registerkarte **Favoriten** aus.

# Beheben von Fehlern mit der Parameterverarbeitung
<a name="parameter-troubleshooting"></a>

## Häufige Probleme bei der Parameterverarbeitung
<a name="common-parameter-issues"></a>

**Umgebungsvariablen sind während der Ausführung nicht verfügbar**  
**Problem:** Befehle schlagen fehl, weil Umgebungsvariablen (`SSM_parameter-name`) nicht gefunden werden.  
**Mögliche Ursachen:**  
+ Die Version von SSM Agent unterstützt keine Interpolation von Umgebungsvariablen.
+ `interpolationType` ist nicht auf `ENV_VAR` gesetzt.
+ Der Parametername stimmt nicht mit dem erwarteten Namen der Umgebungsvariablen überein.
**Lösung:**  
+ Stellen Sie sicher, dass die SSM Agent-Version 3.3.2746.0 oder höher ist.
+ Fügen Sie eine Fallback-Logik für ältere Agentenversionen hinzu:

  ```
  if [ -z "${SSM_parameterName+x}" ]; then
      export SSM_parameterName="{{parameterName}}"
  fi
  ```

**Parameterwerte mit Sonderzeichen**  
**Problem:** Befehle schlagen fehl, wenn Parameterwerte Leerzeichen, Anführungszeichen oder andere Sonderzeichen enthalten.  
**Lösung:**  
+ Verwenden Sie korrekte Anführungszeichen, wenn Sie auf Umgebungsvariablen verweisen:

  ```
  # Correct
  echo "$SSM_parameter-name"
  
  # Incorrect
  echo $SSM_parameter-name
  ```
+ Fügen Sie mit `allowedPattern` eine Eingabevalidierung hinzu, um Sonderzeichen einzuschränken.

**Inkonsistentes Verhalten auf verschiedenen Plattformen**  
**Problem:** Die Parameterverarbeitung funktioniert in Linux- und Windows Server-Systemen unterschiedlich.  
**Lösung:**  
+ Verwenden Sie die plattformspezifische Syntax für Umgebungsvariablen:

  ```
  # PowerShell
  $env:SSM_parameter-name
  
  # Bash
  $SSM_parameter-name
  ```
+ Verwenden Sie plattformspezifische Vorbedingungsprüfungen in Ihrem Dokument.

**Parameterwerte wurden nicht korrekt maskiert**  
**Problem:** Mangelnder Schutz vor Befehlseinschleusung trotz Interpolation von Umgebungsvariablen.  
**Lösung:**  
+ Achten Sie immer auf die ordnungsgemäße Maskierung, wenn Sie Parameterwerte in Befehle aufnehmen:

  ```
  # Correct
  mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\""
  
  # Incorrect
  mysql_command="mysql -u $SSM_username -p$SSM_password"
  ```

## Tipps für die Parametervalidierung
<a name="parameter-validation"></a>

Nutzen Sie diese Methoden, um Ihre Parameterverarbeitung zu validieren:

1. Verfügbarkeit von Umgebungsvariablen testen:

   ```
   #!/bin/bash
   # Print all SSM_ environment variables
   env | grep ^SSM_
   
   # Test specific parameter
   if [ -n "$SSM_parameter" ]; then
       echo "Parameter is available"
   else
       echo "Parameter is not available"
   fi
   ```

1. Parametermuster überprüfen:

   ```
   parameters:
     myParameter:
       type: String
       allowedPattern: "^[a-zA-Z0-9_-]+$"
       description: "Test this pattern with sample inputs"
   ```

1. Fehlerbehandlung einbeziehen:

   ```
   if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then
       echo "Parameter validation failed"
       exit 1
   fi
   ```