

• O AWS Systems Manager CloudWatch Dashboard não estará mais disponível a partir de 30 de abril de 2026. Os clientes podem continuar usando o console do Amazon CloudWatch para visualizar, criar e gerenciar os painéis do Amazon CloudWatch exatamente como fazem hoje. Para obter mais informações, consulte a [documentação do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Documentos do AWS Systems Manager
<a name="documents"></a>

Um documento do AWS Systems Manager (documento SSM) define as ações que o Systems Manager realiza nas suas instâncias gerenciadas. O Systems Manager inclui mais de 100 documentos pré-configurados, que você pode usar especificando parâmetros no runtime. Documentos pré-configurados podem ser encontrados no console de documentos do Systems Manager escolhendo a guia **Owned by Amazon** (Propriedade da Amazon) ou especificando a Amazon para o filtro `Owner` ao chamar a operação da API `ListDocuments`. Os documentos usam JSON (JavaScript Object Notation) ou YAML e incluem etapas e parâmetros especificados por você. 

Para maior segurança, desde 14 de julho de 2025, os documentos do SSM são compatíveis com a interpolação de variáveis de ambiente ao processar parâmetros. Esse recurso, disponível na versão 2.2 do esquema e com a versão 3.3.2746.0 ou superior do SSM Agent, ajuda a evitar ataques de injeção de comando.

Para começar a usar o , abra o [Systems Manager console (Console do gerenciador de sistemas).](https://console.aws.amazon.com/systems-manager/documents) No painel de navegação, escolha **Documents**.

**Importante**  
No Systems Manager, um documento SSM *pertencente à Amazon* é um documento criado e gerenciado pela própria Amazon Web Services. Os documentos *pertencentes à Amazon* incluem um prefixo como `AWS-*` no nome do documento. O proprietário do documento é considerado a Amazon, e não uma conta de usuário específica em AWS. Esses documentos estão disponíveis publicamente para uso de todos.

## Como a ferramenta Documentos pode beneficiar minha organização?
<a name="ssm-docs-benefits"></a>

O Documentos, uma ferramenta do AWS Systems Manager, oferece os seguintes benefícios:
+ **Categorias de documentos**

  Para ajudar a encontrar os documentos necessários, escolha uma categoria dependendo do tipo de documento que você está procurando. Para ampliar sua pesquisa, você pode escolher várias categorias do mesmo tipo de documento. Não há suporte para a escolha de categorias de diferentes tipos de documentos. As categorias só são compatíveis com documentos de propriedade da Amazon.
+  **Versões de documentos** 

  Você pode criar e salvar diferentes versões de documentos. Em seguida, pode especificar uma versão padrão para cada documento. A versão padrão de um documento pode ser atualizada para uma versão mais recente ou revertida para uma mais antiga. Quando você altera o conteúdo de um documento, o Systems Manager incrementa automaticamente a versão do documento. Você pode recuperar ou usar qualquer versão de um documento especificando a versão do documento no console, comandos da AWS Command Line Interface (AWS CLI) ou chamadas de API.
+  **Personalize documentos para suas necessidades** 

  Se quiser personalizar as etapas e ações em um documento, você pode criar seu próprio. O sistema armazena o documento com sua Conta da AWS na Região da AWS em que você o cria. Para obter mais informações sobre como criar um documento do SSM, consulte [Criar conteúdo de documento do SSM](documents-creating-content.md).
+  **Tags de documentos** 

  Você pode atribuir uma tag aos seus documentos para ajudar a identificar rapidamente um ou mais documentos de acordo com as tags que tiver atribuído a eles. Por exemplo, você pode marcar documentos para ambientes, departamentos, usuários, grupos ou períodos específicos. Você pode também restringir o acesso aos documentos criando uma política do AWS Identity and Access Management (IAM) que especifique as tags que um usuário ou grupo pode acessar. 
+  **Compartilhar documentos** 

  Você pode tornar seus documentos públicos ou compartilhá-los com contas da Contas da AWS específicas na mesma Região da AWS. Compartilhar documentos entre contas pode ser útil se, por exemplo, você desejar que todas as instâncias do Amazon Elastic Compute Cloud (Amazon EC2) fornecidas aos seus clientes ou funcionários tenham a mesma configuração. Além de manter atualizadas as aplicações ou patches nessas instâncias, talvez você queira restringir algumas atividades nas instâncias dos clientes. Ou talvez você queira garantir que as instâncias usadas por contas de funcionário na organização recebam acesso a recursos internos específicos. Para obter mais informações, consulte [Compartilhar documentos do Systems Manager](documents-ssm-sharing.md).

## Quem deve usar documentos?
<a name="documents-who"></a>
+ Qualquer cliente da AWS que deseje usar as ferramentas do Systems Manager para melhorar sua eficiência operacional em escala, reduzir erros associados à intervenção manual e reduzir o tempo de resolução de problemas comuns.
+ Especialistas em infraestrutura que desejem automatizar tarefas de implantação e configuração.
+ Administradores que desejem resolver problemas comuns de forma confiável, melhorar a eficiência da solução de problemas e reduzir operações repetitivas.
+ Usuários que desejarem automatizar uma tarefa que normalmente executam manualmente.

## Quais são os tipos de documentos de SSM?
<a name="what-are-document-types"></a>

A tabela a seguir descreve os diferentes tipos de documentos do SSM e seus usos.


****  

| Tipo | Use com | Detalhes | 
| --- | --- | --- | 
|  ApplicationConfiguration ApplicationConfigurationSchema  |   [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html)   |  O AWS AppConfig, uma ferramenta do AWS Systems Manager, permite criar, gerenciar e implantar rapidamente configurações de aplicações. Você pode armazenar dados de configuração em um documento SSM criando um documento que usa o tipo de documento `ApplicationConfiguration`. Para obter mais informações, consulte [Configurações de forma livre](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html#free-form-configurations) no *Guia do usuário do AWS AppConfig*. Se você criar uma configuração em um documento do SSM, deverá especificar um esquema JSON correspondente. O esquema usa o tipo de documento `ApplicationConfigurationSchema` e, como um conjunto de regras, define as propriedades permitidas para cada definição de configuração de aplicação. Para obter mais informações, consulte [About validators (Sobre validadores)](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-validators.html) no *AWS AppConfig User Guide. (Guia do usuário do *).  | 
|  Runbook de automação  |   [Automação](systems-manager-automation.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  Use runbooks do Automation ao realizar tarefas comuns de manutenção e implantação, como criar ou atualizar uma Amazon Machine Image (AMI). O State Manager usa runbooks do Automation para aplicar uma configuração. Essas ações podem ser executadas em um ou mais destinos em qualquer ponto durante o ciclo de vida de uma instância. O Maintenance Windows usa ao realizar tarefas comuns de manutenção e implantação com base na programação especificada. Todos os runbooks de automação compatíveis com sistemas operacionais baseados em Linux também são compatíveis com as instâncias do EC2 para macOS.  | 
|  Alterar documento do calendário  |   [Change Calendar](systems-manager-change-calendar.md)   |  O Change Calendar, uma ferramenta do AWS Systems Manager, usa o tipo de documento `ChangeCalendar`. Um documento do Change Calendar armazena uma entrada de calendário e eventos associados que podem permitir ou impedir que as ações de automação alterem seu ambiente. No Change Calendar, um documento armazena dados do [iCalendar 2.0](https://icalendar.org/) em formato de texto simples. Change Calendar O não tem suporte em instâncias EC2 para macOS.  | 
|  Modelo do AWS CloudFormation  |   [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)   |  AWS CloudFormationOs modelos do descrevem os recursos que você deseja provisionar nas suas pilhas do CloudFormation. Com o armazenamento de modelos do CloudFormation como documentos do Systems Manager, você pode se beneficiar dos recursos de documento do Systems Manager Isso inclui criar e comparar várias versões do seu modelo e compartilhar seu modelo com outras contas na mesma Região da AWS. Você pode criar e editar modelos e pilhas do CloudFormation usando o Application Manager, uma ferramenta do Systems Manager. Para obter mais informações, consulte [Trabalhar com modelos e pilhas do CloudFormation no Application Manager.](application-manager-working-stacks.md).  | 
|  Documento de comando  |   [Run Command](run-command.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  O Run Command, uma ferramenta do AWS Systems Manager, usa documentos do Command para executar comandos. O State Manager, uma ferramenta do AWS Systems Manager usa documentos de comando para aplicar uma configuração. Essas ações podem ser executadas em um ou mais destinos em qualquer ponto durante o ciclo de vida de uma instância. O Maintenance Windows, uma ferramenta do AWS Systems Manager, usa documentos de comando para aplicar uma configuração de acordo com a programação especificada. A maioria dos documentos de comando é aceita em todos os sistemas operacionais Linux e Windows Server aos quais o Systems Manager oferece suporte. Os seguintes documentos de comandos são aceitos em instâncias do EC2 para macOS: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/documents.html)  | 
|  Modelo de pacote de conformidade do AWS Config  |   [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)   |  Os modelos de pacote de conformidade do AWS Config são documentos formatados em YAML usados para criar pacotes de conformidade que contêm a lista de regras gerenciadas ou personalizadas e ações de remediação do AWS Config. Para obter mais informações, consulte [Pacotes de conformidade](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html).  | 
|  Documento de pacote  |   [Distributor](distributor.md)   |  No Distributor, uma ferramenta do AWS Systems Manager, um pacote é representado por um documento do SSM. Um documento de pacote inclui arquivos ZIP anexados que contêm software ou ativos para instalar nas instâncias gerenciadas. Criar um pacote no Distributor cria o documento de pacote. O Distributor não tem suporte em instâncias gerenciadas no Oracle Linux e macOS  | 
|  Documento de política  |   [State Manager](systems-manager-state.md)   |  O Inventory, uma ferramenta do AWS Systems Manager, usa o documento de política `AWS-GatherSoftwareInventory` com uma associação ao State Manager para coletar dados de inventário de instâncias gerenciadas. Ao criar seus próprios documentos do SSM, os runbooks do Automation e os documentos de comando são o método preferido para aplicar uma política em uma instância gerenciada. O Systems Manager Inventory e o documento de políticas `AWS-GatherSoftwareInventory` são compatíveis com todos os sistemas operacionais suportados pelo Systems Manager.  | 
|  Modelo de análise pós-incidente  |   [Análise pós-incidente do Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/analysis.html)   |  O Incident Manager usa o modelo de análise pós-incidente para criar uma análise baseada nas práticas recomendadas para o gerenciamento de operações da AWS. Use o modelo para criar uma análise que sua equipe possa usar para identificar melhorias na sua resposta a incidentes.   | 
|  Documento de sessão  |   [Session Manager](session-manager.md)   |  O Session Manager, uma ferramenta do AWS Systems Manager, usa documentos de sessão para determinar qual tipo de sessão iniciar, como uma sessão de encaminhamento de portas, uma sessão para executar um comando interativo ou uma sessão para criar um túnel SSH. Documentos de sessão são aceitos em todos os sistemas operacionais Linux e Windows Server aos quais o Systems Manager oferece suporte. Os seguintes documentos Command são suportados em instâncias do EC2 para macOS: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/documents.html)  | 

**Cotas de documentos do SSM**  
Para obter mais informações sobre cotas de documentos do SSM, consulte [Systems Manager service quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) no *Referência geral da Amazon Web Services*.

**Topics**
+ [Como a ferramenta Documentos pode beneficiar minha organização?](#ssm-docs-benefits)
+ [Quem deve usar documentos?](#documents-who)
+ [Quais são os tipos de documentos de SSM?](#what-are-document-types)
+ [Componentes do documento](documents-components.md)
+ [Criar conteúdo de documento do SSM](documents-creating-content.md)
+ [Trabalhar com documentos](documents-using.md)
+ [Solução de problemas de tratamento de parâmetros](parameter-troubleshooting.md)

# Componentes do documento
<a name="documents-components"></a>

Esta seção contém informações sobre os componentes presentes nos documentos do SSM.

**Topics**
+ [Esquemas, atributos e exemplos](documents-schemas-features.md)
+ [Elementos e parâmetros de dados](documents-syntax-data-elements-parameters.md)
+ [Referência de plug-ins de documentos de comando](documents-command-ssm-plugin-reference.md)

# Esquemas, atributos e exemplos
<a name="documents-schemas-features"></a>

AWS Systems ManagerOs documentos do (SSM) usam as versões de esquema a seguir.
+ Os documentos do tipo `Command` podem usar o esquema versão 1.2, 2.0 e 2.2. Se você usa documentos do esquema 1.2, recomendamos criar documentos que utilizem o esquema versão 2.2.
+ Os documentos do tipo `Policy` devem usar o esquema versão 2.0 ou posterior.
+ Os documentos do tipo `Automation` devem usar o esquema versão 0.3.
+ Os documentos do tipo `Session` devem usar o esquema versão 1.0.
+ Você pode criar documentos em JSON ou YAML.

Para obter mais informações sobre o esquema de documentos do `Session`, consulte [Esquema do documento de sessão](session-manager-schema.md).

Ao usar a versão de esquema mais recentes para documentos `Command` e `Policy`, você poderá aproveitar os seguintes recursos.


**Recursos de documentos da versão 2.2 do esquema**  

| Recurso | Detalhes | 
| --- | --- | 
|  Edição de documentos  |  Agora, documentos podem ser atualizados. Com a versão 1.2, qualquer atualização de um documento exigia que você o salvasse com um nome diferente.  | 
|  Versionamento automático  |  Qualquer atualização de um documento cria uma nova versão. Esta não é uma versão de esquema, mas uma versão do documento.  | 
|  Versão padrão  |  Se você possui várias versões de um documento, pode especificar qual delas é o documento padrão.  | 
|  Sequenciamento  |  Os plugins ou as *etapas* em um documento são executados na ordem que você especificou.  | 
|  Suporte entre plataformas  |  O suporte entre plataformas permite que você especifique diferentes sistemas operacionais para diferentes plugins dentro do mesmo documento do SSM. O suporte entre plataformas usa o parâmetro `precondition` dentro de uma etapa.   | 
| Interpolação de parâmetros | Interpolação significa inserir ou substituir um valor variável em uma string. Pense nisso como preencher um espaço em branco com valores reais antes que a string seja usada. No contexto de documentos do SSM, a interpolação de parâmetros permite que parâmetros de string sejam interpolados em variáveis de ambiente antes da execução do comando, fornecendo melhor segurança contra injeções de comando. Quando definido como `ENV_VAR`, o agente cria uma variável de ambiente denominada `SSM_parameter-name` que contém o valor do parâmetro. | 

**nota**  
Você deve manter o AWS Systems Manager SSM Agent atualizado em suas instâncias com a versão mais recente para usar os novos recursos do Systems Manager e os recursos de documento do SSM. Para obter mais informações, consulte [Atualização do SSM Agent por meio de Run Command](run-command-tutorial-update-software.md#rc-console-agentexample).

A tabela a seguir lista as diferenças entre as principais versões de esquema.


****  

| Versão 1.2 | Versão 2.2 (versão mais recente) | Detalhes | 
| --- | --- | --- | 
|  runtimeConfig  |  mainSteps  |  Na versão 2.2, a seção `mainSteps` substitui `runtimeConfig`. O`mainSteps`A seção permite que o Systems Manager execute etapas em sequência.  | 
|  propriedades  |  inputs  |  Na versão 2.2, a seção `inputs` substitui a seção `properties`. A seção `inputs` aceita parâmetros para as etapas.  | 
|  comandos  |  runCommand  |  Na versão 2.2, a seção `inputs` usa o parâmetro `runCommand` em vez do parâmetro `commands`.  | 
|  id  |  ação  |  Na versão 2.2, `Action` substitui `ID`. Esta é apenas uma mudança de nome.  | 
|  não aplicável  |  name  |  Na versão 2.2, `name` é um nome definido pelo usuário para uma etapa.  | 

**Usar o parâmetro precondition**  
Com o esquema versão 2.2 ou superior, você pode usar o parâmetro `precondition` para especificar o sistema operacional de destino de cada plugin ou para validar parâmetros de entrada que você definiu em seu documento do SSM. O`precondition`suporta referenciar os parâmetros de entrada do documento SSM, e`platformType`usando valores de`Linux`,`MacOS`, e`Windows`. Somente a`StringEquals`é suportado.

Para documentos que utilizam o esquema versão 2.2 ou posterior, se a `precondition` não for especificada, cada plugin será executado ou ignorado com base na compatibilidade do plugin com o sistema operacional. Compatibilidade de plugins com o sistema operacional é avaliada antes do `precondition`. Para documentos que utilizam o esquema 2.0 ou anterior, os plugins incompatíveis geram um erro.

Por exemplo, em um documento com a versão 2.2 do esquema, se `precondition` não for especificado e o plugin `aws:runShellScript` estiver relacionado, a etapa será executada em instâncias do Linux, mas será ignorada pelo sistema em instâncias do Windows Server porque o `aws:runShellScript` não é compatível com instâncias do Windows Server. No entanto, para um documento de esquema versão 2.0, se você especificar o plugin `aws:runShellScript` e depois executar o documento em instâncias do Windows Server, a execução falhará. Você poderá ver um exemplo do parâmetro de pré-condição em um documento do SSM ainda nesta seção.

## Versão 2.2 do esquema
<a name="documents-schema-twox"></a>

**Elementos de nível superior**  
O exemplo a seguir mostra os elementos de nível superior de um documento do SSM usando o esquema versão 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 }}"
         }
      }
   ]
}
```

------

**Exemplo de esquema versão 2.2**  
Veja como o exemplo a seguir usa o plugin `aws:runPowerShellScript` para executar um comando do PowerShell nas instâncias de destino.

------
#### [ 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}}"
            ]
         }
      }
   ]
}
```

------

**Exemplos do parâmetro precondition da versão 2.2 do esquema**  
O esquema versão 2.2 fornece suporte para várias plataformas. Isso significa que, dentro de um único documento do SSM, você pode especificar diferentes sistemas operacionais para diferentes plugins. O suporte entre plataformas usa o parâmetro `precondition` dentro de uma etapa, como mostra o exemplo a seguir. Você também pode usar o`precondition`para validar os parâmetros de entrada definidos no documento do SSM. Veja isso no segundo exemplo a seguir.

------
#### [ 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"
            ]
         }
      }
   ]
}
```

------

**Exemplo de interpolação do esquema versão 2.2 com versões do SSM Agent anteriores à 3.3.2746.0**  
Nas versões do SSM Agent anteriores à 3.3.2746.0, o agente ignora o parâmetro `interpolationType` e, em vez disso, executa uma substituição de string bruta. Se estiver referenciando `SSM_parameter-name` de forma explícita, você deve definir explicitamente. No exemplo a seguir para Linux, a variável de ambiente `SSM_Message` é referenciada explicitamente.

```
{
    "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"
            ]
        }
    }
}
```

**nota**  
`allowedPattern` não será tecnicamente necessário se um documento do SSM não usar chaves duplas: `{{ }}`

**Exemplo de esquema versão 2.2 do State Manager**  
Você pode usar o seguinte documento do SSM com o State Manager, uma ferramenta do Systems Manager, para baixar e instalar o software antivírus ClamAV. O State Manager impõe uma configuração específica, o que significa que cada vez que a associação do State Manager for executada, o sistema verificará se o software ClamAV está instalado. Se não, o State Manager executa novamente esse documento.

------
#### [ 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"
            ]
         }
      }
   ]
}
```

