会话文档架构 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

会话文档架构

以下信息描述了会话文档的架构元素。Amazon 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

向 Amazon S3 存储桶发送日志时使用的前缀s3BucketName输入。有关将共享前缀与 Amazon S3 中存储的数据元配合使用的更多信息,请参阅如何在 S3 存储桶中使用文件夹?中的Amazon Simple Storage Service 控制台用户指南.

类型: 字符串

:必需 否

s3EncryptionEnabled

如果设置为true中指定的 Amazon S3 存储桶。s3BucketName输入必须加密。

类型: Boolean

:必需 是

cloudWatchLogGroupName

您希望在会话结束时向其发送会话 CloudWatch Logs 志的 Amazon CloudWatch 日志(CloudWatch 日志)组的名称。

类型: 字符串

:必需 否

cloudWatchEncryptionEnabled

如果设置为true中指定的日志组,则在cloudWatchLogGroupName输入必须加密。

类型: Boolean

:必需 是

cloudWatchStreamingEnabled

如果设置为true时,会话数据日志的连续流将发送到您在cloudWatchLogGroupName输入。如果设置为false,会话日志将发送到您在cloudWatchLogGroupName在会话结束时输入。

类型: Boolean

:必需 是

kmsKeyId

的 IDAmazon KMS key您希望使用,进一步加密本地客户端计算机与您连接的 Amazon Elastic Compute Cloud (Amazon EC2) 实例之间的数据。

类型: 字符串

:必需 否

runAsEnabled

如果设置为true,则必须指定一个存在于您将连接到的实例上的用户帐户runAsDefaultUser输入。否则,会话将无法启动。默认情况下,会话使用ssm-user创建的帐户Amazon Systems Manager SSM Agent. 仅连接到 Linux 实例时支持运行方式功能。

类型: Boolean

:必需 是

runAsDefaultUser

在 Linux 实例上启动会话的用户帐户的名称runAsEnabled输入将设置为true. 您为此输入指定的用户帐户必须存在于您要连接的实例上;否则,会话将无法启动。

类型: 字符串

:必需 否

idleSessionTimeout

要在会话结束之前允许的非活动时间量。此输入以分钟为单位进行测量。

类型: 字符串

有效值:1-60

:必需 否

shellProfile

您为每个操作系统指定的要应用于会话的首选项,例如 shell 首选项、环境变量、工作目录以及启动会话时运行多个命令。

类型: StringMap

:必需 否

windows

为 Windows 实例上的会话指定的 shell 首选项、环境变量、工作目录和命令。

类型: 字符串

:必需 否

linux

为 Linux 实例上的会话指定的 shell 首选项、环境变量、工作目录和命令。

类型: 字符串

:必需 否

parameters

定义文档接受的参数的对象。有关定义文档参数的详细信息,请参阅parameters中的顶级元素. 对于经常引用的参数,建议您将这些参数存储在 Systems Manager 中Parameter Store,然后引用它们。您可以在文档的这一部分引用 StringStringList Parameter Store 参数。您不能在文档的这一部分引用 SecureString Parameter Store 参数。您可以引用Parameter Store参数使用以下格式。

{{ssm:parameter-name}}

有关 Parameter Store 的更多信息,请参阅 Amazon Systems Manager Parameter Store

类型: StringMap

:必需 否

properties

一个对象,其指定的值用于StartSessionAPI 操作。

对于用于InteractiveCommands会话时,属性对象包括要在指定的操作系统上运行的命令。有关更多信息,请参阅 。限制对会话中命令的访问.

对于用于Port会话中,属性对象包含应将流量重定向到的端口号。有关示例,请参阅。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' 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", "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 } } }