Esquema del documento de Session - AWS Systems Manager

Esquema del documento de Session

La siguiente información describe los elementos de esquema de un documento de Session. AWS Systems Manager Session Manager utiliza los documentos de Session para determinar qué tipo de sesión iniciar, como una sesión estándar, una sesión de reenvío de puertos o una sesión para ejecutar un comando interactivo.

schemaVersion

Versión del esquema del documento de Session. Los documentos de Session solo admiten la versión 1.0.

Tipo: cadena

Obligatorio: sí

description

Una descripción que especifique para el documento de Session. Por ejemplo, “Documento para iniciar la sesión de reenvío de puertos con Session Manager”.

Tipo: cadena

Requerido: no

sessionType

El tipo de sesión que se utiliza para establecer el documento de Session.

Tipo: cadena

Obligatorio: sí

Valores válidos: InteractiveCommands | NonInteractiveCommands | Port | Standard_Stream

inputs

Las preferencias de sesión que se van a utilizar para las sesiones establecidas mediante este documento de Session. Este elemento es necesario para los documentos de Session que se utilizan para crear sesiones Standard_Stream.

Tipo: StringMap

Requerido: no

s3BucketName

El bucket de Amazon Simple Storage Service (Amazon S3) al que desea enviar los registros de las sesiones al finalizarlas.

Tipo: cadena

Requerido: no

s3KeyPrefix

El prefijo que se debe utilizar al enviar registros al bucket de Amazon S3 que usted especificó en el elemento de entrada s3BucketName Para obtener más información acerca del uso de un prefijo compartido con almacenamiento de objetos en Amazon S3, consulte How do I use folders in an S3 bucket? en la Guía del usuario de Amazon Simple Storage Service.

Tipo: cadena

Requerido: no

s3EncryptionEnabled

Si se establece en true, el bucket de Amazon S3 especificado en el elemento de entrada s3BucketName debe estar cifrado.

Tipo: Booleano

Obligatorio: sí

cloudWatchLogGroupName

El nombre del grupo de los Registros de Amazon CloudWatch (Registros de CloudWatch) al que desea enviar los registros de las sesiones al finalizarlas.

Tipo: cadena

Requerido: no

cloudWatchEncryptionEnabled

Si se establece en true, el grupo de registros que especificó en el elemento de entrada cloudWatchLogGroupName debe estar cifrado.

Tipo: Booleano

Obligatorio: sí

cloudWatchStreamingEnabled

Si se establece en true, se envía un flujo continuo de registros de datos de sesiones al grupo de registros que especificó en el elemento de entrada cloudWatchLogGroupName. Si se establece en false, los registros de las sesiones se envían al grupo de registros que especificó en el elemento de entrada cloudWatchLogGroupName al finalizar las sesiones.

Tipo: Booleano

Obligatorio: sí

kmsKeyId

El ID de la AWS KMS key que desee utilizar para cifrar aún más los datos entre los equipos cliente locales y los nodos administrados de Amazon Elastic Compute Cloud (Amazon EC2) a los que se conecte.

Tipo: cadena

Requerido: no

runAsEnabled

Si se establece en true, debe especificar una cuenta de usuario que exista en los nodos administrados a los que se conectará en el elemento de entrada runAsDefaultUser. De lo contrario, las sesiones no se iniciarán. De forma predeterminada, las sesiones se inician utilizando la cuenta ssm-user creada por AWS Systems Manager SSM Agent. La característica Ejecutar como solo se admite para conectarse a nodos administrados de Linux.

Tipo: Booleano

Obligatorio: sí

runAsDefaultUser

El nombre de la cuenta de usuario con la que se iniciarán las sesiones en los nodos administrados de Linux cuando el elemento de entrada runAsEnabled se establezca en true. La cuenta de usuario que especifique para este elemento de entrada debe existir en los nodos administrados a los que se conectará; de lo contrario, las sesiones no podrán iniciarse.

Tipo: cadena

Requerido: no

idleSessionTimeout

La cantidad de tiempo de inactividad que desea permitir antes de que una sesión se termine. Esta entrada se mide en minutos.

Tipo: cadena

Valores válidos: de 1 a 60

Requerido: no

maxSessionDuration

La cantidad máxima de tiempo que desea permitir antes de que una sesión se termine. Esta entrada se mide en minutos.

Tipo: cadena

Valores válidos: 1-1440

Requerido: no

shellProfile

Las preferencias que especificó por sistema operativo para que se apliquen dentro de las sesiones, como las preferencias de shell, las variables de entorno, los directorios de trabajo y la ejecución de varios comandos cuando se inicia una sesión.

Tipo: StringMap

Requerido: no

windows

Las preferencias de shell, las variables de entorno, los directorios de trabajo y los comandos que especifique para las sesiones en los nodos administrados de Windows.

Tipo: cadena

Requerido: no

linux

Las preferencias de shell, las variables de entorno, los directorios de trabajo y los comandos que especifique para las sesiones en los nodos administrados de Linux.

Tipo: cadena

Requerido: no

parameters

Un objeto que define los parámetros que acepta el documento. Para obtener más información acerca de cómo definir los parámetros de los documentos, consulte parámetros en Elementos de datos de nivel superior. En el caso de los parámetros a los que suele hacer referencia, le recomendamos almacenarlos en Systems Manager Parameter Store y, luego, hacer referencia a ellos. Puede hacer referencia a los parámetros de Parameter Store String y StringList en esta sección de un documento. No puede hacer referencia a los parámetros de Parameter Store SecureString en esta sección de un documento. Puede hacer referencia a un parámetro de Parameter Store mediante el siguiente formato.

{{ssm:parameter-name}}

Para obtener más información acerca de Parameter Store, consulte AWS Systems Manager Parameter Store.

Tipo: StringMap

Requerido: no

properties

Un objeto cuyos valores especificados se utilizan en la operación StartSession de la API.

Para los documentos de Session que se utilizan para las sesiones InteractiveCommands, el objeto de propiedades incluye los comandos que se ejecutarán en los sistemas operativos que usted especifique. Además, puede determinar si los comandos se ejecutan como root mediante la propiedad booleana runAsElevated. Para obtener más información, consulte Restricción del acceso a los comandos de una sesión.

Para los documentos de Session que se utilizan para las sesiones Port, el objeto de propiedades contiene el número de puerto al que se debe redirigir el tráfico. Para ver un ejemplo, consulte más adelante en este tema el ejemplo de documento de Session de tipo Port.

Tipo: StringMap

Requerido: no

Ejemplo de documento de Session de tipo 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" } } }

Ejemplo de documento de Session de tipo 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 } } }

Ejemplo de documento de Session de tipo 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" } }

Ejemplo de documento de Session con caracteres especiales

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