------

**Exemplo de inventário do esquema versão 2.2**  
Você pode usar o documento SSM a seguir com o State Manager para coletar metadados de inventário sobre suas instâncias.

------
#### [ 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 }}"
         }
      }
   ]
}
```

------

**Exemplo de esquema versão 2.2 do `AWS-ConfigureAWSPackage`**  
O exemplo a seguir mostra o documento `AWS-ConfigureAWSPackage`. O`mainSteps`Inclui a seção`aws:configurePackage`plugin no`action`Etapa.

**nota**  
Nos sistemas operacionais Linux, somente os pacotes `AmazonCloudWatchAgent` e `AWSSupport-EC2Rescue` são suportados.

------
#### [ 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 }}"
         }
      }
   ]
}
```

------

## Versão 1.2 do esquema
<a name="documents-schema-onex"></a>

O exemplo a seguir mostra os elementos de nível superior de um documento do esquema versão 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"
            }
         ]
      }
   }
}
```

**Exemplo de esquema versão 1.2 do `aws:runShellScript`**  
O exemplo a seguir mostra o`AWS-RunShellScript`Documento do MUS do. A seção **runtimeConfig** inclui o plugin `aws:runShellScript`.

```
{
    "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 }}"
                }
            ]
        }
    }
}
```

## Versão 0.3 do esquema
<a name="automation-doc-syntax-examples"></a>

**Elementos de nível superior**  
O exemplo a seguir mostra os elementos de nível superior de um runbook do Automation versão 0.3 do esquema no formato JSON.

```
{
    "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
        }
    }
}
```

**Exemplo de runbook de automação YAML**  
O exemplo a seguir mostra o conteúdo de um runbook do Automation, no formato YAML. Este exemplo funcional da versão 0.3 do esquema do documento também demonstra o uso do Markdown para formatar descrições de documentos.

```
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
```

## Exemplos de tratamento seguro de parâmetros
<a name="secure-parameter-examples"></a>

Os exemplos a seguir demonstram o tratamento seguro de parâmetros usando a variável de ambiente `interpolationType`.

### Execução segura básica de comandos
<a name="basic-secure-command"></a>

Este exemplo mostra como tratar com segurança um parâmetro de comando:

**nota**  
`allowedPattern` não é tecnicamente exigido em documentos do SSM que não usam chaves duplas: `{{ }}` 

------
#### [ 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}}"
            ]
        }
    }]
}
```

------

### Uso de parâmetros em linguagens interpretadas
<a name="interpreted-language-example"></a>

Este exemplo demonstra o tratamento seguro de parâmetros em 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")
          '
```

------

### Exemplo de compatibilidade com versões anteriores
<a name="backwards-compatibility-example"></a>

Este exemplo mostra como tratar parâmetros de forma segura enquanto mantém a compatibilidade com versões anteriores:

------
#### [ 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"
```

------

**nota**  
`allowedPattern` não é tecnicamente exigido em documentos do SSM que não usam chaves duplas: `{{ }}` 

## Práticas recomendadas de segurança de parâmetros
<a name="parameter-security-best-practices"></a>

Siga estas práticas recomendadas ao tratar parâmetros em documentos do SSM:
+ **Use a interpolação de variáveis de ambiente**: sempre use `interpolationType: "ENV_VAR"` para parâmetros de string que serão usados na execução do comando.
+ **Implemente uma validação de entrada**: use `allowedPattern` para restringir os valores dos parâmetros a padrões seguros.
+ **Lide com sistemas legados**: inclua lógica de fallback para as versões anteriores do SSM Agent que não são compatíveis com a interpolação de variáveis de ambiente.
+ **Escape de caracteres especiais**: ao usar valores de parâmetros em comandos, escape adequadamente dos caracteres especiais para evitar a interpretação pelo shell.
+ **Limite o escopo do parâmetro**: use os padrões de parâmetros mais restritivos possíveis para seu caso de uso.

# Elementos e parâmetros de dados
<a name="documents-syntax-data-elements-parameters"></a>

Este tópico descreve os elementos de dados usados nos documentos do SSM. A versão do esquema usada para criar um documento define a sintaxe e os elementos de dados que o documento aceita. Recomendamos usar a versão 2.2 ou posterior do esquema para documentos do Command. Runbooks de automação usam o esquema versão 0.3. Além disso, runbooksde automação são compatíveis com o uso de Markdown, uma linguagem de marcação, que permite adicionar descrições de estilo wiki a documentos e etapas individuais dentro do documento. Para obter mais informações sobre o uso de Markdown, consulte [Usar o Markdown no console](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) no *Guia de conceitos básicos do Console de gerenciamento da AWS*.

A seção a seguir descreve os elementos de dados que você pode incluir em um documento SSM.

## Elementos de dados de nível superior
<a name="top-level"></a>

**schemaVersion**  
A versão do esquema a ser usada.  
Tipo: versão  
Obrigatório: Sim

**descrição**  
Informações que você fornece para descrever a finalidade do documento. Você também pode usar esse campo para especificar se um parâmetro requer um valor para que um documento seja executado ou se fornecer um valor para o parâmetro é opcional. Parâmetros obrigatórios e opcionais podem ser vistos nos exemplos neste tópico.  
Tipo: string  
Obrigatório: não

**parameters**  
Uma estrutura que define os parâmetros que o documento aceita.   
Para maior segurança ao tratar parâmetros de string, você pode usar a interpolação de variáveis de ambiente especificando a propriedade `interpolationType`. Quando definido como `ENV_VAR`, o sistema cria uma variável de ambiente denominada `SSM_parameter-name` contendo o valor do parâmetro.  
Veja a seguir um exemplo de um parâmetro usando a variável de ambiente `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` não é tecnicamente exigido em documentos do SSM que não usam chaves duplas: `{{ }}` 
Para os parâmetros usados com frequência, recomendamos armazená-los no Parameter Store, uma ferramenta do AWS Systems Manager. Em seguida, você pode definir parâmetros em seu documento que façam referência a parâmetros do Parameter Store como o valor padrão deles. Para fazer referência a um parâmetro do Parameter Store, use a sintaxe a seguir.   

```
{{ssm:parameter-name}}
```
Você pode usar um parâmetro que faça referência a um parâmetro do Parameter Store da mesma forma que faria com qualquer outro parâmetro de documento. No exemplo a seguir, o valor padrão para o parâmetro `commands` é o parâmetro `myShellCommands` do Parameter Store. Ao especificar o parâmetro `commands` como uma string `runCommand`, o documento executa os comandos armazenados no parâmetro `myShellCommands`.  

