Criar um documento de preferências (linha de comando) do Session Manager - AWS Systems Manager

Criar um documento de preferências (linha de comando) do Session Manager

Use o procedimento a seguir para criar documentos do SSM que definam suas preferências para sessões do Session Manager do AWS Systems Manager. É possível usar o documento para configurar as opções da sessão, inclusive criptografia de dados, duração da sessão e registro em log. Por exemplo, você pode especificar se armazenará dados de log de sessão em um bucket do Amazon Simple Storage Service (Amazon S3) ou em um grupo de logs do Amazon CloudWatch Logs. Você pode criar documentos que definam preferências gerais para todas as sessões de uma Conta da AWS e Região da AWS ou que definam preferências para sessões individuais.

nota

Também é possível configurar as preferências gerais da sessão usando o console do Gerenciador de Sessões.

Os documentos usados para definir as preferências do Gerenciador de Sessões devem ter um sessionType de Standard_Stream. Para obter mais informações sobre documentos de sessões, consulte Esquema do documento de sessão.

Para obter informações sobre como usar a linha de comando para atualizar as preferências atuais do Session Manager, consulte Atualizar preferências do Session Manager (linha de comando).

Para obter um exemplo de como criar preferências de sessão usando o AWS CloudFormation, consulte Create a Systems Manager document for Session Manager preferences (Criar um documento do Systems Manager para as preferências do Session Manager no Manual do usuário do AWS CloudFormation.

nota

Esse procedimento descreve como criar documentos para definir preferências do Session Manager no nível da Conta da AWS. Para criar documentos que serão usados para definir as preferências no nível da sessão, especifique um valor diferente de SSM-SessionManagerRunShell das entradas de comando relacionadas ao nome do arquivo.

Para usar seu documento para definir preferências para sessões iniciadas por meio da AWS Command Line Interface (AWS CLI), forneça o nome do documento como valor do parâmetro --document-name. Para definir preferências para sessões iniciadas no console do Gerenciador de Sessões, você pode digitar ou selecionar o nome do documento em uma lista.

Como criar preferências do Session Manager (linha de comando)
  1. Crie um arquivo JSON em sua máquina local com um nome, como SessionManagerRunShell.json e, em seguida, cole o conteúdo a seguir nesse arquivo.

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

    Também é possível passar valores para suas preferências de sessão usando parâmetros em vez de codificar os valores, conforme mostrado no exemplo a seguir.

    { "schemaVersion":"1.0", "description":"Session Document Parameter Example JSON Template", "sessionType":"Standard_Stream", "parameters":{ "s3BucketName":{ "type":"String", "default":"" }, "s3KeyPrefix":{ "type":"String", "default":"" }, "s3EncryptionEnabled":{ "type":"Boolean", "default":"false" }, "cloudWatchLogGroupName":{ "type":"String", "default":"" }, "cloudWatchEncryptionEnabled":{ "type":"Boolean", "default":"false" } }, "inputs":{ "s3BucketName":"{{s3BucketName}}", "s3KeyPrefix":"{{s3KeyPrefix}}", "s3EncryptionEnabled":"{{s3EncryptionEnabled}}", "cloudWatchLogGroupName":"{{cloudWatchLogGroupName}}", "cloudWatchEncryptionEnabled":"{{cloudWatchEncryptionEnabled}}", "kmsKeyId":"" } }
  2. Especifique em que local você deseja enviar dados de sessão. Você pode especificar o nome de um bucket do S3 (com um prefixo opcional) ou um nome de grupo de logs do CloudWatch Logs. Se você quiser criptografar ainda mais os dados entre o cliente local e os nós gerenciados, forneça a chave KMS a ser usada para a criptografia. Veja um exemplo a seguir.

    { "schemaVersion": "1.0", "description": "Document to hold regional settings for Session Manager", "sessionType": "Standard_Stream", "inputs": { "s3BucketName": "DOC-EXAMPLE-BUCKET", "s3KeyPrefix": "MyS3Prefix", "s3EncryptionEnabled": true, "cloudWatchLogGroupName": "MyLogGroupName", "cloudWatchEncryptionEnabled": true, "cloudWatchStreamingEnabled": false, "kmsKeyId": "MyKMSKeyID", "runAsEnabled": true, "runAsDefaultUser": "MyDefaultRunAsUser", "idleSessionTimeout": "20", "maxSessionDuration": "60", "shellProfile": { "windows": "MyCommands", "linux": "MyCommands" } } }
    nota

    Se você não quiser criptografar dados de log da sessão, altere true para false em s3EncryptionEnabled.

    Se você não estiver enviando logs para um bucket do Amazon S3 ou para um grupo de logs do CloudWatch Logs, se não quiser criptografar os dados da sessão ativa ou não quiser habilitar o suporte a Run As (Executar como) para as sessões em sua conta, exclua as linhas para essas opções. Certifique-se de que a última linha na seção inputs não termine com uma vírgula.

    Se você adicionar um ID de chave do KMS para criptografar dados de sessão, os usuários que iniciarem sessões e os nós gerenciados aos quais eles se conectarem deverão ter permissão para usar essa chave. Você fornece permissão para usar a chave KMS com o Session Manager por meio de políticas do IAM. Para obter informações, consulte os seguintes tópicos:

  3. Salve o arquivo.

  4. No diretório em que você criou o arquivo JSON, execute o seguinte comando:

    Linux & macOS
    aws ssm create-document \ --name SSM-SessionManagerRunShell \ --content "file://SessionManagerRunShell.json" \ --document-type "Session" \ --document-format JSON
    Windows
    aws ssm create-document ^ --name SSM-SessionManagerRunShell ^ --content "file://SessionManagerRunShell.json" ^ --document-type "Session" ^ --document-format JSON
    PowerShell
    New-SSMDocument ` -Name "SSM-SessionManagerRunShell" ` -Content (Get-Content -Raw SessionManagerRunShell.json) ` -DocumentType "Session" ` -DocumentFormat JSON

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    {
        "DocumentDescription": {
            "Status": "Creating",
            "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
            "Name": "SSM-SessionManagerRunShell",
            "Tags": [],
            "DocumentType": "Session",
            "PlatformTypes": [
                "Windows",
                "Linux"
            ],
            "DocumentVersion": "1",
            "HashType": "Sha256",
            "CreatedDate": 1547750660.918,
            "Owner": "111122223333",
            "SchemaVersion": "1.0",
            "DefaultVersion": "1",
            "DocumentFormat": "JSON",
            "LatestVersion": "1"
        }
    }