セッションドキュメントスキーマ - AWS Systems Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

セッションドキュメントスキーマ

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

schemaVersion

セッションドキュメントのスキーマバージョン。セッションドキュメントはバージョン 1.0 のみがサポートされています。

型: 文字列

必須: はい

description

セッションドキュメントついてに指定する説明。たとえば、「Session Manager でポート転送セッションを開始するドキュメント」などです。

タイプ: 文字列。

必須: いいえ

sessionType

セッションドキュメントを確立するために使用されるセッションの種類。

型: 文字列

必須: はい

有効な値: InteractiveCommands | NonInteractiveCommands | Port | Standard_Stream

inputs

このセッションドキュメントを使用して確立されたセッションに使用するセッション設定。Standard_Stream セッションの作成に使用されるセッションドキュメントの場合、この要素は必要です。

型: StringMap

必須: いいえ

s3BucketName

セッションの最後にセッションログを送信する宛先となる Amazon Simple Storage Service (Amazon S3) バケット。

型: 文字列

必須: いいえ

s3KeyPrefix

s3BucketName 入力で指定した Amazon S3 バケットにログを送信するときに使用するプレフィックス。Amazon S3 に保存されたオブジェクトで共有プレフィックスを使用する方法の詳細については、Amazon Simple Storage Service ユーザーガイドの「S3 バケットのフォルダの使用方法」を参照してください。

タイプ: 文字列。

必須: いいえ

s3EncryptionEnabled

true に設定すると、 s3BucketName 入力で指定した Amazon S3 バケットは暗号化する必要があります。

タイプ: ブール値

必須: はい

cloudWatchLogGroupName

セッションの最後にセッションログを送信する宛先となる Amazon CloudWatch Logs (CloudWatch Logs ) グループの名前。

型: 文字列

必須: いいえ

cloudWatchEncryptionEnabled

true に設定すると、 cloudWatchLogGroupName 入力で指定したロググループは暗号化する必要があります。

タイプ: ブール値

必須: はい

cloudWatchStreamingEnabled

true に設定すると、セッションデータログの連続ストリームが、cloudWatchLogGroupName 入力で指定したロググループに送信されます。false に設定した場合、セッションログは、セッションの終了時に cloudWatchLogGroupName 入力で指定したロググループに送信されます。

タイプ: ブール値

必須: はい

kmsKeyId

ローカルクライアントマシンと接続先の Amazon Elastic Compute Cloud (Amazon EC2) マネージドノード間のデータをさらに暗号化するために使用する AWS KMS key の ID。

タイプ: 文字列。

必須: いいえ

runAsEnabled

true に設定した場合、 runAsDefaultUser 入力で接続先のマネージドノードに存在するユーザーアカウントを指定する必要があります。そうしないと、セッションが開始されません。デフォルトでは、AWS Systems Manager SSM Agent によって作成された ssm-user アカウントを使用してセッションが開始されます。Run As 機能は Linux のマネージドノードに接続する場合のみサポートされます。

型: ブール

必須: はい

runAsDefaultUser

runAsEnabled 入力が true に設定されている場合、Linux のマネージドノードでセッションを開始するユーザーアカウント名。この入力に指定するユーザーアカウントは接続先のマネージドノードに存在する必要があります。存在しない場合、セッションが開始されません。

タイプ: 文字列。

必須: いいえ

idleSessionTimeout

セッションが終了する前に許可する非アクティブの時間。この入力は分単位で測定されます。

型: 文字列

有効な値: 1~60

必須: いいえ

maxSessionDuration

セッションが終了する前に許可する最大時間。この入力は分単位で測定されます。

タイプ: 文字列。

有効な値: 1~1440

必須: いいえ

shellProfile

シェルプリファレンス、環境変数、作業ディレクトリ、セッション開始時の複数のコマンドの実行など、セッション内で適用する、オペレーティングシステムごとに指定する設定。

型: StringMap

必須: いいえ

windows

Windows のマネージドノード上のセッションに指定するシェルプリファレンス、環境変数、作業ディレクトリ、コマンド。

型: 文字列

必須: いいえ

linux

Linux のマネージドノード上のセッションに指定するシェルプリファレンス、環境変数、作業ディレクトリ、コマンド。

型: 文字列

必須: いいえ

parameters

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

{{ssm:parameter-name}}

Parameter Store の詳細については、「AWS Systems Manager Parameter Store」を参照してください。

型: StringMap

必須: いいえ

properties

指定した値を持つオブジェクトで、 StartSession API オペレーションで使用されるもの。

InteractiveCommands セッションに使用されるセッションドキュメントの場合、properties オブジェクトには、指定したオペレーティングシステムで実行するコマンドが含まれます。また、runAsElevated ブール値プロパティを使用して、コマンドを root として実行するかどうかを決定することもできます。詳細については、「セッションでのコマンドへのアクセスを制限する」を参照してください。

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