```
---
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 }}"
          ]
        }
      }
    ]
  }
```
Você pode fazer referência aos parâmetros `String` e `StringList` do Parameter Store na seção `parameters` do seu documento. Você não pode fazer referência a parâmetros `SecureString` do Parameter Store.
Para obter mais informações sobre o Parameter Store, consulte [AWS Systems Manager Parameter Store](systems-manager-parameter-store.md).  
Tipo: estrutura  
A estrutura `parameters` aceita os seguintes campos e valores:  
+ `type`: (obrigatório) os valores permitidos incluem os seguintes: `String`, `StringList`, `Integer`, `Boolean`, `MapList` e `StringMap`. Para ver exemplos de cada tipo, consulte [Exemplos de `type` de parâmetro de documentos SSM](#top-level-properties-type) na próxima seção.
**nota**  
Os documentos do tipo de comando oferecem suporte somente aos tipos de parâmetros `String` e `StringList`.
+ `description`: (opcional) uma descrição do parâmetro.
+ `default`: (opcional) o valor padrão do parâmetro ou uma referência a um parâmetro no Parameter Store.
+ `allowedValues`: (opcional) uma matriz de valores permitidos para o parâmetro. A definição de valores permitidos para o parâmetro valida a entrada do usuário. Se um usuário inserir um valor que não é permitido, a execução falhará ao iniciar.

------
#### [ 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`: (opcional) uma expressão regular que valida se a entrada do usuário corresponde ao padrão definido para o parâmetro. Se a entrada do usuário não corresponder ao padrão permitido, a execução não será iniciada.
**nota**  
O Systems Manager realiza duas validações para `allowedPattern`. A primeira validação é realizada usando a [biblioteca de regex Java](https://docs.oracle.com/javase/8/docs/api/java/util/regex/package-summary.html) no nível da API quando você usa um documento. A segunda validação é realizada no SSM Agent usando [a biblioteca de regex GO ](https://pkg.go.dev/regexp) antes de processar o documento. 

------
#### [ 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`: (opcional) usado para exibir um `textfield` ou uma `textarea` no Console de gerenciamento da AWS. `textfield` é uma caixa de texto de uma única linha. `textarea` é uma área de texto de várias linhas.
+ `minItems`: (opcional) o número mínimo de itens permitidos.
+ `maxItems`: (opcional) o número máximo de itens permitidos.
+ `minChars`: (opcional) o número mínimo de caracteres de parâmetro permitidos.
+ `maxChars`: (opcional) o número máximo de caracteres de parâmetro permitidos.
+ `interpolationType`: (opcional) define como os valores dos parâmetros são processados antes da execução do comando. Quando definido como `ENV_VAR`, o valor do parâmetro é disponibilizado como uma variável de ambiente denominada `SSM_parameter-name`. Esse recurso ajuda a evitar a injeção de comando tratando os valores dos parâmetros como strings literais.

  Tipo: string

  Valores válidos: `ENV_VAR`
Obrigatório: não

**variables**  
(Somente na versão 0.3 do esquema) Valores que podem ser referenciados ou atualizados em todas as etapas em um runbook de automação. As variáveis são semelhantes aos parâmetros, mas diferem de uma forma muito importante. Os valores dos parâmetros são estáticos no contexto de um runbook, mas os valores das variáveis podem ser alterados no contexto do runbook. Ao atualizar o valor de uma variável, o tipo de dados deve corresponder ao tipo de dados definido. Para informações sobre como atualizar valores de variáveis em uma automação, consulte [`aws:updateVariable`: atualiza um valor para uma variável do runbook](automation-action-update-variable.md)  
Tipo: Boolean \$1 Integer \$1 MapList \$1 String \$1 StringList \$1 StringMap  
Obrigatório: não  

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

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

**runtimeConfig**  
(Esquema somente para a versão 1.2) A configuração para a instância conforme aplicada por um ou mais plugins do Systems Manager. Não há garantia de execução dos plugins em sequência.   
Tipo: Dictionary<string,PluginConfiguration>  
Obrigatório: não

**mainSteps**  
(Somente para versões 0.3, 2.0 e 2.2 do esquema) um objeto que pode incluir várias etapas (plugins). Plugins são definidos dentro de etapas. As etapas são executadas na ordem sequencial listada no documento.   
Tipo: Dictionary<string,PluginConfiguration>  
Obrigatório: Sim

**outputs**  
(Somente versão 0.3 do esquema) dados gerados pela execução deste documento que podem ser usados em outros processos. Por exemplo, se o documento criar uma nova AMI, você poderá especificar "CreateImage.ImageId" como o valor de saída e usar essa saída para criar novas instâncias em uma execução de automação subsequente. Para obter mais informações sobre saídas, consulte [Uso de saídas de ações como entradas](automation-action-outputs-inputs.md).  
Tipo: Dictionary<string,OutputConfiguration>  
Obrigatório: não

**files**  
(Somente a versão 0.3 do esquema) os arquivos de script (e as respectivas somas de verificação) anexados ao documento e executados durante uma execução de automação. Aplica-se somente a documentos que incluem a ação `aws:executeScript` e para os quais anexos foram especificados em uma ou mais etapas.   
Para saber mais sobre os runtimes compatíveis com os runbooks do Automation, consulte [`aws:executeScript` – Executa um script](automation-action-executeScript.md). Para obter mais informações sobre como incluir scripts em runbooks do Automation, consulte [Uso de scripts em runbooks](automation-document-script-considerations.md) e [Experiência de design visual para runbooks de automação](automation-visual-designer.md).  
Ao criar um runbook de automação com anexos, é necessário especificar arquivos de anexo usando a opção `--attachments` (na AWS CLI) ou `Attachments` (na API e no SDK). É possível especificar o local do arquivo para documentos do SSM e arquivos armazenados nos buckets do Amazon Simple Storage Service (Amazon S3). Para obter mais informações, consulte [Anexos](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments) na referência da API da AWS Systems Manager.  

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

```
"files": {
    "launch.py": {
        "checksums": {
            "sha256": "18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE"
        }
    }
}
```
Tipo: Dictionary<string,FilesConfiguration>  
Obrigatório: não

## Exemplos de `type` de parâmetro de documentos SSM
<a name="top-level-properties-type"></a>

Os tipos de parâmetro em documentos SSM são estáticos. Isso significa que o tipo de parâmetro não pode ser alterado depois de definido. Ao usar parâmetros com plugins de documento do , o tipo de um parâmetro não pode ser alterado dinamicamente dentro da entrada de um plugin. Por exemplo, você não pode fazer referência a um parâmetro `Integer` dentro da entrada `runCommand` do plugin `aws:runShellScript` porque essa entrada aceita uma string ou lista de strings. Para usar um parâmetro para uma entrada de plugin, o tipo de parâmetro deve corresponder ao tipo aceito. Por exemplo, você deve especificar um parâmetro de tipo `Boolean` para a entrada `allowDowngrade` do plugin `aws:updateSsmAgent`. Se o tipo de parâmetro não corresponder ao tipo de entrada de um plugin, o documento do não será validado e o sistema não criará o documento. Isso também é verdadeiro ao usar parâmetros downstream dentro de entradas para outros plugins ou ações do AWS Systems Manager Automation. Por exemplo, não é possível fazer referência a um parâmetro `StringList` dentro da entrada `documentParameters` do plugin `aws:runDocument`. A entrada `documentParameters` aceita um mapa de strings mesmo que o tipo de parâmetro de documento do SSM downtream seja um parâmetro `StringList` e corresponda ao parâmetro que você está referenciando.

Ao usar parâmetros com ações do Automation do , os tipos de parâmetro não são validados quando você cria o documento SSM na maioria dos casos. Somente quando você usa a ação `aws:runCommand`, os tipos de parâmetro são validados ao criar o documento SSM. Em todos os outros casos, a validação do parâmetro ocorre durante a execução da automação quando a entrada de uma ação é verificada antes de executar a ação. Por exemplo, se o parâmetro de entrada for uma `String` e você fizer referência a ele como o valor da entrada `MaxInstanceCount` da ação `aws:runInstances`, o documento SSM será criado. No entanto, ao executar o documento, a automação falha ao validar a ação `aws:runInstances` porque a entrada `MaxInstanceCount` requer um `Integer`.

Veja a seguir exemplos de cada parâmetro `type`.

String  
Uma sequência de zero ou mais caracteres Unicode colocados entre aspas. Por exemplo, "i-1234567890abcdef0". Use barras invertidas como caractere de escape.  
Os parâmetros de string podem incluir um campo opcional `interpolationType` com o valor `ENV_VAR` para habilitar a interpolação de variáveis de ambiente para melhorar a segurança.  

```
---
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  
Uma lista de itens de strings separadas por vírgulas. Por exemplo, ["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"
}
```

Booleano  
Aceita somente `true` ou `false`. Não aceita "true" ou 0.  

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

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

Inteiro  
Números inteiros. Não aceita números decimais, como 3,14159, ou números colocados entre aspas, como "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  
Um mapeamento de chaves para valores. Chaves e valores devem ser strings. Por exemplo, \$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  
Uma lista de objetos StringMap.  

```
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
}
```

## Visualizar o conteúdo do documento do SSM Command
<a name="viewing-ssm-document-content"></a>

Para visualizar os parâmetros obrigatórios e opcionais para um documento de comando do AWS Systems Manager (SSM), além das ações executadas pelo documento, você pode visualizar o conteúdo do documento no console do Systems Manager.

**Para visualizar o conteúdo do documento do Comando SSM**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Na caixa de pesquisa, selecione **Tipo de documento** e, em seguida, **Comando**.

1. Selecione o nome de um documento existente e, em seguida, escolha a guia **Content** (Conteúdo). 

1. No campo de conteúdo, revise os parâmetros disponíveis e as etapas de ação para o documento.

   Por exemplo, a seguinte imagem mostra que (1) `version` e (2) `allowDowngrade` são parâmetros opcionais para o documento `AWS-UpdateSSMAgent` e que a primeira ação executada pelo documento é (3) `aws:updateSsmAgent`.  
![\[Visualizar o conteúdo do documento do SSM no console do Systems Manager\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/images/view-document-content.png)

# Referência de plug-ins de documentos de comando
<a name="documents-command-ssm-plugin-reference"></a>

Essa referência descreve os plugins que você pode especificar em um documento de comando do AWS Systems Manager (SSM). Esses plugins não podem ser usados em documentos de automação do SSM que usam ações de automação. Para obter informações sobre ações de automação do AWS Systems Manager, consulte [Referência de ações do Systems Manager Automation](automation-actions.md).

O Systems Manager determina as ações a serem executadas em uma instância gerenciada lendo o conteúdo de um documento do SSM. Todo documento contém uma seção de execução de código. Dependendo da versão do esquema do documento, essa seção de execução de código pode conter um ou mais plugins ou etapas. Para a finalidade deste tópico da Ajuda, plugins e etapas são chamados de *plugins*. Esta seção inclui informações sobre cada um dos plugins do Systems Manager. Para obter mais informações sobre documentos, incluindo informações sobre a criação de documentos e as diferenças entre as versões de esquema, consulte [Documentos do AWS Systems Manager](documents.md).

Para plug-ins que aceitam parâmetros String, como `aws:runShellScript` e `aws:runPowerShellScript`, o parâmetro `interpolationType` pode ser usado para aumentar a segurança, tratando as entradas de parâmetros como literais de string em vez de comandos potencialmente executáveis. Por exemplo:

```
{
    "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
 }
```

**nota**  
Alguns dos plugins descritos aqui são executados apenas em instâncias do Windows Server ou em instâncias do Linux. São indicadas dependências de plataforma para cada plugin.   
Os plugins de documento a seguir são compatíveis com instâncias do Amazon Elastic Compute Cloud (Amazon EC2) para o macOS:  
`aws:refreshAssociation`
`aws:runShellScript`
`aws:runPowerShellScript`
`aws:softwareInventory`
`aws:updateSsmAgent`

**Topics**
+ [Entradas compartilhadas](#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)

## Entradas compartilhadas
<a name="shared-inputs"></a>

comSSM Agentversão 3.0.502 e posterior somente, todos os plugins podem usar as seguintes entradas:

**finallyStep**  
A última etapa que você deseja que o documento seja executado. Se essa entrada for definida para uma etapa, ela terá precedência sobre um`exit`especificado no parâmetro`onFailure`ou`onSuccess`entradas. Para que uma etapa com essa entrada seja executada conforme esperado, a etapa deve ser a última definida no`mainSteps`do documento.  
Tipo: booliano  
Valores válidos: `true` \$1 `false`  
Obrigatório: não

**onFailure**  
Se você especificar esta entrada para um plugin com a opção`exit`e a etapa falhar, o status da etapa reflete a falha e o documento não executa as etapas restantes, a menos que um`finallyStep`foi definido. Se você especificar esta entrada para um plugin com a opção`successAndExit`e a etapa falhar, o status da etapa mostra bem-sucedida e o documento não executa as etapas restantes, a menos que um`finallyStep`foi definido.  
Tipo: string  
Valores válidos: `exit` \$1 `successAndExit`  
Obrigatório: não

**onSuccess**  
Se você especificar essa entrada para um plugin e a etapa for executada com êxito, o documento não executará nenhuma etapa restante, a menos que um`finallyStep`foi definido.  
Tipo: string  
Valores válidos: `exit`  
Obrigatório: não

------
#### [ 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>

Instala, repara ou desinstala aplicativos em uma instância do EC2. Este plugin é executado somente em sistemas operacionais Windows Server.

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

#### Esquema 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 }}"
      }
    }
  ]
}
```

------

#### Esquema 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 }}"
            }
         ]
      }
   }
}
```

------

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

**ação**  
A medida a ser tomada.  
Tipo: Enum  
Valores válidos: `Install` \$1 `Repair` \$1 `Uninstall`  
Obrigatório: Sim

**parameters**  
Os parâmetros para o instalador.  
Tipo: string  
Obrigatório: não

**origem**  
O URL do arquivo `.msi` para o aplicativo.  
Tipo: String  
Exigido: sim

**sourceHash**  
O hash SHA256 do arquivo `.msi`.  
Tipo: string  
Obrigatório: não

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

Exporte dados do Windows Server para o Amazon CloudWatch ou Amazon CloudWatch Logs e monitore os dados usando as métricas do CloudWatch. Este plugin é executado somente em sistemas operacionais Windows Server. Para obter mais informações sobre como configurar a integração do CloudWatch, ao Amazon Elastic Compute Cloud (Amazon EC2) consulte [Coletar métricas, logs e rastreamentos com o atendente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) no *Guia de usuário do Amazon CloudWatch*.

