

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# セッションドキュメントスキーマ
<a name="session-manager-schema"></a>

次の情報では、セッションドキュメントのスキーマ要素について説明します。AWS Systems Manager Session Manager では、セッションドキュメントを使用して、標準セッション、ポート転送セッション、対話型コマンドを実行するセッションなど、開始するセッションの種類を決定します。

 [schemaVersion](#version)   
セッションドキュメントのスキーマバージョン。セッションドキュメントはバージョン 1.0 のみがサポートされています。  
型: 文字列  
必須: はい

 [description](#descript)   
セッションドキュメントついてに指定する説明。たとえば、「Session Manager でポート転送セッションを開始するドキュメント」などです。  
タイプ: 文字列。  
必須: いいえ

 [sessionType](#type)   
セッションドキュメントを確立するために使用されるセッションの種類。  
型: 文字列  
必須: はい  
有効な値: `InteractiveCommands` \$1 `NonInteractiveCommands` \$1 `Port` \$1 `Standard_Stream`

 [inputs](#in)   
このセッションドキュメントを使用して確立されたセッションに使用するセッション設定。`Standard_Stream` セッションの作成に使用されるセッションドキュメントの場合、この要素は必要です。  
型: StringMap  
必須: いいえ    
 [s3BucketName](#bucket)   
セッションの最後にセッションログを送信する宛先となる Amazon Simple Storage Service (Amazon S3) バケット。  
型: 文字列  
必須: いいえ  
 [s3KeyPrefix](#prefix)   
`s3BucketName` 入力で指定した Amazon S3 バケットにログを送信するときに使用するプレフィックス。Amazon S3 に保存されたオブジェクトで共有プレフィックスを使用する方法の詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[S3 バケットのフォルダの使用方法](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html)」を参照してください。  
タイプ: 文字列。  
必須: いいえ  
 [s3EncryptionEnabled](#s3Encrypt)   
`true` に設定すると、 `s3BucketName` 入力で指定した Amazon S3 バケットは暗号化する必要があります。  
タイプ: ブール値  
必須: はい  
 [cloudWatchLogGroupName](#logGroup)   
セッションの最後にセッションログを送信する宛先となる Amazon CloudWatch Logs (CloudWatch Logs ) グループの名前。  
型: 文字列  
必須: いいえ  
 [cloudWatchEncryptionEnabled](#cwEncrypt)   
`true` に設定すると、 `cloudWatchLogGroupName` 入力で指定したロググループは暗号化する必要があります。  
タイプ: ブール値  
必須: はい  
 [cloudWatchStreamingEnabled](#cwStream)   
`true` に設定すると、セッションデータログの連続ストリームが、`cloudWatchLogGroupName` 入力で指定したロググループに送信されます。`false` に設定した場合、セッションログは、セッションの終了時に `cloudWatchLogGroupName` 入力で指定したロググループに送信されます。  
タイプ: ブール値  
必須: はい  
 [kmsKeyId](#kms)   
ローカルクライアントマシンと接続先の Amazon Elastic Compute Cloud (Amazon EC2) マネージドノード間のデータをさらに暗号化するために使用する AWS KMS key の ID。  
タイプ: 文字列。  
必須: いいえ  
 [runAsEnabled](#run)   
`true` に設定した場合、 `runAsDefaultUser` 入力で接続先のマネージドノードに存在するユーザーアカウントを指定する必要があります。そうしないと、セッションが開始されません。デフォルトでは、AWS Systems Manager SSM Agent によって作成された `ssm-user` アカウントを使用してセッションが開始されます。Run As 機能は Linux および macOS のマネージドノードに接続する場合のみサポートされます。  
タイプ: ブール値  
必須: はい  
 [runAsDefaultUser](#runUser)   
`runAsEnabled` 入力が `true` に設定されている場合、Linux および macOS のマネージドノードでセッションを開始するユーザーアカウント名。この入力に指定するユーザーアカウントは接続先のマネージドノードに存在する必要があります。存在しない場合、セッションが開始されません。使用する OS ユーザーアカウントを決定する際、 Session Manager は、IAM ユーザーのセッションタグの `SSMSessionRunAs` タグ、次に引き受けた IAM ロールの `SSMSessionRunAs` タグ、最後にセッション設定からのこの `runAsDefaultUser` 値の順序で確認します。詳細については、「[Linux と macOS のマネージドノードで Run As サポートを有効にする](session-preferences-run-as.md)」を参照してください。  
型: 文字列  
必須: いいえ  
 [idleSessionTimeout](#timeout)   
セッションが終了する前に許可する非アクティブの時間。この入力は分単位で測定されます。  
型: 文字列  
有効な値: 1～60  
必須: いいえ  
 [maxSessionDuration](#maxDuration)   
セッションが終了する前に許可する最大時間。この入力は分単位で測定されます。  
タイプ: 文字列。  
有効な値: 1～1440  
必須: いいえ  
 [shellProfile](#shell)   
シェルプリファレンス、環境変数、作業ディレクトリ、セッション開始時の複数のコマンドの実行など、セッション内で適用する、オペレーティングシステムごとに指定する設定。  
型: StringMap  
必須: いいえ    
 [windows](#win)   
Windows Server のマネージドノード上のセッションに指定するシェルプリファレンス、環境変数、作業ディレクトリ、コマンド。  
タイプ: 文字列  
必須: いいえ  
 [linux](#lin)   
Linux および macOS のマネージドノード上のセッションに指定するシェルプリファレンス、環境変数、作業ディレクトリ、コマンド。  
タイプ: 文字列  
必須: いいえ

 [parameters](#param)   
ドキュメントが受け入れるパラメータを定義するオブジェクト。ドキュメントパラメータの定義の詳細については、[最上位のデータ要素](documents-syntax-data-elements-parameters.md#top-level) の「**パラメータ**」を参照してください。頻繁に参照するパラメータの場合は、そのパラメータを Systems Manager Parameter Store に保存してそこを参照することをお勧めします。`String` および `StringList` Parameter Store パラメータは、ドキュメントの本セクションで参照できます。`SecureString`Parameter Store パラメータは、ドキュメントの本セクションでは参照できません。次の形式を使用して、Parameter Store パラメータを参照できます。  

```
{{ssm:parameter-name}}
```
Parameter Storeの詳細については、「[AWS Systems Manager Parameter Store](systems-manager-parameter-store.md)」を参照してください。  
型: StringMap  
必須: いいえ

 [properties](#props)   
指定した値を持つオブジェクトで、 `StartSession` API オペレーションで使用されるもの。  
`InteractiveCommands` セッションに使用されるセッションドキュメントの場合、properties オブジェクトには、指定したオペレーティングシステムで実行するコマンドが含まれます。また、`runAsElevated` ブール値プロパティを使用して、コマンドを `root` として実行するかどうかを決定することもできます。詳細については、「[セッションでのコマンドへのアクセスを制限する](session-manager-restrict-command-access.md)」を参照してください。  
`Port` セッションに使用されるセッションドキュメントの場合、properties オブジェクトには、トラフィックのリダイレクト先のポート番号が含まれます。例については、本トピックで後ほど取り扱う `Port` タイプのセッションドキュメントの例を参照してください。  
型: StringMap  
必須: いいえ

`Standard_Stream` タイプのセッションドキュメントの例

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

```
---
schemaVersion: '1.0'
description: Document to hold regional settings for Session Manager
sessionType: Standard_Stream
inputs:
  s3BucketName: ''
  s3KeyPrefix: ''
  s3EncryptionEnabled: true
  cloudWatchLogGroupName: ''
  cloudWatchEncryptionEnabled: true
  cloudWatchStreamingEnabled: true
  kmsKeyId: ''
  runAsEnabled: true
  runAsDefaultUser: ''
  idleSessionTimeout: '20'
  maxSessionDuration: '60'
  shellProfile:
    windows: ''
    linux: ''
```

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

```
{
    "schemaVersion": "1.0",
    "description": "Document to hold regional settings for Session Manager",
    "sessionType": "Standard_Stream",
    "inputs": {
        "s3BucketName": "",
        "s3KeyPrefix": "",
        "s3EncryptionEnabled": true,
        "cloudWatchLogGroupName": "",
        "cloudWatchEncryptionEnabled": true,
        "cloudWatchStreamingEnabled": true,
        "kmsKeyId": "",
        "runAsEnabled": true,
        "runAsDefaultUser": "",
        "idleSessionTimeout": "20",
        "maxSessionDuration": "60",
        "shellProfile": {
            "windows": "date",
            "linux": "pwd;ls"
        }
    }
}
```

------

`InteractiveCommands` タイプのセッションドキュメントの例

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

```
---
schemaVersion: '1.0'
description: Document to view a log file on a Linux instance
sessionType: InteractiveCommands
parameters:
  logpath:
    type: String
    description: The log file path to read.
    default: "/var/log/amazon/ssm/amazon-ssm-agent.log"
    allowedPattern: "^[a-zA-Z0-9-_/]+(.log)$"
properties:
  linux:
    commands: "tail -f {{ logpath }}"
    runAsElevated: true
```

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

```
{
    "schemaVersion": "1.0",
    "description": "Document to view a log file on a Linux instance",
    "sessionType": "InteractiveCommands",
    "parameters": {
        "logpath": {
            "type": "String",
            "description": "The log file path to read.",
            "default": "/var/log/amazon/ssm/amazon-ssm-agent.log",
            "allowedPattern": "^[a-zA-Z0-9-_/]+(.log)$"
        }
    },
    "properties": {
        "linux": {
            "commands": "tail -f {{ logpath }}",
            "runAsElevated": true
        }
    }
}
```

------

`Port` タイプのセッションドキュメントの例

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

```
---
schemaVersion: '1.0'
description: Document to open given port connection over Session Manager
sessionType: Port
parameters:
  paramExample:
    type: string
    description: document parameter
properties:
  portNumber: anyPortNumber
```

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

```
{
    "schemaVersion": "1.0",
    "description": "Document to open given port connection over Session Manager",
    "sessionType": "Port",
    "parameters": {
        "paramExample": {
            "type": "string",
            "description": "document parameter"
        }
    },
    "properties": {
        "portNumber": "anyPortNumber"
    }
}
```

------

特殊文字を使用したセッションドキュメントの例

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

```
---
schemaVersion: '1.0'
description: Example document with quotation marks
sessionType: InteractiveCommands
parameters:
  Test:
    type: String
    description: Test Input
    maxChars: 32
properties:
  windows:
    commands: |
        $Test = '{{ Test }}'
        $myVariable = \"Computer name is $env:COMPUTERNAME\"
        Write-Host "Test variable: $myVariable`.`nInput parameter: $Test"
    runAsElevated: false
```

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

```
{
   "schemaVersion":"1.0",
   "description":"Test document with quotation marks",
   "sessionType":"InteractiveCommands",
   "parameters":{
      "Test":{
         "type":"String",
         "description":"Test Input",
         "maxChars":32
      }
   },
   "properties":{
      "windows":{
         "commands":[
            "$Test = '{{ Test }}'",
            "$myVariable = \\\"Computer name is $env:COMPUTERNAME\\\"",
            "Write-Host \"Test variable: $myVariable`.`nInput parameter: $Test\""
         ],
         "runAsElevated":false
      }
   }
}
```

------