

• AWS Systems Manager CloudWatch Dasbor tidak akan lagi tersedia setelah 30 April 2026. Pelanggan dapat terus menggunakan CloudWatch konsol Amazon untuk melihat, membuat, dan mengelola CloudWatch dasbor Amazon mereka, seperti yang mereka lakukan hari ini. Untuk informasi selengkapnya, lihat [dokumentasi CloudWatch Dasbor Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat konten dokumen SSM
<a name="documents-creating-content"></a>

Jika dokumen AWS Systems Manager publik tidak melakukan semua tindakan yang ingin Anda lakukan pada AWS sumber daya Anda, Anda dapat membuat dokumen SSM Anda sendiri. Anda juga dapat melakukan klon dokumen SSM menggunakan konsol. Pengandaan dokumen dengan menyalin konten dari dokumen yang ada ke dokumen baru yang dapat Anda modifikasi. Saat membuat atau mengkloning dokumen, konten dokumen tidak boleh melebihi 64KB. Kuota ini juga mencakup konten yang ditentukan untuk parameter input saat runtime. Saat Anda membuat dokumen `Command` atau `Policy`, sebaiknya gunakan skema versi 2.2 atau yang terbaru sehingga Anda dapat memanfaatkan fitur terbaru, seperti pengeditan dokumen, versioning otomatis, pengurutan, dan banyak lagi.

## Menulis konten dokumen SSM
<a name="writing-ssm-doc-content"></a>

Untuk membuat konten dokumen SSM Anda sendiri, penting untuk memahami skema yang berbeda, fitur, plugin, dan sintaks yang tersedia untuk dokumen SSM. Kami mensarankan untuk membiasakan diri dengan sumber daya berikut.
+  [Menulis AWS Systems Manager dokumen Anda sendiri](https://aws.amazon.com/blogs//mt/writing-your-own-aws-systems-manager-documents/) 
+  [Elemen dan parameter data](documents-syntax-data-elements-parameters.md) 
+  [Skema, fitur, dan contoh](documents-schemas-features.md) 
+  [Referensi plugin dokumen perintah](documents-command-ssm-plugin-reference.md) 
+  [Referensi tindakan Otomatisasi Systems Manager](automation-actions.md) 
+  [Variabel sistem Otomatisasi](automation-variables.md) 
+  [Contoh runbook tambahan](automation-document-examples.md) 
+  [Bekerja dengan runbook Otomatisasi Systems Manager](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) Menggunakan AWS Toolkit for Visual Studio Code 
+  [Pengalaman desain visual untuk runbook Otomasi](automation-visual-designer.md) 
+  [Menggunakan skrip di runbook](automation-document-script-considerations.md) 

AWS Dokumen SSM yang telah ditentukan sebelumnya mungkin melakukan beberapa tindakan yang Anda butuhkan. Anda dapat memanggil dokumen-dokumen ini dengan menggunakan plugin `aws:runDocument`, `aws:runCommand`, atau `aws:executeAutomation` dalam dokumen SSM kustom Anda, tergantung pada jenis dokumen. Anda juga dapat menyalin sebagian dari dokumen tersebut ke dalam dokumen SSM kustom, dan mengedit konten tersebut untuk memenuhi kebutuhan Anda.

**Tip**  
Saat membuat konten dokumen SSM, Anda dapat mengubah konten dan memperbarui dokumen SSM Anda beberapa kali saat pengujian. Perintah berikut dapat memperbarui dokumen SSM dengan konten terbaru Anda, dan memperbarui versi default dokumen ke versi terbaru dari dokumen.  
Perintah Linux dan Windows menggunakan alat baris perintah `jq` untuk menyaring data respons 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
```

### Praktik terbaik keamanan untuk dokumen SSM
<a name="ssm-document-security-practices"></a>

Saat membuat dokumen SSM, ikuti praktik terbaik keamanan ini untuk membantu mencegah injeksi perintah dan memastikan penanganan parameter yang aman:
+ Gunakan interpolasi variabel lingkungan untuk parameter string yang akan digunakan dalam perintah atau skrip. Tambahkan `interpolationType` properti dengan nilai `ENV_VAR` ke parameter string Anda:

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

  Anda dapat lebih meningkatkan keamanan dokumen SSM Anda dengan menentukan bahwa tanda kutip ganda tidak diterima dalam nilai yang disampaikan oleh interpolasi:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR",
              "allowedPattern": "^[^"]*$"
      }
  }
  ```
+ Saat menggunakan bahasa yang ditafsirkan seperti Python, Ruby, atau Node.js, parameter referensi menggunakan sintaks variabel lingkungan yang sesuai:

  ```
  # Python example
  import os
  command = os.environ['SSM_Message']
  ```
+ Untuk kompatibilitas mundur dengan versi yang lebih lama (sebelum SSM Agent versi 3.3.2746.0), sertakan logika fallback untuk variabel lingkungan:

  ```
  if [ -z "${SSM_command+x}" ]; then
      export SSM_command="{{command}}"
  fi
  ```
+ Gabungkan interpolasi variabel lingkungan dengan `allowedPattern` validasi input tambahan. Dalam contoh berikut, `allowedPattern` nilai secara `^[^"]*$` khusus mencegah tanda kutip ganda dalam nilai string:

  ```
  {
      "command": {
          "type": "String",
          "interpolationType": "ENV_VAR",
          "allowedPattern": "^[a-zA-Z0-9_-]+$"
      }
  }
  ```
+ Sebelum menerapkan dokumen SSM Anda, verifikasi pertimbangan keamanan berikut:
  + Semua parameter string yang menerima input pengguna menggunakan interpolasi variabel lingkungan bila sesuai.
  + Validasi input diimplementasikan menggunakan `allowedPattern` jika memungkinkan.
  + Dokumen tersebut mencakup penanganan kesalahan yang sesuai untuk pemrosesan parameter.
  + Kompatibilitas mundur dipertahankan untuk lingkungan yang menggunakan SSM Agent versi yang lebih lama.

Untuk informasi tentang sumber daya AWS milik layanan yang diakses Systems Manager dan cara mengonfigurasi kebijakan perimeter data, lihat. [Perimeter data di AWS Systems Manager](data-perimeters.md)

## Mengkloning dokumen SSM
<a name="cloning-ssm-document"></a>

Anda dapat mengkloning AWS Systems Manager dokumen menggunakan konsol Systems Manager Documents untuk membuat dokumen SSM. Mengkloning dokumen SSM menyalin konten dari dokumen yang ada ke dokumen baru yang dapat Anda modifikasi. Anda tidak dapat mengkloning dokumen yang lebih besar dari 64KB.

**Untuk mengkloning dokumen SSM**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Dokumen**.

1. Di kotak pencarian, masukkan nama dokumen yang ingin Anda kloning.

1. Pilih nama dokumen yang ingin Anda kloning, lalu pilih **Dokumen pengkloning** dalam **Actions** dropdown. 

1. Memodifikasi dokumen yang Anda inginkan, dan kemudian pilih **Buat dokumen** untuk menyimpan dokumen. 

Setelah menulis konten dokumen SSM Anda, Anda dapat menggunakan konten Anda untuk membuat dokumen SSM menggunakan salah satu metode berikut.

**Topics**
+ [Menulis konten dokumen SSM](#writing-ssm-doc-content)
+ [Mengkloning dokumen SSM](#cloning-ssm-document)
+ [Membuat dokumen gabungan](#documents-creating-composite)

## Membuat dokumen gabungan
<a name="documents-creating-composite"></a>

Dokumen *komposit* AWS Systems Manager (SSM) adalah dokumen kustom yang melakukan serangkaian tindakan dengan menjalankan satu atau lebih dokumen SSM sekunder. Dokumen komposit mempromosikan *Infrastruktur sebagai code* dengan memungkinkan Anda untuk membuat satu set standar dokumen SSM untuk tugas-tugas umum seperti boot-strapping perangkat lunak atau penggabungan domain instans. Anda kemudian dapat membagikan dokumen-dokumen ini Akun AWS secara bersamaan Wilayah AWS untuk mengurangi pemeliharaan dokumen SSM dan memastikan konsistensi.

Sebagai contoh, Anda dapat membuat dokumen komposit untuk melakukan tindakan berikut:

1. Menginstal semua patch dalam daftar yang izinkan.

1. Menginstal perangkat lunak antivirus.

1. Mengunduh skrip dari GitHub dan menjalankannya.

Dalam contoh ini, dokumen SSM kustom Anda mencakup plugin berikut untuk melakukan tindakan ini:

1. `aws:runDocument`Plugin untuk menjalankan `AWS-RunPatchBaseline` dokumen, yang menginstal semua memungkinkan patch terdaftar.

1. Plugin `aws:runDocument` untuk menjalankan dokumen `AWS-InstallApplication`, yang menginstal perangkat lunak antivirus.

1. `aws:downloadContent`Plugin untuk mengunduh skrip dari GitHub dan menjalankannya.

Dokumen komposit dan sekunder dapat disimpan di Systems Manager, GitHub (repositori publik dan pribadi), atau Amazon S3. Dokumen komposit dan dokumen sekunder dapat dibuat di JSON atau YAML. 

**catatan**  
Dokumen komposit hanya dapat menjalankan hingga kedalaman maksimum tiga dokumen. Ini berarti bahwa dokumen komposit dapat memanggil dokumen turunan; dan dokumen turunan dapat memanggil satu dokumen terakhir.

Untuk membuat dokumen komposit, tambahkan plugin [`aws:runDocument`](documents-command-ssm-plugin-reference.md#aws-rundocument) dalam dokumen SSM kustom dan tentukan input yang diperlukan. Berikut ini adalah contoh dokumen komposit yang melakukan tindakan berikut:

1. Menjalankan [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent) plugin untuk mengunduh dokumen SSM dari repositori GitHub publik ke direktori lokal yang disebut bootstrap. Dokumen SSM disebut StateManagerBootstrap .yml/dokumen YAMM.

1. Menjalankan `aws:runDocument` plugin untuk menjalankan StateManagerBootstrap dokumen.yl. Tidak ada parameter yang ditentukan.

1. Menjalankan plugin `aws:runDocument` untuk menjalankan dokumen SSM `AWS-ConfigureDocker pre-defined`. Parameter yang ditentukan untuk menginstal Docker pada instans.

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

**Info lebih lanjut**  
+ Untuk informasi tentang me-reboot server dan instance saat menggunakan Run Command untuk memanggil skrip, lihat. [Menangani reboot saat menjalankan perintah](send-commands-reboot.md)
+ Untuk informasi selengkapnya tentang plugin yang dapat Anda tambahkan ke dokumen SSM kustom, lihat [Referensi plugin dokumen perintah](documents-command-ssm-plugin-reference.md).
+ Jika Anda hanya ingin menjalankan dokumen dari lokasi jarak jauh (tanpa membuat dokumen komposit), lihat [Menjalankan dokumen dari lokasi terpencil](documents-running-remote-github-s3.md).