**Importante**  
O atendente unificado do CloudWatch substituiu SSM Agent como a ferramenta para enviar dados de log para o Amazon CloudWatch Logs. Não há compatibilidade com o plugin aws:cloudWatch do SSM Agent. Recomendamos usar somente o atendente do CloudWatch unificado nos processos de coleta de logs. Para saber mais, consulte os seguintes tópicos:  
[Enviar logs de nós para o CloudWatch Logs unificado (agente do CloudWatch)](monitoring-cloudwatch-agent.md)
[Migrar a coleta de logs de nós do Windows Server para o agente do CloudWatch](monitoring-cloudwatch-agent.md#monitoring-cloudwatch-agent-migrate)
[Coletar métricas, logs e rastreamentos com o atendente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) no *Guia do usuário do Amazon CloudWatch*.

Você pode exportar e monitorar os seguintes tipos de dados:

**ApplicationEventLog**  
Envia dados de log de eventos da aplicação para o CloudWatch Logs.

**CustomLogs**  
Envia qualquer arquivo de log baseado em texto para o Amazon CloudWatch Logs. O plugin do CloudWatch cria uma impressão digital para os arquivos de log. O sistema associa então um deslocamento de dados com cada impressão digital. O plugin faz upload dos arquivos quando há alterações, registra o deslocamento e associa o deslocamento com uma impressão digital. Esse método é usado para evitar uma situação em que um usuário ativa o plugin, associa o serviço com um diretório que contém um grande número de arquivos, e o sistema faz upload de todos os arquivos.  
Lembre-se de que, se seu aplicativo truncar ou tentar limpar os logs durante a sondagem, qualquer log especificado para `LogDirectoryPath` pode perder entradas. Se, por exemplo, você quiser limitar o tamanho do arquivo de log, crie um novo arquivo de log quando o limite for atingido e continue a gravar dados no novo arquivo.

**ETW**  
Envia os dados de rastreamento de eventos para Windows (ETW) ao CloudWatch Logs.

**IIS**  
Envia dados de log do IIS ao CloudWatch Logs.

**PerformanceCounter**  
Envia contadores de performance do Windows para o CloudWatch. Você poderá selecionar categorias diferentes para fazer upload no CloudWatch como métricas. Para cada contador de performance que você deseja carregar, crie uma seção **PerformanceCounter** com um ID exclusivo (por exemplo, "PerformanceCounter2", "PerformanceCounter3" e assim por diante) e configure as respectivas propriedades.  
Se o AWS Systems Manager SSM Agent ou o plugin do CloudWatch for interrompido, os dados do contador de performance não serão registrados em log no CloudWatch. Esse comportamento é diferente daquele dos logs personalizados ou dos logs de eventos do Windows. Os logs personalizados e logs de eventos do Windows preservarão dados do contador de performance e farão upload dos dados no CloudWatch depois que o SSM Agent ou o plugin do CloudWatch estiver disponível.

**SecurityEventLog**  
Envia dados de log de eventos de segurança para o CloudWatch Logs.

**SystemEventLog**  
Envia dados de log de eventos de sistema ao CloudWatch Logs

Você pode definir os seguintes destinos para os dados:

**CloudWatch**  
O destino para o qual os dados de métrica do contador de performance são enviados. Você pode incluir mais seções com IDs exclusivos (por exemplo, "CloudWatch2", "CloudWatch3" etc.) e especificar uma região diferente para cada novo ID a fim de enviar os mesmos dados para diferentes locais.

**CloudWatchLogs**  
O destino para o qual os dados de log são enviados. Você pode incluir mais seções com IDs exclusivos (por exemplo, "CloudWatchLogs2", "CloudWatchLogs3" etc.) e especificar uma região diferente para cada novo ID a fim de enviar os mesmos dados para diferentes locais.

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

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

### Configurações e propriedades
<a name="cloudWatch-properties"></a>

**AccessKey**  
Sua ID de chave de acesso. Essa propriedade é obrigatória, a menos que você tenha lançado sua instância usando uma função do IAM. Essa propriedade não pode ser usada com o SSM.  
Tipo: string  
Obrigatório: não

**CategoryName**  
A categoria de contador de performance no Performance Monitor.  
Tipo: String  
Exigido: sim

**CounterName**  
O nome do contador de performance no Performance Monitor.  
Tipo: String  
Exigido: sim

**CultureName**  
O local em que o time stamp é registrado. Se **CultureName** estiver em branco, o mesmo local usado atualmente por sua instância do Windows Server será usado como o padrão.  
Tipo: string  
Valores válidos: para obter uma lista de valores comportados, consulte [National Language Support (NLS)](https://msdn.microsoft.com/en-us/library/cc233982.aspx) no site da Microsoft. Os valores **div**, **div-MV**, **hu** e **hu-HU** não são compatíveis.  
Obrigatório: não

**DimensionName**  
Uma dimensão para sua métrica do Amazon CloudWatch. Se você especificar `DimensionName`, também deverá especificar `DimensionValue`. Esses parâmetros produzem outro modo de exibição para a listagem de métricas. Você pode usar a mesma dimensão para várias métricas de modo a visualizar todas as métricas que pertencem a uma dimensão específica.  
Tipo: string  
Obrigatório: não

**DimensionValue**  
Um valor de dimensão para a métrica do Amazon CloudWatch.  
Tipo: string  
Obrigatório: não

**Codificação**  
A codificação de arquivo a ser usada (por exemplo, UTF-8). Use o nome da codificação, não o nome da exibição.  
Tipo: string  
Valores válidos: para obter uma lista de valores comportados, consulte [Encoding Class](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding?view=net-7.0) na biblioteca Microsoft Learn.  
Obrigatório: Sim

**Filtro**  
O prefixo dos nomes de log. Deixe esse parâmetro em branco para monitorar todos os arquivos.  
Tipo: string  
Valores válidos: para obter uma lista de valores compatíveis, consulte [FileSystemWatcherFilter property](http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx) na biblioteca do MSDN.  
Obrigatório: não

**Fluxos**  
Cada tipo de dados para fazer upload, bem como o destino dos dados (CloudWatch ou CloudWatch Logs). Por exemplo, para enviar um contador de performance definido de acordo com `"Id": "PerformanceCounter"` para o destino do CloudWatch definido em `"Id": "CloudWatch"`, insira **"PerformanceCounter,CloudWatch"**. Da mesma forma, para enviar o log personalizado, o log do ETW e o log do sistema para o destino do CloudWatch Logs definido em `"Id": "ETW"`, insira **“(ETW),CloudWatchLogs”**. Além disso, é possível enviar o mesmo contador de performance ou arquivo de log para mais de um destino. Por exemplo, para enviar o log do aplicativo para dois destinos diferentes que você definiu em `"Id": "CloudWatchLogs"` e `"Id": "CloudWatchLogs2"`, insira **"ApplicationEventLog, (CloudWatchLogs, CloudWatchLogs2)"**.  
Tipo: string  
Valores válidos (origem): `ApplicationEventLog` \$1 `CustomLogs` \$1 `ETW` \$1 `PerformanceCounter` \$1 `SystemEventLog` \$1 `SecurityEventLog`   
Valores válidos (destino): `CloudWatch` \$1 `CloudWatchLogs` \$1 `CloudWatch`*n* \$1 `CloudWatchLogs`*n*   
Obrigatório: Sim

**FullName**  
O nome completo do componente.  
Tipo: String  
Exigido: sim

**Id**  
Identifica a origem de dados ou o destino. Esse identificador deve ser exclusivo no arquivo de configuração.  
Tipo: String  
Exigido: sim

**InstanceName**  
O nome da instância do contador de performance. Não use um asterisco (\$1) para indicar todas as instâncias, pois cada componente do contador de performance só é compatível com uma única métrica. Você pode, porém, usar **\$1Total**.  
Tipo: String  
Exigido: sim

**Níveis**  
Os tipos de mensagem a enviar para o Amazon CloudWatch.  
Tipo: string  
Valores válidos:   
+ **1** - Somente o upload de mensagens de erro.
+ **2** - Somente o upload de mensagens de aviso.
+ **4** - Somente o upload de mensagens de informação.
Observe que você pode adicionar valores para incluir mais de um tipo de mensagem. Por exemplo, **3** significa que mensagens de erro (**1**) e mensagens de aviso (**2**) estão incluídas. Um valor de **7** significa que mensagens de erro (**1**), mensagens de aviso (**2**) e mensagens informativas (**4**) estão incluídas.  
Obrigatório: Sim  
Os logs de segurança do Windows devem definir os níveis como 7.

**LineCount**  
O número de linha no cabeçalho para identificar o arquivo de log. Por exemplo, os arquivos de log do IIS têm cabeçalhos praticamente idênticos. Você pode especificar **3**, que leria as três primeiras linhas do cabeçalho do arquivo de log para identificá-lo. Em arquivos de log do IIS, a terceira linha é o time stamp que é diferente entre arquivos de log.  
Tipo: inteiro  
Obrigatório: não

**LogDirectoryPath**  
Em CustomLogs, o caminho em que os logs são armazenados na instância do EC2. Para logs do IIS, a pasta em que os logs do IIS são armazenados para um site específico (por exemplo, **C:\$1\$1inetpub\$1\$1logs\$1\$1LogFiles\$1\$1W3SVC*n***). Para logs do IIS, somente o formato de log W3C é comportado. Não há suporte para os formatos IIS, NCSA e Personalizado.   
Tipo: String  
Exigido: sim

**LogGroup**  
O nome para o seu grupo de logs. Esse nome é exibido na tela **Log Groups** (Grupos de logs) no console do CloudWatch.  
Tipo: String  
Exigido: sim

**LogName**  
O nome do arquivo de log.  

1. Para encontrar o nome do log, no Visualizador de Eventos, no painel de navegação, clique em **Logs de aplicações e serviços**.

1. Na lista de logs, clique com o botão direito do mouse no log do qual você deseja fazer upload (por exemplo, `Microsoft` > `Windows` > `Backup` > `Operational`) e clique em **Criar Modo de Exibição Personalizado**.

1. Na caixa de diálogo **Create Custom View** (Criar modo de exibição personalizado), selecione a guia **XML**. O **LogName** está na tag <Select Path=> (por exemplo, `Microsoft-Windows-Backup`). Copie o texto para o parâmetro **LogName**.
Tipo: string  
Valores válidos: `Application` \$1 `Security` \$1 `System` \$1 `Microsoft-Windows-WinINet/Analytic`  
Obrigatório: Sim

**LogStream**  
O fluxo de logs de destino. Se você usar **\$1instance\$1id\$1**, o padrão, o ID de instância dessa instância será usado como nome do fluxo de logs.  
Tipo: string  
Valores válidos: `{instance_id}` \$1 `{hostname}` \$1 `{ip_address}` *<log\$1stream\$1name>*  
Se você especificar o nome de uma transmissão de log que ainda não existe, o CloudWatch Logs a criará automaticamente. Você pode usar uma cadeia de caracteres literal ou as variáveis predefinidas (**\$1instance\$1id\$1**, **\$1hostname\$1**, **\$1ip\$1address\$1**, ou uma combinação das três, para definir um nome de fluxo de log.  
O nome da transmissão de logs especificado nesse parâmetro aparece na tela **Log Groups > Streams for *<YourLogStream>*** (Grupos de logs > Transmissões para <SuaTransmissãoDeLogs>) no console do CloudWatch.  
Obrigatório: Sim

**MetricName**  
A métrica do CloudWatch na qual você deseja que os dados de performance sejam incluídos.  
Não use caracteres especiais no nome. Caso contrário, a métrica e os alarmes associados podem não funcionar.
Tipo: String  
Exigido: sim

**NameSpace**  
O namespace da métrica em que você deseja que os dados do contador de performance sejam gravados.  
Tipo: String  
Exigido: sim

**PollInterval**  
Quantos segundos devem transcorrer para que seja feito upload do novo contador de performance e dos dados de log.  
Tipo: inteiro  
Valores válidos: defina como 5 ou mais segundos. É recomendável 15 segundos (00:00:15).  
Obrigatório: Sim

**Região**  
A Região da AWS para a qual você deseja enviar dados de log. Embora seja possível enviar contadores de performance para uma região diferente daquela para onde você envia os dados de log, recomendamos que você defina esse parâmetro como a mesma região onde sua instância está sendo executada.  
Tipo: string  
Valores válidos: IDs de regiões do Regiões da AWS suportado pelo Systems Manager e pelo CloudWatch Logs, como `us-east-2`, `eu-west-1` e `ap-southeast-1`. Para listas de Regiões da AWS com suporte por cada serviço, consulte [Amazon CloudWatch Logs Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/cwl_region.html#cwl_region) e [Systems Manager service endpoints](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) no *Referência geral da Amazon Web Services*.   
Obrigatório: Sim

**SecretKey**  
Sua chave de acesso secreta. Essa propriedade é obrigatória, a menos que você tenha lançado sua instância usando uma função do IAM.  
Tipo: string  
Obrigatório: não

**startType**  
Ative ou desative o CloudWatch na instância.  
Tipo: string  
Valores válidos: `Enabled` \$1 `Disabled`  
Obrigatório: Sim

**TimestampFormat**  
O formato time stamp que você deseja usar. Para obter uma lista de valores compatíveis, consulte [Cadeias de caracteres de formato de data e hora personalizado](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx) na biblioteca do MSDN.  
Tipo: String  
Exigido: sim

**TimeZoneKind**  
Fornece informações de fuso horário quando essas informações não estiverem incluídas no time stamp do log. Se esse parâmetro for deixado em branco e se o carimbo de data/hora não incluir informações de fuso horário, o CloudWatch Logs adotará como padrão o fuso horário local. Esse parâmetro será ignorado se o carimbo já incluir informações de fuso horário.  
Tipo: string  
Valores válidos: `Local` \$1 `UTC`  
Obrigatório: não

**Unidade**  
A unidade de medida adequada para a métrica.  
Tipo: string  
Valores válidos: segundos \$1 microssegundos \$1 milissegundos \$1 bytes \$1 kilobytes \$1 megabytes \$1 gigabytes \$1 terabytes \$1 bits \$1 kilobits \$1 megabits \$1 gigabits \$1 terabits \$1 porcentagem \$1 contagem \$1 bytes/segundo \$1 kilobytes/segundo \$1 megabytes/segundo \$1 gigabytes/segundo \$1 terabytes/segundo \$1 bits/segundo \$1 kilobits/segundo \$1 megabits/segundo \$1 gigabits/segundo \$1 terabits/segundo \$1 contagem/segundos \$1 nenhum.  
Obrigatório: Sim

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

(Esquema versão 2.0 ou posterior) configura uma instância para trabalhar com contêineres e o docker. Este plug-in é compatível com a maioria das variantes do Linux e sistemas operacionais Windows Server.

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

#### Esquema 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 }}"
      }
    }
  ]
}
```

------

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

**ação**  
O tipo de ação a ser executada.  
Tipo: Enum  
Valores válidos: `Install` \$1 `Uninstall`  
Obrigatório: Sim

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

(Esquema versão 2.0 ou posterior) Instale ou desinstale um pacote do AWS Systems Manager Distributor. Você pode instalar a versão mais recente, a versão padrão ou uma versão especificada do pacote. Os pacotes fornecidos pela AWS também são compatíveis. Este plugin é executado nos sistemas operacionais Windows Server e Linux, mas nem todos os pacotes disponíveis são compatíveis com sistemas operacionais Linux.

Pacotes da AWS disponíveis para Windows Server incluem o seguinte: `AWSPVDriver`, `AWSNVMe`, `AwsEnaNetworkDriver`, `AwsVssComponents`, `AmazonCloudWatchAgent`, `CodeDeployAgent`, e `AWSSupport-EC2Rescue.`

Os pacotes disponíveis da AWS para sistemas operacionais Linux incluem o seguinte: `AmazonCloudWatchAgent`, `CodeDeployAgent` `AWSSupport-EC2Rescue`.

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

#### Esquema 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\"}"
         }
      }
   ]
}
```

------

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

**name**  
O nome do pacote da AWS a ser instalado ou desinstalado. Os pacotes disponíveis incluem o seguinte: `AWSPVDriver`, `AwsEnaNetworkDriver`, `AwsVssComponents` e `AmazonCloudWatchAgent`.  
Tipo: String  
Exigido: sim

**ação**  
Instala ou desinstala um pacote.  
Tipo: Enum  
Valores válidos: `Install` \$1 `Uninstall`  
Obrigatório: Sim

**installationType**  
O tipo de instalação a ser executada. Se você especificar `Uninstall and reinstall`, o pacote será completamente desinstalado e, depois, reinstalado. A aplicação estará indisponível até que a reinstalação seja concluída. Se você especificar `In-place update`, somente arquivos novos ou alterados serão adicionados à instalação existente de acordo com as instruções fornecidas em um script de atualização. O aplicativo permanece disponível durante todo o processo de atualização. O`In-place update`A opção não tem suporte paraAWS-pacotes publicados.`Uninstall and reinstall`é o valor padrão.  
Tipo: Enum  
Valores válidos: `Uninstall and reinstall` \$1 `In-place update`  
Obrigatório: não

**additionalArguments**  
Uma string JSON dos parâmetros adicionais a serem fornecidos aos scripts de instalação, desinstalação ou atualização. Cada parâmetro deve ser prefixado com `SSM_`. Você pode fazer referência a um parâmetro Parameter Store em seus argumentos adicionais usando a convenção `{{ssm:parameter-name}}`. Para usar o parâmetro adicional em seu script de instalação, desinstalação ou atualização, você deve fazer referência ao parâmetro como uma variável de ambiente usando a sintaxe apropriada para o sistema operacional. Por exemplo, no PowerShell, você faz referência ao`SSM_arg`Argumento como`$Env:SSM_arg`. Não há limite para o número de argumentos que você define, mas a entrada de argumento adicional tem um limite de 4096 caracteres. Esse limite inclui todas as chaves e valores que você define.  
Tipo: StringMap  
Obrigatório: não

**version**  
Uma versão específica do pacote a ser instalada ou desinstalada. No caso de instalação, o sistema instala a última versão publicada, por padrão. No caso de desinstalação, o sistema desinstala a versão atualmente instalada, por padrão. Se não for encontrada nenhuma versão instalada, é feito download da última versão publicada e a ação de desinstalação é executada.  
Tipo: string  
Obrigatório: não

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

Ingressar uma instância do EC2 em um domínio. Esse plugin é executado em sistemas operacionais Linux e Windows Server. Este plugin altera o nome do host das instâncias Linux para o formato EC2AMAZ-*XXXXXXX*. Para obter mais informações sobre como ingressar instâncias do EC2, consulte [Associe uma instância do EC2 ao Diretório do Microsoft AD gerenciado pela AWS](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html) no *Manual de administração do AWS Directory Service*.

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

#### Esquema 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 }}"
      }
    }
  ]
}
```

------

#### Esquema 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 }}"
         }
      }
   }
}
```

------

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

**directoryId**  
O ID do diretório.  
Tipo: String  
Exigido: sim  
Exemplo: "directoryId": "d-1234567890"

**directoryName**  
O nome do domínio.  
Tipo: String  
Exigido: sim  
Exemplo: "directoryName": "example.com"

**directoryOU**  
A unidade organizacional (UO).  
Tipo: string  
Obrigatório: não  
Exemplo: "directoryOU": "OU=test,DC=example,DC=com"

**dnsIpAddresses**  
Os endereços IP dos servidores DNS.  
Tipo: StringList  
Obrigatório: Sim  
Exemplo: "dnsIpAddresses": ["198.51.100.1","198.51.100.2"]

**hostname**  
O nome de host que você deseja atribuir ao nó. Caso não seja fornecido, não haverá modificação de nome para instâncias Windows Server, enquanto instâncias Linux utilizarão o padrão de nomenclatura predefinido. Quando fornecido, as instâncias Windows Server utilizarão o valor exato indicado. Para instâncias Linux, servirá como um prefixo (a menos que `keepHostName` seja definido como “true”).  
Tipo: string  
Obrigatório: não

**keepHostName**  
Determina se o nome do host é alterado para instâncias Linux quando ingressadas no domínio. É um parâmetro somente Linux. Por padrão (sem entradas para `hostname`, `hostnameNumAppendDigits` e com `keepHostName` definido como "false"), hosts Linux serão renomeados para o padrão EC2AMAZ-XXXXXX. Ao ser definido como “true”, mantém o nome de host original e ignora entradas para `hostname` e `hostnameNumAppendDigits`.  
Tipo: booliano  
Obrigatório: não

**hostnameNumAppendDigits**  
Define o número de dígitos numéricos aleatórios que devem ser acrescentados após o valor do nome de host. É um parâmetro somente Linux usado em conjunto com o parâmetro `hostname`. Será ignorado se `hostname` não for fornecido.  
Tipo: string  
Valores permitidos: de 1 a 5  
Obrigatório: não

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

Para ver exemplos, consulte [Associar uma instância do Amazon EC2 ao seuAWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ec2-join-aws-domain.html) no *Guia de administração do AWS Directory Service*.

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

(Esquema versão 2.0 ou posterior) Baixe os documentos e scripts do SSM de locais remotos. Não há suporte a repositórios do GitHub Enterprise. Este plugin é compatível com os sistemas operacionais Linux e Windows Server.

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

