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

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

会话文档架构

以下信息介绍了会话文档的架构元素。Session Manager 使用会话文档确定要启动的会话类型,例如标准会话、端口转发会话或运行交互式命令的会话。

schemaVersion

会话文档的架构版本。目前,会话文档仅支持版本 1.0。

类型: 字符串

必需:是

description

您为会话文档指定的描述。例如,“通过 Session Manager 启动端口转发会话的文档”。

类型: 字符串

必需:否

sessionType

用于建立会话文档的会话的类型。

类型: 字符串

必需:是

有效值:InteractiveCommands | Port | Standard_Stream

inputs

要用于使用此会话文档建立的会话的会话首选项。用于创建 Standard_Stream 会话的会话文档需要此元素。

类型:StringMap

必需:否

s3BucketName

您希望在会话结束时将会话日志发送到的 Amazon Simple Storage Service (Amazon S3) 存储桶。

类型: 字符串

必需:否

s3KeyPrefix

在将日志发送到您在 s3BucketName 输入中指定的 S3 存储桶时使用的前缀。有关对存储在 Amazon S3 中的对象使用共享前缀的更多信息,请参阅 中的如何使用 S3 存储桶中的文件夹?Amazon Simple Storage Service 控制台用户指南

类型: 字符串

必需:否

s3EncryptionEnabled

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

类型: Boolean

必需:是

cloudWatchLogGroupName

要在会话结束时将会话日志发送到的 Amazon CloudWatch Logs (CloudWatch Logs) 组的名称。

类型: 字符串

必需:否

cloudWatchEncryptionEnabled

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

类型: Boolean

必需:是

cloudWatchStreamingEnabled

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

类型: Boolean

必需:是

kmsKeyId

您要用于进一步加密本地客户端计算机与您连接到的 AWS Key Management Service (AWS KMS) 实例之间的数据的 Amazon Elastic Compute Cloud (Amazon EC2) 密钥的 ID。

类型: 字符串

必需:否

runAsEnabled

如果设置为 true,则必须指定在 runAsDefaultUser 输入中连接到的实例上存在的用户账户。否则,会话将无法启动。默认情况下,会话是使用 ssm-user 创建的 SSM 代理 账户启动的。运行方式功能仅支持连接到 Linux 实例。

类型: Boolean

必需:是

runAsDefaultUser

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

类型: 字符串

必需:否

idleSessionTimeout

您希望在会话结束前允许的不活动的时间。此输入以分钟为单位。

类型: 字符串

有效值:1-60

必需:否

shellProfile

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

类型:StringMap

必需:否

windows

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

类型: 字符串

必需:否

linux

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

类型: 字符串

必需:否

parameters

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

{{ssm:parameter-name}}

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

类型:StringMap

必需:否

properties

您在 StartSession API 调用中使用其值的对象。

对于用于 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" } }