#### Esquema 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 }}"
      }
    }
  ]
}
```

------

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

**sourceType**  
A origem do download. O Systems Manager é compatível com os tipos de origem a seguir para baixar scripts e documentos SSM: `GitHub`, `Git`, `HTTP`, `S3` e `SSMDocument`.  
Tipo: String  
Exigido: sim

**sourceInfo**  
As informações necessárias para recuperar o conteúdo da fonte necessária.  
Tipo: StringMap  
Obrigatório: Sim  
 **Para sourceType `GitHub,`, especifique o seguinte:**   
+ owner: o proprietário do repositório.
+ repository: o nome do repositório.
+ path: o caminho para o arquivo ou diretório do qual fazer download.
+ getOptions: opções extras para recuperar conteúdo de uma ramificação diferente da principal ou de uma confirmação específica no repositório. O getOptions poderá ser omitido se você estiver usando a confirmação mais recente na ramificação principal. Se seu repositório foi criado após 1º de outubro de 2020, a ramificação padrão pode ser nomeada principal em vez de mestre. Nesse caso, você precisará especificar valores para o parâmetro GetOptions.

  Esse parâmetro usa o seguinte formato:
  + branch:refs/heads/*branch\$1name*

    O padrão é `master`.

    Para especificar uma ramificação não padrão, use o seguinte formato:

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

    O padrão é `head`.

    Para usar a versão do documento do SSM em uma confirmação diferente da mais recente, especifique o ID completo da confirmação. Por exemplo:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ tokenInfo: o parâmetro do Systems Manager (um parâmetro SecureString) em que você armazena as informações de token de acesso do GitHub no formato `{{ssm-secure:secure-string-token-name}}`.
**nota**  
O campo `tokenInfo` é o único campo do plugin de documento SSM que é compatível com um parâmetro SecureString. Os parâmetros SecureString não são compatíveis com nenhum outro campo, nem com outros plugins de documentos SSM.

```
{
    "owner":"TestUser",
    "repository":"GitHubTest",
    "path":"scripts/python/test-script",
    "getOptions":"branch:master",
    "tokenInfo":"{{ssm-secure:secure-string-token}}"
}
```
 **Para sourceType `Git`, especifique o seguinte:**   
+ repositório

  O URL do repositório Git do arquivo ou diretório que você deseja baixar.

  Tipo: string
Além disso, é possível especificar qualquer um dos seguintes parâmetros opcionais:  
+ getOptions

  Opções extras para recuperar conteúdo de uma ramificação diferente da principal ou de uma confirmação específica no repositório. O getOptions poderá ser omitido se você estiver usando a confirmação mais recente na ramificação principal.

  Tipo: string

  Esse parâmetro usa o seguinte formato:
  + branch:refs/heads/*branch\$1name*

    O padrão é `master`.

    `"branch"` é necessário somente se o documento do SSM estiver armazenado em uma ramificação diferente de `master`. Por exemplo:

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

    O padrão é `head`.

    Para usar a versão do documento do SSM em uma confirmação diferente da mais recente, especifique o ID completo da confirmação. Por exemplo:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ privateSSHKey

  A chave SSH a ser usada ao se conectar ao`repository`que você especificar. Você pode usar este formato para referencair um parâmetro `SecureString` para o valor da sua chave SSH: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipo: string
+ skipHostKeyChecking

  Determina o valor da opção StrictHostKeyChecking quando se conecta ao `repository` que você especificar. O valor padrão é `false`.

  Tipo: booliano
+ username

  O nome de usuário a ser usado ao se conectar ao`repository`você especifica usando HTTP. Você pode usar este formato para referenciar um parâmetro `SecureString` para o valor do seu nome de usuário: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipo: string
+ password

  A senha a ser usada ao se conectar ao`repository`você especifica usando HTTP. Você pode usar este formato para referencair um parâmetro `SecureString` para o valor da sua senha: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipo: string
 **Para sourceType `HTTP`, especifique o seguinte:**   
+ url

  path: o URL do arquivo ou diretório do qual você deseja fazer download do .

  Tipo: string
Além disso, é possível especificar qualquer um dos seguintes parâmetros opcionais:  
+ allowInsecureDownload

  Determina se um download pode ser realizado em uma conexão que não esteja criptografada com o Security Socket Layer (SSL) ou o Transport Layer Security (TLS). O valor padrão é `false`. Não recomendamos realizar downloads sem criptografia. Se você optar por fazê-lo, você assume todos os riscos associados. A segurança é uma responsabilidade compartilhada entre a AWS e você. Isso é descrito como o modelo de responsabilidade compartilhada da. Para saber mais, consulte[Modelo de responsabilidade compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/).

  Tipo: booliano
+ authMethod

  Determina se um nome de usuário e senha são usados para autenticação quando se conectar à `url` que você especificar. Se você especificar`Basic`ou`Digest`, você deve fornecer valores para o`username`e`password`parâmetros. Para usar a`Digest`Método do,SSM AgentA versão 3.0.1181.0 ou posterior deve ser instalada na sua instância. O`Digest`suporta criptografia MD5 e SHA256.

  Tipo: string

  Valores válidos: `None` \$1 `Basic` \$1 `Digest`
+ username

  O nome de usuário a ser usado ao se conectar ao`url`você especificar usando`Basic`autenticação. Você pode usar este formato para referenciar um parâmetro `SecureString` para o valor do seu nome de usuário: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipo: string
+ password

  A senha a ser usada ao se conectar ao`url`você especificar usando`Basic`autenticação. Você pode usar este formato para referencair um parâmetro `SecureString` para o valor da sua senha: `{{ssm-secure:your-secure-string-parameter}}`.

  Tipo: string
 **Para sourceType `S3`, especifique o seguinte:**   
+ path: o URL para o arquivo ou diretório do qual você deve baixar no Amazon S3.
Ao fazer download de um arquivo de um bucket do S3, os arquivos .etag são gerados no diretório de download.

```
{
    "path": "https://s3.amazonaws.com/amzn-s3-demo-bucket/powershell/helloPowershell.ps1" 
}
```
 **Para sourceType `SSMDocument`, especifique *um* dos seguintes:**   
+ name: o nome e a versão do documento no seguinte formato: `name:version`. A versão é opcional. 

  ```
  {
      "name": "Example-RunPowerShellScript:3" 
  }
  ```
+ name: o ARN do documento no seguinte formato: `arn:aws:ssm:region:account_id:document/document_name`

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

**destinationPath**  
Um caminho local opcional na instância em que você deseja fazer download do arquivo. Se você não especificar um caminho, o conteúdo será obtido por download em um caminho relativo ao ID do comando.  
Tipo: string  
Obrigatório: não

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

Instalar módulos do PowerShell em uma instância do Amazon EC2. Este plugin é executado somente em sistemas operacionais Windows Server.

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

#### Esquema 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 }}"
      }
    }
  ]
}
```

------

#### Esquema 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 }}"
            }
         ]
      }
   }
}
```

------

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

**runCommand**  
O comando do PowerShell a ser executado após a instalação do módulo.  
Tipo: StringList  
Obrigatório: não

**origem**  
O URL ou o caminho local na instância para o arquivo `.zip` do aplicativo.  
Tipo: String  
Exigido: sim

**sourceHash**  
O hash SHA256 do arquivo `.zip`.  
Tipo: string  
Obrigatório: não

**timeoutSeconds**  
O tempo em segundos para um comando ser concluído antes de ser considerado como tendo falhado.  
Tipo: string  
Obrigatório: não

**workingDirectory**  
O caminho para o diretório de trabalho em sua instância.  
Tipo: string  
Obrigatório: não

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

(Esquema versão 2.0 ou posterior) Atualizar (forçar aplicação) uma associação sob demanda. Essa ação alterará o estado do sistema com base no que é definido na associação selecionada ou em todas as associações vinculadas aos destinos. Esse plugin é executado em sistemas operacionais Linux e Microsoft Windows Server.

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

#### Esquema 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 }}"
        ]
      }
    }
  ]
}
```

------

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

**associationIds**  
Lista de IDs de associação. Se estiver vazia, todas as associações vinculadas ao destino especificado serão aplicadas.  
Tipo: StringList  
Obrigatório: não

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

(Esquema versão 2.0 ou posterior) Executar ações do Docker em contêineres. Esse plugin é executado em sistemas operacionais Linux e Microsoft Windows Server.

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

#### Esquema 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 }}"
         }
      }
   ]
}
```

------

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

**ação**  
O tipo de ação a ser executada.  
Tipo: String  
Exigido: sim

**contêiner**  
O ID do contêiner do Docker.  
Tipo: string  
Obrigatório: não

**imagem**  
O nome da imagem do Docker.  
Tipo: string  
Obrigatório: não

**cmd**  
O comando do contêiner.  
Tipo: string  
Obrigatório: não

**memória**  
O limite de memória do contêiner.  
Tipo: string  
Obrigatório: não

**cpuShares**  
Os compartilhamentos da CPU do contêiner (peso relativo).  
Tipo: string  
Obrigatório: não

**volume**  
O volume em que o contêiner é montado.  
Tipo: StringList  
Obrigatório: não

**env**  
As variáveis de ambiente do contêiner.  
Tipo: string  
Obrigatório: não

**usuário**  
O nome de usuário do contêiner.  
Tipo: string  
Obrigatório: não

**publicar**  
As portas do contêiner publicadas.  
Tipo: string  
Obrigatório: não

**workingDirectory**  
O caminho para o diretório de trabalho em seu nó gerenciado.  
Tipo: string  
Obrigatório: não

**timeoutSeconds**  
O tempo em segundos para um comando ser concluído antes de ser considerado como tendo falhado.  
Tipo: string  
Obrigatório: não

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

(Esquema versão 2.0 ou posterior) Executa documentos do SSM armazenados no Systems Manager ou em um compartilhamento local. Você pode usar esse plugin com o plugin [`aws:downloadContent`](#aws-downloadContent) para baixar um documento do SSM de um local remoto para um compartilhamento local e em seguida executá-lo. Este plugin é compatível com os sistemas operacionais Linux e Windows Server. Este plugin não suporta a execução do documento `AWS-UpdateSSMAgent` ou de qualquer documento que use o plugin `aws:updateSsmAgent`.

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

#### Esquema 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 }}"
      }
    }
  ]
}
```

------

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

**documentType**  
O tipo de documento a ser executado. Você pode executar documentos locais (`LocalPath`) ou documentos armazenados no Systems Manager (`SSMDocument`).  
Tipo: String  
Exigido: sim

**documentPath**  
O caminho para o documento. Se `documentType` for `LocalPath`, especifique o caminho para o documento no compartilhamento local. Se `documentType` for `SSMDocument`, especifique o nome do documento.  
Tipo: string  
Obrigatório: não

**documentParameters**  
Os parâmetros para o documento.  
Tipo: StringMap  
Obrigatório: não

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

Executar scripts PowerShell ou especificar o caminho para um script a ser executado. Esse plugin é executado em sistemas operacionais Microsoft Windows Server e Linux.

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

#### Esquema 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 }}"
        ]
      }
    }
  ]
}
```

------

#### Esquema 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 }}"
            }
         ]
      }
   }
}
```

------

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

**runCommand**  
Especifique os comandos a serem executados ou o caminho para um script existente na instância.  
Tipo: StringList  
Obrigatório: Sim

**timeoutSeconds**  
O tempo em segundos para um comando ser concluído antes de ser considerado como tendo falhado. Quando o tempo limite é atingido, o Systems Manager interrompe a execução do comando.  
Tipo: string  
Obrigatório: não

**workingDirectory**  
O caminho para o diretório de trabalho em sua instância.  
Tipo: string  
Obrigatório: não

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

Executar scripts shell do Linux ou especificar o caminho para um script a ser executado. Esse plugin só é executado em sistemas operacionais Linux.

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

#### Esquema 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 }}"
        ]
      }
    }
  ]
}
```

------

#### Esquema 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 }}"
            }
         ]
      }
   }
}
```

------

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

**runCommand**  
Especifique os comandos a serem executados ou o caminho para um script existente na instância.  
Tipo: StringList  
Obrigatório: Sim

**timeoutSeconds**  
O tempo em segundos para um comando ser concluído antes de ser considerado como tendo falhado. Quando o tempo limite é atingido, o Systems Manager interrompe a execução do comando.  
Tipo: string  
Obrigatório: não

**workingDirectory**  
O caminho para o diretório de trabalho em sua instância.  
Tipo: string  
Obrigatório: não

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

(Esquema versão 2.0 ou posterior) Coletar metadados sobre aplicativos, arquivos e configurações em suas instâncias gerenciadas. Esse plugin é executado em sistemas operacionais Linux e Microsoft Windows Server. Quando você configura a coleta de inventário, primeiro cria uma associação do AWS Systems Manager State Manager. O coleta os dados de inventário quando a associação é executada. Se você não criar a associação primeiro e tentar invocar o plugin aws:softwareInventory usando, por exemplo, o `aws:softwareInventory`, o sistema retornará o seguinte erro:

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

Uma instância pode ter apenas uma associação de inventário configurada por vez. Se você configurar uma instância com duas ou mais associações, a associação de inventário não será executada, e os dados de inventário não serão coletados. Para obter mais informações sobre como coletar o inventário, consulte [AWS Systems Manager Inventory](systems-manager-inventory.md).

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

#### Esquema 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 }}"
         }
      }
   ]
}
```

------

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

**aplicações**  
(Opcional) Coletar metadados para aplicativos instalados.  
Tipo: string  
Obrigatório: não

**awsComponents**  
(Opcional) Colete metadados para componentes da AWS, como o amazon-ssm-agent.  
Tipo: string  
Obrigatório: não

**files**  
(Opcional, requer o SSM Agent versão 2.2.64.0 ou posterior) Colete metadados para arquivos, incluindo, por exemplo, nomes de arquivos, a hora em que os arquivos foram criados, a hora em que os arquivos foram modificados e acessados pela última vez e os tamanhos dos arquivos. Para obter mais informações sobre como coletar inventário de arquivos, consulte [Trabalhar com o inventário de arquivos e do Registro do Windows](inventory-file-and-registry.md).  
Tipo: string  
Obrigatório: não

**networkConfig**  
(Opcional) Coletar metadados para configurações de rede.  
Tipo: string  
Obrigatório: não

**billingInfo**  
(Opcional) Colete metadados para obter detalhes da plataforma associados ao código de cobrança da AMI.  
Tipo: string  
Obrigatório: não

**windowsUpdates**  
(Opcional) Coletar metadados para todas as atualizações do Windows.  
Tipo: string  
Obrigatório: não

**instanceDetailedInformation**  
(Opcional) Colete mais informações da instância do que as fornecidas pelo plugin do inventário padrão (`aws:instanceInformation`), incluindo o modelo da CPU, a velocidade e o número de núcleos.  
Tipo: string  
Obrigatório: não

**serviços**  
(Opcional, somente o SO Windows, requer o SSM Agent versão 2.2.64.0 ou posterior) Colete metadados para configurações de serviço.  
Tipo: string  
Obrigatório: não

**windowsRegistry**  
(Opcional, somente o SO Windows, requer o SSM Agent versão 2.2.64.0 ou posterior) Colete chaves e valores do Registro do Windows. Você pode escolher um caminho de chaves e coletar todos os valores e chaves recursivamente. Você pode também coletar determinada chave de registro e o respectivo valor para um caminho específico. O inventário coleta o caminho da chave, o nome, o tipo e o valor. Para obter mais informações sobre como coletar inventário do Registro do Windows, consulte [Trabalhar com o inventário de arquivos e do Registro do Windows](inventory-file-and-registry.md).  
Tipo: string  
Obrigatório: não

**windowsRoles**  
(Opcional, somente o SO Windows, requer o SSM Agent versão 2.2.64.0 ou posterior) Colete metadados para configurações de função do Microsoft Windows.  
Tipo: string  
Obrigatório: não

**customInventory**  
(Opcional) Coletar dados de inventário personalizado. Para obter mais informações sobre inventário personalizado, consulte [Trabalhar com inventário personalizado](inventory-custom.md)  
Tipo: string  
Obrigatório: não

**customInventoryDirectory**  
(Opcional) Colete dados de inventário personalizados do diretório especificado. Para obter mais informações sobre inventário personalizado, consulte [Trabalhar com inventário personalizado](inventory-custom.md)  
Tipo: string  
Obrigatório: não

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

Atualizar o serviço EC2Config para a versão mais recente ou especificar uma versão mais antiga. Este plugin executado somente em sistemas operacionais Microsoft Windows Server. Para obter mais informações sobre o serviço EC2Config, consulte [Configurar uma instância do Windows usando o serviço EC2Config (legado)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2config-service.html) no *Guia de usuário do Amazon EC2*.

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

#### Esquema 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"
      }
    }
  ]
}
```

------

#### Esquema 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 }}"
         }
      }
   }
}
```

------

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

**agentName**  
EC2Config. Esse é o nome do atendente que executa o serviço EC2Config.  
Tipo: String  
Exigido: sim

**allowDowngrade**  
Permitir que o serviço EC2Config seja atualizado para uma versão anterior. Se definido como falso, o serviço poderá ser atualizado apenas para versões mais novas (padrão). Se definido como verdadeiro, especifique a versão anterior.   
Tipo: booliano  
Obrigatório: não

**origem**  
O local em que o Systems Manager copia a versão do EC2Config a ser instalada. Não é possível mudar esse local.  
Tipo: String  
Exigido: sim

**targetVersion**  
Uma versão específica do serviço EC2Config a ser instalado. Se não for especificado, o serviço será atualizado para a versão mais recente.  
Tipo: string  
Obrigatório: não

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

Atualizar o SSM Agent para a versão mais recente ou especificar uma versão mais antiga. Esse plugin é executado em sistemas operacionais Linux e Windows Server. Para obter mais informações, consulte [Trabalhar com o SSM Agent](ssm-agent.md). 

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

#### Esquema 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 }}"
      }
    }
  ]
}
```

------

#### Esquema 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 }}"
            }
         ]
      }
   }
}
```

------

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

**agentName**  
amazon-ssm-agent. Esse é o nome do Systems Manager Agent que processa solicitações e executa comandos na instância.  
Tipo: String  
Exigido: sim

**allowDowngrade**  
Permitir que o SSM Agent seja atualizado para uma versão anterior. Se definido como falso, o atendente poderá ser atualizado apenas para versões mais novas (padrão). Se definido como verdadeiro, especifique a versão anterior.   
Tipo: booliano  
Obrigatório: Sim

**origem**  
O local em que o Systems Manager copia a versão do SSM Agent a ser instalada. Não é possível mudar esse local.  
Tipo: String  
Exigido: sim

**targetVersion**  
Uma versão específica do SSM Agent a ser instalada. Se não for especificado, o atendente será atualizado para a versão mais recente.  
Tipo: string  
Obrigatório: não

# Criar conteúdo de documento do SSM
<a name="documents-creating-content"></a>

Se os documentos públicos do AWS Systems Manager, não executarem todas as ações que você deseja executar em seus recursos da AWS, você poderá criar seus próprios documentos do SSM. Você também pode clonar documentos do SSM usando o console do. A clonagem de documentos copia o conteúdo de um documento existente em um novo documento que você pode modificar. Ao criar ou clonar um documento, o conteúdo do documento não deve exceder 64 KB. Essa cota também inclui o conteúdo especificado para parâmetros de entrada em runtime. Ao criar um novo `Command` ou documento de `Policy`, recomendamos que você use o esquema versão 2.2 ou posterior para que possa aproveitar os recursos mais recentes, como edição de documentos, versionamento automático, sequenciamento e muito mais.

## Escrever conteúdo de documento do
<a name="writing-ssm-doc-content"></a>

Para criar seu próprio conteúdo de documentos do , é importante entender os diferentes esquemas, recursos, plugins e sintaxe disponíveis para documentos do . Recomendamos familiarizar-se com os recursos a seguir.
+  [Escrever seus próprios documentos do AWS Systems Manager](https://aws.amazon.com/blogs//mt/writing-your-own-aws-systems-manager-documents/) 
+  [Elementos e parâmetros de dados](documents-syntax-data-elements-parameters.md) 
+  [Esquemas, atributos e exemplos](documents-schemas-features.md) 
+  [Referência de plug-ins de documentos de comando](documents-command-ssm-plugin-reference.md) 
+  [Referência de ações do Systems Manager Automation](automation-actions.md) 
+  [Variáveis de sistema de automação](automation-variables.md) 
+  [Exemplos adicionais de runbook](automation-document-examples.md) 
+  [Trabalhar com runbooks do Automation do Systems Manager](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) usando o AWS Toolkit for Visual Studio Code 
+  [Experiência de design visual para runbooks de automação](automation-visual-designer.md) 
+  [Uso de scripts em runbooks](automation-document-script-considerations.md) 

AWSDocumentos SSM predefinidos da podem executar algumas das ações exigidas. Você pode chamar esses documentos usando os plugins `aws:runDocument`, `aws:runCommand` ou `aws:executeAutomation` em seu documento SSM personalizado, dependendo do tipo de documento. Também é possível copiar partes desses documentos em um documento SSM personalizado e editar o conteúdo para atender às suas necessidades.

**dica**  
Ao criar conteúdo de documentos SSM, é possível alterar o conteúdo e atualizar o documento SSM várias vezes durante o teste. Os comandos a seguir atualizam o documento do com o conteúdo mais recente e atualizam a versão padrão do documento para a versão mais recente do documento.  
Os comandos do Linux e do Windows usam a ferramenta de linha de comando `jq` para filtrar os dados da resposta JSON.

```
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
```

### Práticas recomendadas seguras para documentos do SSM
<a name="ssm-document-security-practices"></a>

Ao criar documentos do SSM, siga estas práticas recomendadas de segurança para ajudar a evitar a injeção de comandos e garantir o tratamento seguro de parâmetros:
+ Use a interpolação de variáveis de ambiente para parâmetros de string que serão usados em comandos ou scripts. Adicione a propriedade `interpolationType` com valor `ENV_VAR` aos seus parâmetros de string:

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

  Você pode melhorar ainda mais a segurança de seus documentos do SSM especificando que aspas duplas não são aceitas nos valores fornecidos por interpolação:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR",
              "allowedPattern": "^[^"]*$"
      }
  }
  ```
+ Ao usar linguagens interpretadas, como Python, Ruby ou Node.js, faça referência aos parâmetros usando a sintaxe apropriada da variável de ambiente:

  ```
  # Python example
  import os
  command = os.environ['SSM_Message']
  ```
+ Para compatibilidade com as versões anteriores do SSM Agent (anteriores à versão 3.3.2746.0), inclua a lógica de fallback para variáveis de ambiente:

  ```
  if [ -z "${SSM_command+x}" ]; then
      export SSM_command="{{command}}"
  fi
  ```
+ Combine a interpolação de variáveis de ambiente com `allowedPattern` para validação de entrada adicional. No exemplo abaixo, o valor `^[^"]*$` de `allowedPattern` evita especificamente aspas duplas no valor da string:

  ```
  {
      "command": {
          "type": "String",
          "interpolationType": "ENV_VAR",
          "allowedPattern": "^[a-zA-Z0-9_-]+$"
      }
  }
  ```
+ Antes de implementar seu documento do SSM, verifique as seguintes considerações de segurança:
  + Todos os parâmetros de string que aceitam a entrada do usuário usam a interpolação de variáveis de ambiente quando apropriado.
  + A validação de entrada é implementada usando `allowedPattern` sempre que possível.
  + O documento inclui o tratamento adequado de erros para o processamento de parâmetros.
  + A compatibilidade com versões anteriores é mantida para ambientes que usam as versões anteriores do SSM Agent.

Para obter informações sobre os recursos de propriedade do serviço AWS que o Systems Manager acessa e como configurar políticas de perímetro de dados, consulte [Perímetro de dados na AWS Systems Manager](data-perimeters.md).

## Clonar um documento do SSM
<a name="cloning-ssm-document"></a>

Você pode clonar documentos do AWS Systems Manager usando o console de documentos do Systems Manager para criar documentos do SSM. A clonagem de documentos do SSM copia o conteúdo de um documento existente em um novo documento que você pode modificar. Não é possível clonar um documento de mais de 64 KB.

**Para clonar um documento do SSM**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Na caixa de pesquisa, insira o nome do documento que você deseja clonar.

1. Selecione o nome do documento que você quiser clonar e escolha **Clone document** (Clonar documento) na lista suspensa **Actions** (Ações). 

1. Modifique o documento como preferir e escolha**Criar documento**Para salvar o documento. 

Depois que escrever o conteúdo do documento SSM, você poderá usar o conteúdo para criar um documento do SSM usando um dos métodos a seguir.

**Topics**
+ [Escrever conteúdo de documento do](#writing-ssm-doc-content)
+ [Clonar um documento do SSM](#cloning-ssm-document)
+ [Criar documentos compostos](#documents-creating-composite)

## Criar documentos compostos
<a name="documents-creating-composite"></a>

Um documento *composite* do AWS Systems Manager (SSM) é um documento personalizado que realiza uma série de ações ao executar um ou mais documentos secundários do SSM. Os documentos compostos promovem a *infraestrutura como código* ao permitir que você crie um conjunto padrão de documentos do SSM para tarefas comuns, como inicialização de software ou ingresso de instâncias no domínio. Depois, você pode compartilhar esses documentos em Contas da AWS da mesma Região da AWS para reduzir a manutenção e garantir a consistência do documento SSM.

Por exemplo, você pode criar um documento composto que execute as seguintes ações:

1. Instala todos os patches na lista de permissões.

1. Instala software antivírus.

1. Baixa scripts do GitHub e os executa.

Neste exemplo, seu documento inclui os seguintes plugins de seu documento personalizado do SSM para executar as seguintes ações:

1. O plug-in `aws:runDocument` para executar o documento `AWS-RunPatchBaseline`, que instala todos os patches permitidos listados.

1. O plugin `aws:runDocument` para executar o documento `AWS-InstallApplication`, que instala o software antivírus.

1. O plugin `aws:downloadContent` para baixar scripts do GitHub e executá-los.

Os documentos compostos e secundários podem ser armazenados no Systems Manager, no GitHub (repositórios públicos e privados) ou no Amazon S3. Os documentos compostos e os documentos secundários podem ser criados em JSON ou YAML. 

**nota**  
Os documentos compostos só podem executar em um nível máximo de três documentos. Isso significa que um documento composto pode chamar um documento filho e que o documento filho pode chamar um último documento.

Para criar um documento composta, adicione o plugin [`aws:runDocument`](documents-command-ssm-plugin-reference.md#aws-rundocument) a um documento personalizado do SSM e especifique as entradas necessárias. A seguir encontra-se um exemplo de documento composto que executa as seguintes ações:

1. Executa o plugin [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent) para baixar um documento do SSM de um repositório público do GitHub para um diretório local chamado bootstrap. O documento do SSM é chamado StateManagerBootstrap.yml (um documento YAML).

1. Executa o plugin `aws:runDocument` para executar o documento StateManagerBootstrap.yml. Nenhum parâmetro é especificado.

1. Executa o plugin `aws:runDocument` para executar o documento `AWS-ConfigureDocker pre-defined` do MUS. Os parâmetros especificados para instalar o docker na instância.

```
{
  "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\"}"
      }
    }
  ]
}
```

**Mais informações**  
+ Para obter mais informações sobre reinicialização dos servidores e instâncias ao usar Run Command para chamar scripts, consulte [Tratamento de reinicializações ao executar comandos](send-commands-reboot.md).
+ Para obter mais informações sobre os plugins que podem ser adicionados a um documento personalizado do SSM, consulte [Referência de plug-ins de documentos de comando](documents-command-ssm-plugin-reference.md).
+ Se você simplesmente desejar executar um documento em um local remoto (sem criar um documento composto), consulte [Executar documentos do em locais remotos](documents-running-remote-github-s3.md).

# Trabalhar com documentos
<a name="documents-using"></a>

Esta seção contém informações sobre como usar e trabalhar com documentos do SSM.

**Topics**
+ [Comparar versões de documentos do SSM](comparing-versions.md)
+ [Criar um documento do SSM.](create-ssm-console.md)
+ [Excluir documentos do SSM personalizados](deleting-documents.md)
+ [Executar documentos do em locais remotos](documents-running-remote-github-s3.md)
+ [Compartilhar documentos do Systems Manager](documents-ssm-sharing.md)
+ [Pesquisando documentos do SSM](ssm-documents-searching.md)

# Comparar versões de documentos do SSM
<a name="comparing-versions"></a>

Você pode comparar as diferenças de conteúdo entre versões doAWS Systems Manager(SSM) no console Documents do Systems Manager. Ao comparar versões de um documento SSM, as diferenças entre o conteúdo das versões são realçadas.

**Para comparar o conteúdo do documento SSM (console)**

1. Abra o console do AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Na lista de documentos, escolha o documento cujo conteúdo você deseja comparar.

1. No**Conteúdo**, selecione**Comparar versões**E escolha a versão do documento com a qual você deseja comparar o conteúdo.

# Criar um documento do SSM.
<a name="create-ssm-console"></a>

Depois que criar o conteúdo do documento SSM personalizado, conforme descrito em [Escrever conteúdo de documento do](documents-creating-content.md#writing-ssm-doc-content), você poderá usar o console do Systems Manager para criar um documento do SSM usando seu conteúdo.

**Para criar um documento do SSM**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Escolha **Create command or session (Criar comando ou sessão)**.

1. Insira um nome descritivo para o documento.

1. (Opcional) No **Tipo de destino**, especifique o tipo de recursos nos quais o documento pode ser executado.

1. Na lista **Document type (Tipo de documento)**, escolha o tipo de documento que você deseja criar.

1. Exclua os parênteses no campo **Content (Conteúdo)** e cole o conteúdo do documento que você criou anteriormente.

1. (Opcional) Na seção **Tags de documento**, aplique um ou mais pares de nome/valor de chave de tag ao documento.

   Tags são metadados opcionais que você atribui a um recurso. As tags permitem categorizar um recurso de diferentes formas, como por finalidade, proprietário ou ambiente. Por exemplo, você pode querer marcar um documento para identificar o tipo de tarefas que ele executa, o tipo de sistemas operacionais que ele direciona e o ambiente em que ele é executado. Nesse caso, você pode especificar os seguintes pares de nome/valor:
   + `Key=TaskType,Value=MyConfigurationUpdate`
   + `Key=OS,Value=AMAZON_LINUX_2`
   + `Key=Environment,Value=Production`

1. Escolha **Create document (Criar documento)** para salvar o documento.

# Excluir documentos do SSM personalizados
<a name="deleting-documents"></a>

Caso não deseje mais usar um documento do SSM personalizado, você poderá excluí-lo usando o console do AWS Systems Manager. 

**Para excluir um documento do SSM**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Selecione a função que você deseja excluir.

1. Select**Excluir**. Quando solicitado a excluir o documento, selecione**Excluir**.

Para obter exemplos do uso de ferramentas de linha de comando ou SDKs para excluir documentos do SSM, consulte [Usar `DeleteDocument` com o AWS SDK ou a CLI](example_ssm_DeleteDocument_section.md).

# Executar documentos do em locais remotos
<a name="documents-running-remote-github-s3"></a>

Você pode executar documentos do AWS Systems Manager (SSM) em locais remotos usando o documento SSM predefinido `AWS-RunDocument`. Este documento suporta a execução de documentos SSM armazenados nos seguintes locais:
+ Repositórios públicos e privados do GitHub (não há suporte ao GitHub Enterprise)
+ Buckets do Amazon S3
+ Systems Manager

Embora também seja possível executar documentos remotos usando o State Manager ou o Automation, ferramentas do AWS Systems Manager, o procedimento a seguir descreve apenas como executar documentos do SSM remotos usando o AWS Systems Manager Run Command no console do Systems Manager. 

**nota**  
`AWS-RunDocument`O pode ser usado para executar apenas documentos SSM do tipo de comando, não outros tipos, como runbooks de automação. O `AWS-RunDocument` usa o plugin `aws:downloadContent`. Para obter mais informações sobre o plugin `aws:downloadContent`, consulte [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent).

**Atenção**  
`AWS-RunDocument` pode executar o conteúdo do documento de várias origens (documentos do SSM, GitHub, S3, URLs). Ao executar documentos remotos, as permissões do IAM avaliadas são para `ssm:GetDocument` no documento remoto e `ssm:SendCommand` em `AWS-RunDocument`. Se você tiver políticas do IAM que negam acesso a documentos SSM específicos, os usuários com permissões `AWS-RunDocument` ainda poderão executar esses documentos negados passando o conteúdo do documento como parâmetros, que podem não estar sujeitos às mesmas restrições do IAM específicas do documento.  
Para restringir adequadamente a execução de documentos, use uma destas abordagens:  
**Origens aprovadas na lista de permissões**: se você precisar usar a execução de documentos aninhados, restrinja o acesso apenas a origens aprovadas usando controles apropriados para cada tipo de origem: políticas do IAM para controlar `ssm:GetDocument` origens de documentos do SSM, políticas do IAM e buckets do S3 para origens do Amazon S3 e configurações de rede (como endpoints de VPC ou grupos de segurança) para origens públicas da Internet.
**Restrinja o acesso a AWS-RunDocument**: negue `ssm:SendCommand` em `AWS-RunDocument` e qualquer outro documento que use o plug-in `aws:runDocument` em suas políticas do IAM para evitar a execução de documentos aninhados.
**Use limites de permissão**: implemente limites de permissão do IAM para definir o máximo de permissões para os usuários, impedindo que eles executem documentos não autorizados, independentemente do método de execução.
Para obter mais informações sobre as práticas recomendadas do IAM e os limites de permissão, consulte [Limites de permissão para entidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html), no *Guia do usuário do AWS Identity and Access Management*.

**Antes de começar**  
Para executar um documento remoto, você deve primeiro concluir as tarefas a seguir.
+ Crie um documento do Comando SSM e salve-o em um local remoto. Para obter mais informações, consulte . [Criar conteúdo de documento do SSM](documents-creating-content.md)
+ Se você planeja executar um documento remoto armazenado em um repositório privado do GitHub, é necessário criar um parâmetro `SecureString` do Systems Manager para o token de acesso de segurança do GitHub. Não é possível acessar um documento remoto em um repositório privado do GitHub transmitindo manualmente o token via SSH. O token de acesso deve ser passado como um parâmetro `SecureString` do Systems Manager. Para obter mais informações sobre como criar um parâmetro `SecureString`, consulte [Criar parâmetros do Parameter Store no Systems Manager](sysman-paramstore-su-create.md).

## Executar um documento remoto (console)
<a name="documents-running-remote-github-s3-console"></a>

**Para executar um documento remoto**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Run Command**.

1. Selecione **Run command**.

1. Na lista **Document** (Documento), escolha **`AWS-RunDocument`**.

1. Em **Command parameters (Parâmetros de comando)**, em **Source Type (Tipo de origem)**, escolha uma opção. 
   + Se você escolher o **GitHub**, especifique as **Informações da origem** no seguinte formato:

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

     Por exemplo:

     ```
     {
         "owner":"TestUser",
         "repository":"GitHubTestExamples",
         "path":"scripts/python/test-script",
         "getOptions":"branch:exampleBranch",
         "tokenInfo":"{{ssm-secure:my-secure-string-token}}"
     }
     ```
**nota**  
`getOptions` são opções extras para recuperar conteúdo de uma ramificação diferente da principal ou de uma confirmação específica no repositório. O `getOptions` poderá ser omitido se você estiver usando a confirmação mais recente na ramificação principal. O parâmetro `branch` é necessário somente se o documento do SSM estiver armazenado em uma ramificação diferente de `master`.  
Para usar a versão do documento do SSM em uma *confirmação* específica no repositório, use `commitID` com `getOptions` em vez de `branch`. Por exemplo:  

     ```
     "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
     ```
   + Se escolher **S3**, especifique as informações em **Source Info** no formato a seguir:

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

     Por exemplo:

     ```
     {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
     ```
   + Se escolher **SSMDocument**, especifique as informações em **Source Info** no formato a seguir:

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

     Por exemplo:

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

1. No campo **Document Parameters** (Parâmetros do documento), digite os parâmetros para o documento remoto do SSM. Por exemplo, se você executar o documento `AWS-RunPowerShell`, poderá especificar:

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

   Se você executar o documento `AWS-ConfigureAWSPack`, poderá especificar:

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

1. Na seção **Targets** (Destinos), escolha os nós gerenciados nos quais você quer executar essa operação, especificando as tags, selecionando as instâncias ou dispositivos de borda manualmente ou especificando um grupo de recursos.
**dica**  
Se um nó gerenciado que você espera ver não estiver listado, consulte [Solução de problemas de disponibilidade do nó gerenciado](fleet-manager-troubleshooting-managed-nodes.md) para obter dicas de solução de problemas.

1. Para **Other parameters (Outros parâmetros)**:
   + Em **Comment** (Comentário), digite as informações sobre esse comando.
   + Em **Timeout (seconds) (Tempo limite [segundos])**, especifique o número de segundos para o sistema aguardar até a falha de execução do comando total. 

1. Para **Rate control** (Controle de taxa):
   + Em **Concurrency** (Concorrência), especifique um número ou uma porcentagem de nós gerenciados nos quais executar o comando ao mesmo tempo.
**nota**  
Se você selecionou destinos especificando tags aplicadas a instâncias a nós gerenciados ou especificando grupos de recursos da AWS, e não tiver certeza de quantas instâncias são direcionadas, restrinja o número de instâncias que poderão executar o documento ao mesmo tempo, especificando uma porcentagem.
   + Em **Error threshold** (Limite de erro), especifique quando parar de executar o comando em outros nós depois de falhar em alguns ou em uma porcentagem de nós. Por exemplo, se você especificar três erros, o Systems Manager deixará de enviar o comando quando o 4° erro for recebido. Os nós gerenciados que continuam processando o comando também podem enviar erros.

1. (Opcional) Em **Output options (Opções de saída)**, para salvar a saída do comando em um arquivo, selecione a caixa **Write command output to an S3 bucket (Gravar saída do comando em um bucket do S3)**. Digite os nomes de bucket e prefixo (pastas) nas caixas de texto.
**nota**  
As permissões do S3 que concedem a possibilidade de gravar os dados em um bucket do S3 são as do perfil de instância (para instâncias do EC2) ou perfil de serviço do IAM (máquinas ativadas para ambientes híbridos) atribuído à instância, e não as do usuário do IAM que realiza essa tarefa. Para obter mais informações, consulte [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md) ou [Criar um perfil de serviço do IAM para um ambiente híbrido](hybrid-multicloud-service-role.md). Além disso, se o bucket do S3 especificado estiver em uma conta da Conta da AWS diferente, verifique se o perfil da instância ou a função de serviço do IAM associado ao nó gerenciado tenha as permissões necessárias para gravar nesse bucket.

1. Na seção **SNS notifications** (Notificações do SNS), se quiser enviar notificações sobre o status da execução do comando, marque a caixa de seleção **Enable SNS notifications** (Habilitar notificações do SNS).

   Para obter mais informações sobre a configuração de notificações do Amazon SNS para o Run Command, consulte [Monitorar alterações de status do Systems Manager usando as notificações do Amazon SNS](monitoring-sns-notifications.md).

1. Escolha **Executar**.

**nota**  
Para obter mais informações sobre reinicialização dos servidores e instâncias ao usar Run Command para chamar scripts, consulte [Tratamento de reinicializações ao executar comandos](send-commands-reboot.md).

# Compartilhar documentos do Systems Manager
<a name="documents-ssm-sharing"></a>

É possível compartilhar documentos do AWS Systems Manager (SSM) de forma privada ou pública com contas na mesma região da Região da AWS. Para compartilhar um documento específico, modifique as permissões do documento e permita que pessoas específicas acessem o mesmo de acordo com o ID da Conta da AWS. Para compartilhar um documento SSM publicamente, modifique as permissões do documento e especifique `All`. Não é possível compartilhar os documentos de forma pública e privada simultaneamente.

**Atenção**  
Use documentos SSM compartilhados apenas de fontes confiáveis. Ao usar qualquer documento compartilhado, revise cuidadosamente o conteúdo do documento antes de usá-lo para que você entenda como ele mudará a configuração da sua instância. Para obter mais informações sobre melhores práticas de documentos compartilhados, consulte [Práticas recomendadas para documentos compartilhados do SSM](#best-practices-shared). 

**Limitações**  
Ao começar a trabalhar com documentos do SSM, lembre-se das seguintes limitações.
+ Somente o proprietário pode compartilhar um documento.
+ É preciso interromper o compartilhamento de um documento antes de excluí-lo. Para obter mais informações, consulte [Modificar permissões para um documento compartilhado do](#modify-permissions-shared).
+ Você pode compartilhar um documento com um máximo de 1000 contas da . 1000 Contas da AWS. Você pode solicitar um aumento desse limite no [Suporte Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase). Em **Limit type** (Tipo de limite), escolha *EC2 Systems Manager* e descreva o motivo para a solicitação.
+ Você pode compartilhar publicamente um máximo de cinco documentos do . Você pode solicitar um aumento desse limite no [Suporte Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase). Em **Limit type** (Tipo de limite), escolha *EC2 Systems Manager* e descreva o motivo para a solicitação.
+ Os documentos podem ser compartilhados somente com outras contas na mesma Região da AWS. O compartilhamento entre regiões não é compatível.

**Importante**  
No Systems Manager, um documento SSM *pertencente à Amazon* é um documento criado e gerenciado pela própria Amazon Web Services. Os documentos *pertencentes à Amazon* incluem um prefixo como `AWS-*` no nome do documento. O proprietário do documento é considerado a Amazon, e não uma conta de usuário específica em AWS. Esses documentos estão disponíveis publicamente para uso de todos.

Para obter mais informações sobre as cotas de serviço do Systems Manager, consulte [Service Quotas do AWS Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm).

**Topics**
+ [Práticas recomendadas para documentos compartilhados do SSM](#best-practices-shared)
+ [Bloquear compartilhamento público para documentos do SSM](#block-public-access)
+ [Compartilhar um documento do](#ssm-how-to-share)
+ [Modificar permissões para um documento compartilhado do](#modify-permissions-shared)
+ [Usar documentos compartilhados do](#using-shared-documents)

## Práticas recomendadas para documentos compartilhados do SSM
<a name="best-practices-shared"></a>

Reveja as seguintes diretrizes antes de compartilhar ou usar um documento compartilhado. 

**Remover informações confidenciais**  
Reveja seu documento do AWS Systems Manager cuidadosamente e remova todas as informações confidenciais. Por exemplo, verifique se o documento não inclui suas credenciais da AWS. Se você compartilhar um documento com pessoas específicas, esses usuários poderão visualizar as informações no documento. Se você compartilhar um documento publicamente, qualquer pessoa poderá visualizar as informações no documento.

**Bloquear compartilhamento público de documentos**  
Analise todos os documentos do SSM compartilhados publicamente em sua conta e confirme se você deseja continuar compartilhando-os. Para parar de compartilhar um documento com o público, é necessário modificar a configuração de permissões do documento, conforme descrito na seção [Modificar permissões para um documento compartilhado do](#modify-permissions-shared) deste tópico. Ativar a configuração de bloqueio de compartilhamento público não afeta nenhum documento que você esteja compartilhando atualmente com o público. A menos que seu caso de uso exija que você compartilhe documentos com o público, recomendamos ativar a configuração de bloqueio de compartilhamento público para seus documentos do SSM na seção **Preferências** do console de documentos do Systems Manager. Ativar essa configuração impede o acesso indesejado aos documentos do SSM. A configuração de compartilhamento público de bloco é uma configuração de nível de conta que pode diferir para cada Região da AWS.

**Restringir ações do Run Command usando uma política de confiança do IAM**  
Crie uma política do AWS Identity and Access Management (IAM) restritiva para os usuários que terão acesso ao documento. A política do IAM do determina quais documento do SSM um usuário pode ver no console do Amazon Elastic Compute Cloud (Amazon EC2) ou ao chamar `ListDocuments` usando a AWS Command Line Interface (AWS CLI) ou o AWS Tools for Windows PowerShell. A política também restringe as ações que o usuário pode realizar com o documento do . Você pode criar uma política restritiva para que um usuário só possa usar documentos específicos. Para obter mais informações, consulte [Exemplos de política gerenciada pelo cliente](security_iam_id-based-policy-examples.md#customer-managed-policies).

**Ter cuidado ao usar documentos compartilhados do **  
Revise o conteúdo de cada documento compartilhado com você, especialmente documentos públicos, para entender os comandos que serão executados em suas instâncias. Um documento pode ter intencionalmente ou involuntariamente repercussões negativas após sua execução. Se o documento fizer referência a uma rede externa, reveja a origem externa antes de usar o documento. 

**Enviar comandos usando o hash do documento**  
Quando você compartilha um documento, o sistema cria um hash Sha-256 e o atribui ao documento. O sistema também salva um snapshot do conteúdo do documento. Quando você envia um comando usando um documento compartilhado, pode especificar o hash no seu comando para garantir que as seguintes condições sejam verdadeiras:  
+ Você está executando um comando no documento correto do Systems Manager
+ O conteúdo do documento não mudou desde que foi compartilhado com você.
Se o hash não corresponder ao documento especificado ou se o conteúdo do documento compartilhado tiver mudado, o comando retornará uma exceção `InvalidDocument`. Observação: o hash não pode verificar o conteúdo do documento de locais externos.

**Usar o parâmetro de interpolação para melhorar a segurança**  
Para parâmetros de tipo `String` em seus documentos do SSM, use o parâmetro e o valor `interpolationType": "ENV_VAR` para melhorar a segurança contra ataques de injeção de comando, tratando as entradas de parâmetros como literais de string em vez de comandos potencialmente executáveis. Nesse caso, o agente cria uma variável de ambiente denominada `SSM_parameter-name` com o valor do parâmetro. Recomendamos atualizar todos os seus documentos existentes do SSM que incluam parâmetros de tipo `String` para incluir `"interpolationType": "ENV_VAR"`. Para obter mais informações, consulte [Escrever conteúdo de documento do](documents-creating-content.md#writing-ssm-doc-content).

## Bloquear compartilhamento público para documentos do SSM
<a name="block-public-access"></a>

Antes de começar, analise todos os documentos do SSM compartilhados publicamente na sua Conta da AWS e confirme se você deseja continuar compartilhando-os. Para parar de compartilhar um documento do SSM com o público, é necessário modificar a configuração de permissões do documento, conforme descrito na seção [Modificar permissões para um documento compartilhado do](#modify-permissions-shared) deste tópico. Ativar a configuração de bloqueio de compartilhamento público não afeta nenhum documento do SSM que você esteja compartilhando atualmente com o público. Com a configuração de bloqueio de compartilhamento público ativada, você não poderá compartilhar nenhum documento do SSM adicional com o público.

A menos que seu caso de uso exija que você compartilhe documentos com o público, recomendamos que ative a configuração de bloqueio de compartilhamento público para os seus documentos do SSM. Ativar essa configuração impede o acesso indesejado aos documentos do SSM. A configuração de compartilhamento público de bloco é uma configuração de nível de conta que pode diferir para cada Região da AWS. Conclua as tarefas a seguir para bloquear o compartilhamento público de quaisquer documentos do SSM que você esteja compartilhando no momento.

### Bloquear compartilhamento público (console)
<a name="block-public-access-console"></a>

**Para bloquear o compartilhamento público de seus documentos do SSM**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Selecione **Preferences** (Preferências) e, em seguida, escolha **Edit** (Editar) na seção **Block public sharing** (Bloquear compartilhamento público).

1. Selecione **Bloquear compartilhamento público** e, em seguida, selecione **Salvar**. 

### Bloquear compartilhamento público (linha de comando)
<a name="block-public-access-cli"></a>

Abrir o AWS Command Line Interface (AWS CLI) ou AWS Tools for Windows PowerShell no computador local e execute o comando a seguir para bloquear o compartilhamento público de documentos SSM.

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

```
aws ssm update-service-setting  \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --setting-value Disable \
    --region 'The Região da AWS 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 Região da AWS you want to block public sharing in"
```

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

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

------

Confirme se o valor da configuração foi atualizado usando o comando a seguir.

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

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

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

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

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

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

------

### Restringir o acesso para bloquear o compartilhamento público com o IAM
<a name="block-public-access-changes-iam"></a>

Você pode criar políticas do AWS Identity and Access Management (IAM) que impedem os usuários de modificar a configuração de compartilhamento público de blocos. Isso impede que os usuários permitam acesso indesejado aos documentos do SSM. 

Veja a seguir um exemplo de uma política do IAM que impede que os usuários atualizem a configuração de compartilhamento público de bloco. Para usar este exemplo, você deve substituir o exemplo de ID de conta da Amazon Web Services pelo seu próprio ID de conta.

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

****  

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

------

## Compartilhar um documento do
<a name="ssm-how-to-share"></a>

Você pode compartilhar documentos do AWS Systems Manager (SSM) usando o console do Systems Manager. Ao compartilhar documentos do console, é possível compartilhar somente a versão padrão do documento. Também é possível compartilhar documentos SSM de forma programática chamando a operação da API `ModifyDocumentPermission` usando a AWS Command Line Interface (AWS CLI), o AWS Tools for Windows PowerShell ou o AWS SDK. Antes de compartilhar um documento, obtenha os IDs das Conta da AWS das pessoas com quem deseja compartilhar. Você especificará esses IDs de conta quando compartilhar o documento.

### Compartilhar um documento (console)
<a name="share-using-console"></a>

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Na lista de documentos, selecione o documento que você deseja compartilhar e escolha **View details (Visualizar detalhes)**. Na guia **Permissions**, verifique se você é o proprietário do documento. Somente o proprietário de um documento pode compartilhá-lo.

1. Escolha **Editar**.

1. Para compartilhar o comando publicamente, escolha **Public (Público)** e depois **Save (Salvar)**. Para compartilhar o comando de forma privada, escolha **Private** (Privado), insira o ID da Conta da AWS e escolha **Add permission** (Adicionar permissão) e **Save** (Salvar). 

### Compartilhar um documento (linha de comando)
<a name="share-using-cli"></a>

O procedimento a seguir requer que você especifique uma Região da AWS para sua sessão de linha de comando.

1. Abra a AWS CLI ou o AWS Tools for Windows PowerShell no computador local e execute o comando a seguir para especificar suas credenciais. 

   No comando a seguir, substitua *region* por suas próprias informações. Para ver uma lista dos valores de *região* com suporte, consulte a coluna **Region** em [Systems Manager service endpoints](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) no *Referência geral da Amazon Web Services*.

------
#### [ 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. Use o seguinte comando para listar todos os documentos do disponíveis para você. A lista inclui os documentos que você criou e os documentos que foram compartilhados com você.

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

   ```
   aws ssm list-documents
   ```

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

   ```
   aws ssm list-documents
   ```

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

   ```
   Get-SSMDocumentList
   ```

------

1. Use o seguinte comando para obter um documento específico.

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

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

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

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

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

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

------

1. Use o seguinte comando para obter uma descrição do documento.

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

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

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

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

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

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

------

1. Use o seguinte comando para visualizar as permissões do documento.

------
#### [ 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. Use o seguinte comando para modificar as permissões do documento e compartilhá-lo. Você deve ser o proprietário do documento para editar as permissões. Opcionalmente, para documentos compartilhados com IDs de Conta da AWS específicos, é possível especificar uma versão do documento que deseja compartilhar usando o parâmetro `--shared-document-version`. Se você não especificar a versão, o sistema compartilhará a versão `Default` do documento. Se você compartilhar um documento publicamente (com `all`), o comportamento padrão é compartilhar todas as versões do documento especificado. O exemplo de comando a seguir compartilha o documento de forma privada com uma pessoa específica com base no ID da Conta da AWS dessa pessoa.

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

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

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

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

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

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

------

1. Use o seguinte comando para compartilhar um documento publicamente.
**nota**  
Se você compartilhar um documento publicamente (com `all`), o comportamento padrão é compartilhar todas as versões do documento especificado. 

------
#### [ 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')
   ```

------

## Modificar permissões para um documento compartilhado do
<a name="modify-permissions-shared"></a>

Se você compartilhar um comando, os usuários poderão visualizar e usar esse comando até que você remova o acesso ao documento do AWS Systems Manager (SSM) ou exclua esse documento do SSM. No entanto, não é possível excluir um documento que esteja compartilhado. Você deve parar de compartilhá-lo primeiro e depois excluí-lo.

### Parar de compartilhar um documento (console)
<a name="unshare-using-console"></a>

**Parar de compartilhar um documento**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Na lista de documentos, selecione o documento que deseja parar de compartilhar e escolha **Detalhes**. Na guia **Permissões**, verifique se você é o proprietário do documento. Somente o proprietário de um documento pode parar de compartilhá-lo.

1. Escolha **Editar**.

1. Selecione **X** para excluir o ID da Conta da AWS que não deve mais ter acesso ao comando e escolha **Save** (Salvar). 

### Parar de compartilhar um documento (linha de comando)
<a name="unshare-using-cli"></a>

Abra a AWS CLI ou o AWS Tools for Windows PowerShell no computador local e execute o comando a seguir para parar o compartilhamento de um comando.

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

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

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

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

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

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

------

## Usar documentos compartilhados do
<a name="using-shared-documents"></a>

Quando você compartilha um documento do AWS Systems Manager, o sistema gera um nome do recurso da Amazon (ARN) e o atribui ao comando. Se você selecionar e executar um documento compartilhado do console do Systems Manager, não verá o ARN. Porém, para executar um documento SSM compartilhado usando um outro método, não o console do Systems Manager, você deve especificar o ARN completo do documento para o parâmetro de solicitação `DocumentName`. Você visualiza o ARN completo de um documento do SSM ao executar o comando para listar documentos. 

**nota**  
Não é necessário especificar ARNs para documentos públicos da AWS (documentos que começam com `AWS-*`) ou comandos de sua propriedade.

### Usar um documento compartilhado do (linha de comando)
<a name="using-shared-documents-cli"></a>

 **Para listar todos os documentos públicos do Systems Manager** 

------
#### [ 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)
```

------

 **Para listar documentos SSM privados que foram compartilhados com você** 

------
#### [ 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)
```

------

 **Para listar todos os documentos SSM disponíveis para você** 

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

```
aws ssm list-documents
```

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

```
aws ssm list-documents
```

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

```
Get-SSMDocumentList
```

------

 **Para obter informações sobre um documento SSM que foi compartilhado com você** 

------
#### [ 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
```

------

 **Para executar um documento SSM compartilhado** 

------
#### [ 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
```

------

# Pesquisando documentos do SSM
<a name="ssm-documents-searching"></a>

Você pode pesquisar aAWS Systems Manager(SSM) para documentos SSM usando pesquisa de texto livre ou uma pesquisa baseada em filtro. Também é possível marcar documentos como favoritos para ajudar você a encontrar documentos do SSM usados ​​com frequência. As seções a seguir descrevem como usar esses recursos.

## Usando a pesquisa de texto livre
<a name="ssm-documents-searching-free-text"></a>

A caixa de pesquisa na página **Documents** (Documentos) do Systems Manager oferece suporte à pesquisa de texto livre. A pesquisa de texto livre compara o termo ou termos de pesquisa inseridos com o nome do documento em cada documento do SSM. Se você inserir um único termo de pesquisa, por exemplo**ansible**, o Systems Manager retorna todos os documentos SSM onde esse termo foi descoberto. Se você inserir vários termos de pesquisa, o Systems Manager pesquisará usando um`OR`instrução. Por exemplo, se você especificar **ansible** e **linux**, a pesquisa retornará todos os documentos com *qualquer uma das* palavras-chave em seu nome.

Se você inserir um termo de pesquisa de texto livre e escolher uma opção de pesquisa, como**Tipo de plataforma**, em seguida, a pesquisa usa um`AND`e retorna todos os documentos com a palavra-chave em seu nome e o tipo de plataforma especificado.

**nota**  
Observe os seguintes detalhes sobre a pesquisa de texto livre.  
A pesquisa de texto livre *não* diferencia maiúsculas de minúsculas.
Os termos de pesquisa exigem um mínimo de três caracteres e têm um máximo de 20 caracteres.
A pesquisa de texto livre aceita até cinco termos de pesquisa.
Se você inserir um espaço entre termos de pesquisa, o sistema incluirá o espaço durante a pesquisa.
Você pode combinar a pesquisa de texto livre com outras opções de pesquisa, como**Tipo de documento**ou**Tipo de plataforma**.
O**Prefixo do Nome do documento**O filtro e a pesquisa de texto livre não podem ser usados juntos. Eles são mutuamente exclusivos.

**Para pesquisar um documento do SSM**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Insira os termos da pesquisa na caixa de pesquisa e pressione Enter.

### Executando pesquisa de documentos de texto livre usando o comando AWS CLI
<a name="ssm-documents-searching-free-text-cli"></a>

**Para executar uma pesquisa de documento de texto livre usando a CLI**

1. Instale e configure a AWS Command Line Interface (AWS CLI), caso ainda não o tenha feito.

   Para obter informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Para executar a pesquisa de documento de texto livre com um único termo, execute o comando a seguir. Neste comando, substitua*search\$1term*com suas próprias informações.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term"
   ```

   Aqui está um exemplo.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg" --region us-east-2
   ```

   Para pesquisar usando vários termos que criam um`AND`, execute o seguinte comando. Neste comando, substitua*search\$1term\$11*e*search\$1term\$12*com suas próprias informações.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term_1","search_term_2","search_term_3" --region us-east-2
   ```

   Aqui está um exemplo.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg","aws-ec2","restart" --region us-east-2
   ```

## Usar filtros
<a name="ssm-documents-searching-filters"></a>

A página **Documents** (Documentos) do Systems Manager exibe automaticamente os filtros a seguir quando você escolhe a caixa de pesquisa. 
+ Prefixo do nome do documento
+ Tipos de plataforma
+ Tipo de documento
+ Chave de tag

![\[Opções de filtro na página SSM Documents (Documentos do SSM).\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/images/ssm-documents-filters-1.png)


Você pode procurar documentos SSM usando um único filtro. Se você quiser retornar um conjunto mais específico de documentos SSM, você pode aplicar vários filtros. Veja a seguir um exemplo de pesquisa que usa os **Tipos de plataforma** e os filtros do **Prefixo do nome do documento**.

![\[Aplicar várias opções de filtro à página SSM Documents (Documentos do SSM).\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/images/ssm-documents-filters-2.png)


Se você aplicar vários filtros, o Systems Manager criará instruções de pesquisa diferentes com base nos filtros escolhidos: 
+ Se você aplicar o*Igual*filtrar várias vezes, por exemplo**Prefixo do nome do documento**e, em seguida, o Systems Manager procura utilizando um`OR`instrução. Por exemplo, se você especificar um filtro **Document name prefix**=**AWS** e um segundo filtro **Document name prefix**=**Lambda**, a pesquisa retornará todos os documentos com o prefixo "`AWS`" e todos os documentos com o prefixo "`Lambda`".
+ Se você aplicar filtros *diferentes*, por exemplo **Prefixo do nome do documento** e **Tipos de plataforma**, o Systems Manager fará a busca utilizando uma instrução `AND`. Por exemplo, se você especificar um filtro **Prefixo do nome do documento**=**AWS** e um filtro **Tipo de plataforma**=**Linux**, a pesquisa retornará todos os documentos com o prefixo "`AWS`" que forem específicos da plataforma Linux.

**nota**  
As pesquisas que usam filtros diferenciam maiúsculas de minúsculas 

## Como adicionar documentos aos seus favoritos
<a name="favorite-documents"></a>

Para ajudar você a encontrar documentos do SSM usados ​​com frequência, adicione-os aos seus favoritos. É possível adicionar até 20 documentos como favoritos por tipo de documento, Conta da AWS e Região da AWS. Você pode escolher, modificar e visualizar seus favoritos nos documentos do Console de gerenciamento da AWS. Os procedimentos a seguir descrevem como escolher, modificar e visualizar seus favoritos.

**Como adicionar um documento do SSM aos favoritos**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Selecione o ícone de estrela ao lado do nome do documento que deseja adicionar como favorito.

**Como remover um documento do SSM dos seus favoritos**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Desmarque o ícone de estrela ao lado do nome do documento que deseja remover dos seus favoritos.

**Como visualizar seus favoritos nos documentos do Console de gerenciamento da AWS**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Selecione a guia **Favoritos**.

# Solução de problemas de tratamento de parâmetros
<a name="parameter-troubleshooting"></a>

## Problemas comuns de tratamento de parâmetros
<a name="common-parameter-issues"></a>

**Variáveis de ambiente não disponíveis durante a execução**  
**Problema:** os comandos falham porque as variáveis de ambiente (`SSM_parameter-name`) não foram encontradas.  
**Causas possíveis:**  
+ A versão do SSM Agent não é compatível com a interpolação de variáveis de ambiente
+ `interpolationType` não está definido como `ENV_VAR`
+ O nome do parâmetro não corresponde ao nome da variável de ambiente esperada
**Solução:**  
+ Verifique se a versão do SSM Agent é 3.3.2746.0 ou posterior
+ Adicione uma lógica de fallback para as versões mais antigas do agente:

  ```
  if [ -z "${SSM_parameterName+x}" ]; then
      export SSM_parameterName="{{parameterName}}"
  fi
  ```

**Valores de parâmetros com caracteres especiais**  
**Problema:** os comandos falham quando os valores dos parâmetros contêm espaços, aspas ou outros caracteres especiais.  
**Solução:**  
+ Use as aspas adequadas ao referenciar variáveis de ambiente:

  ```
  # Correct
  echo "$SSM_parameter-name"
  
  # Incorrect
  echo $SSM_parameter-name
  ```
+ Adicione validação de entrada usando `allowedPattern` para restringir caracteres especiais

**Comportamento inconsistente entre plataformas**  
**Problema:** o tratamento de parâmetros funciona de forma diferente nos sistemas Linux e Windows Server.  
**Solução:**  
+ Use a sintaxe da variável de ambiente específica da plataforma:

  ```
  # PowerShell
  $env:SSM_parameter-name
  
  # Bash
  $SSM_parameter-name
  ```
+ Use verificações de pré-condições específicas da plataforma em seu documento

**Valores dos parâmetros não foram devidamente escapados**  
**Problema:** vulnerabilidades de injeção de comando, apesar de usar a interpolação de variáveis de ambiente.  
**Solução:**  
+ Sempre use o escape adequado ao incluir valores de parâmetros nos comandos:

  ```
  # Correct
  mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\""
  
  # Incorrect
  mysql_command="mysql -u $SSM_username -p$SSM_password"
  ```

## Dicas de validação de parâmetros
<a name="parameter-validation"></a>

Use estas técnicas para validar o tratamento de parâmetros:

1. Verifique a disponibilidade de variáveis de ambiente:

   ```
   #!/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. Verifique os padrões dos parâmetros:

   ```
   parameters:
     myParameter:
       type: String
       allowedPattern: "^[a-zA-Z0-9_-]+$"
       description: "Test this pattern with sample inputs"
   ```

1. Inclua o tratamento de erros:

   ```
   if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then
       echo "Parameter validation failed"
       exit 1
   fi
   ```