

• O AWS Systems Manager CloudWatch Dashboard não estará mais disponível a partir de 30 de abril de 2026. Os clientes podem continuar usando o console do Amazon CloudWatch para visualizar, criar e gerenciar os painéis do Amazon CloudWatch exatamente como fazem hoje. Para obter mais informações, consulte a [documentação do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Configurar o Session Manager
<a name="session-manager-getting-started"></a>

Antes de usar AWS Systems Manager Session Manager para se conectar aos nós gerenciados na sua conta, conclua as etapas nos tópicos a seguir.

**Topics**
+ [Etapa 1: Concluir os pré-requisitos do Session Manager](session-manager-prerequisites.md)
+ [Etapa 2: verificar ou adicionar permissões de instância para o Session Manager](session-manager-getting-started-instance-profile.md)
+ [Etapa 3: controlar o acesso da sessão pelos nós gerenciados](session-manager-getting-started-restrict-access.md)
+ [Etapa 4: Configurar preferências de sessão](session-manager-getting-started-configure-preferences.md)
+ [Etapa 5: (Opcional) Restringir o acesso a comandos em uma sessão](session-manager-restrict-command-access.md)
+ [Etapa 6: (Opcional) Usar o AWS PrivateLink para configurar um endpoint da VPC para o Session Manager](session-manager-getting-started-privatelink.md)
+ [Etapa 7: (Opcional) Ativar ou desativar permissões administrativas da conta ssm-user.](session-manager-getting-started-ssm-user-permissions.md)
+ [Etapa 8: (Opcional) Permitir e controlar permissões de conexões de SSH por meio do Session Manager](session-manager-getting-started-enable-ssh-connections.md)

# Etapa 1: Concluir os pré-requisitos do Session Manager
<a name="session-manager-prerequisites"></a>

Antes de usar o Session Manager, verifique se seu ambiente atende aos requisitos a seguir.


**Session ManagerPré-requisitos do**  

| Requisito | Descrição | 
| --- | --- | 
|  Sistemas operacionais compatíveis  |  O Session Manager é compatível com a conexão às instâncias do Amazon Elastic Compute Cloud (Amazon EC2), além de máquinas que não são do EC2, em seu ambiente [híbrido e multinuvem](operating-systems-and-machine-types.md#supported-machine-types) que usa o nível de *instâncias avançadas*. Session ManagerO oferece suporte às seguintes versões de sistemas operacionais:  O Session Manager é compatível com as instâncias do EC2, com os dispositivos de borda, com os servidores on-premises e com as máquinas virtuais (VMs) no ambiente [híbrido e multinuvem](operating-systems-and-machine-types.md#supported-machine-types) que usa o nível de *instâncias avançadas*. Para obter mais informações sobre instâncias avançadas, consulte [Configurar níveis de instâncias](fleet-manager-configure-instance-tiers.md).   **Linux e **macOS****  O Session Manager é compatível com todas as versões do Linux e do macOS que forem compatíveis com o AWS Systems Manager. Para mais informações, consulte [Sistemas operacionais e tipos de máquinas compatíveis](operating-systems-and-machine-types.md).  ** Windows **  Session Manager é compatível com Windows Server 2012 e versões posteriores.  O Microsoft Windows Server 2016 Nano não é compatível.   | 
|  SSM Agent  |  No mínimo a versão 2.3.68.0 do AWS Systems Manager SSM Agent ou posterior deve ser instalada nos nós gerenciados aos quais você quer se conectar por meio de sessões.  Para usar a opção de criptografar dados da sessão usando uma chave criada no AWS Key Management Service (AWS KMS), a versão 2.3.539.0 ou posterior do SSM Agent deve ser instalada em seu nó gerenciado.  Para usar perfis de shell em uma sessão, a versão 3.0.161.0 ou posterior do SSM Agent deve ser instalada em seu nó gerenciado. Para iniciar um encaminhamento da porta do Session Manager ou uma sessão SSH, a versão 3.0.222.0 ou posterior do SSM Agent deve ser instalada em seu nó gerenciado. Para transmitir dados da sessão usando o Amazon CloudWatch Logs, a versão 3.0.284.0 ou posterior do SSM Agent deve ser instalada em seu nó gerenciado. Para obter informações sobre como determinar o número da versão em execução em uma instância, consulte [Verificar o número de versão do SSM Agent](ssm-agent-get-version.md). Para obter informações sobre como instalar manualmente ou atualizar automaticamente o SSM Agent, consulte [Trabalhar com o SSM Agent](ssm-agent.md).  Sobre a conta ssm-user A partir da versão 2.3.50.0 do SSM Agent, o agente cria uma conta de usuário em seu nó gerenciado, com permissões de administrador ou de raiz, chamada de `ssm-user`. (Em versões anteriores a 2.3.612.0, a conta é criada quando o SSM Agent inicia ou reinicia. Na versão 2.3.612.0 e posteriores, o `ssm-user` é criado na primeira vez que uma sessão for iniciada em um nó gerenciado.) As sessões são executadas usando as credenciais administrativas da conta de usuário. Para obter mais informações sobre como restringir o controle administrativo para esta conta, consulte [Desativar ou ativar permissões administrativas da conta ssm-user](session-manager-getting-started-ssm-user-permissions.md).   ssm-user em controladores de domínio do Windows Server Começando com o SSM Agent versão 2.3.612.0, a conta do `ssm-user` não é criada automaticamente em nós usados como controladores de domínio do Windows Server. Para usar o Session Manager em uma máquina Windows Server usada como controlador de domínio, crie a conta `ssm-user` manualmente, caso ela ainda não esteja presente, e atribua permissões de Administrador do Domínio ao usuário. No Windows Server, o SSM Agent define uma nova senha para a conta `ssm-user` sempre que uma sessão é iniciada e, portanto, você não precisa especificar uma senha ao criar a conta.   | 
|  Conectividade com endpoints  |  Os nós gerenciados aos quais você se conecta devem permitir o tráfego de saída HTTPS (porta 443) para os seguintes endpoints: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/session-manager-prerequisites.html) Para saber mais, consulte os seguintes tópicos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/session-manager-prerequisites.html) Como alternativa, você pode se conectar aos endpoints necessários usando endpoints da interface. Para obter mais informações, consulte [Etapa 6: (Opcional) Usar o AWS PrivateLink para configurar um endpoint da VPC para o Session Manager](session-manager-getting-started-privatelink.md).  | 
|  AWS CLI  |  (Opcional) Se você usar a AWS Command Line Interface (AWS CLI) para iniciar as sessões (em vez de usar o console da AWS Systems Manager ou o console do Amazon EC2), a versão 1.16.12 ou posterior da CLI deve estar instalada em sua máquina local. Você pode chamar o `aws --version` para verificar a versão. Se você precisar instalar ou atualizar a CLI, consulte [Instalação do AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) no Guia do usuário do AWS Command Line Interface. Uma versão atualizada do SSM Agent é lançada sempre que novas ferramentas são adicionadas ao Systems Manager ou sempre que atualizações são feitas nas ferramentas existentes. Deixar de usar a versão mais recente do atendente pode impedir que seu nó gerenciado use várias ferramentas do Systems Manager. Por isso, recomendamos automatizar o processo de manter o SSM Agent atualizado em suas máquinas. Para mais informações, consulte [Automatizar atualizações do SSM Agent](ssm-agent-automatic-updates.md). Inscreva-se na página [Notas de versão do SSM Agent](https://github.com/aws/amazon-ssm-agent/blob/mainline/RELEASENOTES.md) no GitHub para receber notificações sobre atualizações do SSM Agent. Além disso, para usar a CLI para gerenciar seus nós com o Session Manager, você deve primeiro instalar o plugin do Session Manager em sua máquina local. Para mais informações, consulte [Instalar o plug-in do Session Manager para a AWS CLI](session-manager-working-with-install-plugin.md).  | 
|  Ative o nível de instâncias avançadas (ambientes [híbridos e multinuvem](operating-systems-and-machine-types.md#supported-machine-types))  |  Para conectar-se a máquinas que não são do EC2 usando o Session Manager, você deve ativar o nível de instâncias avançadas na Conta da AWS e Região da AWS onde você cria ativações híbridas para registrar máquinas que não são do EC2 como nós gerenciados. Há uma cobrança para o uso do nível de instâncias avançadas. Para obter mais informações sobre o nível de instâncias avançadas, consulte [Configurar níveis de instâncias](fleet-manager-configure-instance-tiers.md).  | 
|  Verifique as permissões de perfil de serviço do IAM (ambientes [híbridos e multinuvem](operating-systems-and-machine-types.md#supported-machine-types))  |  Os nós ativados para ambientes híbridos usam o perfil de serviço do AWS Identity and Access Management (IAM) especificado na ativação híbrida para se comunicar com as operações da API do Systems Manager. Esse perfil de serviço deve conter as permissões necessárias para se conectar às suas máquinas [híbridas e multinuvem](operating-systems-and-machine-types.md#supported-machine-types) usando o Session Manager. Se sua função de serviço contém a política gerenciada `AmazonSSMManagedInstanceCore` da AWS, as permissões necessárias para o Session Manager já estão fornecidas. Se você achar que a função de serviço não contém as permissões necessárias, você deverá cancelar o registro da instância gerenciada e registrá-la com uma nova ativação híbrida que usa uma função de serviço do IAM com as permissões necessárias. Para obter mais informações sobre como cancelar o registro de instâncias gerenciadas, consulte [Cancelar o registro de nós gerenciados em um ambiente híbrido e multinuvem](fleet-manager-deregister-hybrid-nodes.md). Para obter mais informações sobre como criar políticas do IAM com permissões do Session Manager, consulte [Etapa 2: verificar ou adicionar permissões de instância para o Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-instance-profile.html).  | 

# Etapa 2: verificar ou adicionar permissões de instância para o Session Manager
<a name="session-manager-getting-started-instance-profile"></a>

Por padrão, o AWS Systems Manager não tem permissão para executar ações em suas instâncias. É possível fornecer permissões de instância no nível da conta usando um perfil do AWS Identity and Access Management (IAM) ou no nível da instância usando um perfil de instância. Se o seu caso de uso permitir, recomendamos conceder acesso no nível da conta usando a configuração de gerenciamento de host padrão. Se já definiu a configuração de gerenciamento do host padrão para sua conta usando a política `AmazonSSMManagedEC2InstanceDefaultPolicy`, você pode avançar para a próxima etapa. Para obter mais informações sobre a configuração de gerenciamento do host padrão, consulte [Gerenciar instâncias do EC2 automaticamente com a Configuração de gerenciamento de hosts padrão](fleet-manager-default-host-management-configuration.md).

Se preferir, você pode usar perfis de instância para fornecer as permissões necessárias às suas instâncias. Um perfil da instância passa uma função do IAM para uma instância do Amazon EC2. Você pode anexar um perfil da instância do IAM a uma instância do Amazon EC2 ao executá-la ou a uma instância executada anteriormente. Para obter mais informações, consulte [Usar os perfis da instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-instanceprofile.html).

Para servidores on-premises ou máquinas virtuais (VMs), as permissões são fornecidas pela função de serviço do IAM associada à ativação híbrida usada para registrar seus servidores e VMs on-premises com o Systems Manager. Servidores on-premises e VMs locais não usam perfis da instância.

Se você já usou outras ferramentas do Systems Manager, como o Run Command ou o Parameter Store, um perfil da instância com as permissões básicas necessárias para o Session Manager poderá já estar anexado às suas instâncias do Amazon EC2. Se um perfil da instância que contém a política gerenciada `AmazonSSMManagedInstanceCore` da AWS já estiver anexado às suas instâncias, as permissões para Session Manager já estarão fornecidas. Isso também é verdade se a função de serviço do IAM usada na ativação híbrida contiver a política gerenciada `AmazonSSMManagedInstanceCore`.

No entanto, em alguns casos, pode ser necessário modificar as permissões anexadas ao seu perfil de instância. Por exemplo, você quer fornecer um conjunto mais restrito de permissões de instância, você criou uma política personalizada para seu perfil da instância ou você quer usar as opções de criptografia do Amazon Simple Storage Service (Amazon S3) ou do AWS Key Management Service (AWS KMS) para proteger os dados da sessão. Nesses casos, para permitir que as ações do Session Manager sejam executadas em suas instâncias, proceda de uma das seguintes maneiras:
+  **Incorpore permissões para as ações do Session Manager em uma função do IAM personalizada** 

  Para adicionar permissões para ações do Session Manager a uma função do IAM existente que não dependa da política padrão `AmazonSSMManagedInstanceCore` fornecida pela AWS, siga as etapas em [Adicionar permissões do Session Manager a um perfil do IAM existente](getting-started-add-permissions-to-existing-profile.md).
+  **Crie uma função do IAM personalizada apenas com permissões do Session Manager** 

  Para criar uma função do IAM que contenha permissões somente para ações do Session Manager, siga as etapas em [Crie uma função do IAM personalizada para o Session Manager](getting-started-create-iam-instance-profile.md).
+  **Crie e use uma nova função do IAM com permissões para todas as ações do Systems Manager** 

  Para criar um perfil do IAM para as instâncias gerenciadas do Systems Manager que usam uma política padrão fornecida pela AWS para conceder todas as permissões do Systems Manager, siga as etapas em [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md).

**Topics**
+ [Adicionar permissões do Session Manager a um perfil do IAM existente](getting-started-add-permissions-to-existing-profile.md)
+ [Crie uma função do IAM personalizada para o Session Manager](getting-started-create-iam-instance-profile.md)

# Adicionar permissões do Session Manager a um perfil do IAM existente
<a name="getting-started-add-permissions-to-existing-profile"></a>

Use o procedimento a seguir para adicionar permissões do Session Manager a um perfil do AWS Identity and Access Management (IAM) já existente. Ao adicionar permissões a um perfil já existente, você pode aprimorar a segurança do ambiente de computação sem precisar usar a política `AmazonSSMManagedInstanceCore` da AWS para obter permissões de instância.

**nota**  
Observe as seguintes informações:  
Esse procedimento pressupõe que sua função existente já inclui outras permissões `ssm` do Systems Manager para ações que você deseja permitir o acesso. Essa política não é suficiente para usar o Session Manager.
O exemplo de política a seguir contém uma ação `s3:GetEncryptionConfiguration`. Essa ação será obrigatória se você escolher a opção **Aplicar criptografia de log do S3** nas preferências de registro em log do Session Manager.
Se a permissão `ssmmessages:OpenControlChannel` for removida das políticas anexadas ao seu perfil de instância do IAM ou perfil de serviço do IAM, o SSM Agent no nó gerenciado perderá a conectividade com o serviço Systems Manager na nuvem. No entanto, pode levar até 1 hora para uma conexão ser encerrada após a remoção da permissão. Esse é o mesmo comportamento de quando a função da instância do IAM ou o perfil de serviço do IAM é excluído.

**Para adicionar permissões do Session Manager a uma função existente (console)**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**.

1. Selecione o nome do perfil ao qual você está adicionando as permissões.

1. Escolha a aba **Permissões**.

1. Escolha **Adicionar permissões** e, em seguida, selecione **Criar política em linha**.

1. Selecione a guia **JSON**.

1. Substitua o conteúdo da política padrão pelo conteúdo a seguir. Substitua *key-name* pelo nome do recurso da Amazon (ARN) da chave do AWS Key Management Service (AWS KMS key) que você deseja usar.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetEncryptionConfiguration"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           }
       ]
   }
   ```

------

   Para obter informações sobre como usar uma chave KMS para criptografar dados de sessão, consulte [Ativar a criptografia de chaves do KMS de dados de sessão (console)](session-preferences-enable-encryption.md).

   Se você não or usar a criptografia do AWS KMS para sua sessão de dados, poderá remover o seguinte conteúdo da política:

   ```
   ,
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "key-name"
           }
   ```

1. Escolha **Next: Tags**.

1. (Opcional) Adicione tags escolhendo **Add tag** (Adicionar tag) e inserindo as tags preferenciais para a política.

1. Escolha **Próximo: revisar**.

1. Na página **Revisar política**, em **Nome**, digite um nome para a política em linha, como **SessionManagerPermissions**.

1. (Opcional) Em **Descrição**, digite uma descrição para a política. 

   Escolha **Criar política**.

Para obter informações sobre as ações `ssmmessages`, consulte [Referência: ec2messages, ssmmessages e outras operações da API](systems-manager-setting-up-messageAPIs.md).

# Crie uma função do IAM personalizada para o Session Manager
<a name="getting-started-create-iam-instance-profile"></a>

É possível criar um perfil do AWS Identity and Access Management (IAM) que conceda ao Session Manager a permissão para realizar ações em suas instâncias gerenciadas do Amazon EC2. Você também pode incluir uma política para conceder as permissões necessárias para que os logs da sessão sejam enviados ao Amazon Simple Storage Service (Amazon S3) e ao Amazon CloudWatch Logs.

Depois de criar o perfil do IAM, para obter informações sobre como anexar o perfil a uma instância consulte [Anexar ou substituir um perfil de instância](https://aws.amazon.com/premiumsupport/knowledge-center/attach-replace-ec2-instance-profile/) no site do AWS re:Post. Para obter mais informações sobre perfis de instância e perfis do IAM, consulte [Usar perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) no *Guia do usuário do IAM* e [Perfis do IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) no *Guia do usuário do Amazon Elastic Compute Cloud para instâncias do Linux*. Para obter mais informações sobre como criar um perfil de serviço do IAM para máquinas on-premises, consulte [Criar o perfil de serviço do IAM obrigatório para o Systems Manager em ambientes híbridos e multinuvem](https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-service-role.html).

**Topics**
+ [Crie uma função do IAM com permissões mínimas do Session Manager (console)](#create-iam-instance-profile-ssn-only)
+ [Crie uma função do IAM com permissões para o Session Manager, Amazon S3 e CloudWatch Logs (console)](#create-iam-instance-profile-ssn-logging)

## Crie uma função do IAM com permissões mínimas do Session Manager (console)
<a name="create-iam-instance-profile-ssn-only"></a>

Use o procedimento a seguir para criar uma função do IAM personalizada com uma política que fornece permissões somente para ações do Session Manager em suas instâncias.

**Para criar um perfil de instância com permissões mínimas do Session Manager (console)**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**. (Se aparecer um botão **Get Started** (Iniciar), selecione-o e, em seguida, clique em **Create Policy** (Criar política).

1. Selecione a guia **JSON**.

1. Substitua o conteúdo padrão pela política a seguir. Para criptografar os dados de sessão usando o AWS Key Management Service (AWS KMS), substitua *key-name* pelo nome do recurso da Amazon (ARN) da AWS KMS key que você deseja usar.
**nota**  
Se a permissão `ssmmessages:OpenControlChannel` for removida das políticas anexadas ao seu perfil de instância do IAM ou perfil de serviço do IAM, o SSM Agent no nó gerenciado perderá a conectividade com o serviço Systems Manager na nuvem. No entanto, pode levar até 1 hora para uma conexão ser encerrada após a remoção da permissão. Esse é o mesmo comportamento de quando a função da instância do IAM ou o perfil de serviço do IAM é excluído.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:UpdateInstanceInformation",
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           }
       ]
   }
   ```

------

   Para obter informações sobre como usar uma chave KMS para criptografar dados de sessão, consulte [Ativar a criptografia de chaves do KMS de dados de sessão (console)](session-preferences-enable-encryption.md).

   Se você não or usar a criptografia do AWS KMS para sua sessão de dados, poderá remover o seguinte conteúdo da política:

   ```
   ,
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "key-name"
           }
   ```

1. Escolha **Próximo: tags**.

1. (Opcional) Adicione tags escolhendo **Add tag** (Adicionar tag) e inserindo as tags preferenciais para a política.

1. Escolha **Próximo: revisar**.

1. Na página **Revisar política**, em **Nome**, digite um nome para a política em linha, como **SessionManagerPermissions**.

1. (Opcional) Em **Descrição**, digite uma descrição para a política. 

1. Escolha **Criar política**.

1. No painel de navegação, escolha **Roles** (Funções) e **Create role** (Criar função).

1. Na página **Criar perfil**, escolha **Serviço da AWS** e, para **Caso de uso**, escolha **EC2**.

1. Escolha **Próximo**.

1. Na página **Add permissions** (Adicionar políticas), marque a caixa de seleção à esquerda do nome da política que acabou de criar, por exemplo, **SessionManagerPermissions**.

1. Escolha **Próximo**.

1. Na página **Name, review, and create** (Nomear, revisar e criar), em **Role name** (Nome da função), digite um nome para a função do IAM, por exemplo, **MySessionManagerRole**.

1. (Opcional) Em **Role description (Descrição da função)**, digite uma descrição para o perfil de instância. 

1. (Opcional) Adicione tags escolhendo **Add tag** (Adicionar tag) e inserindo as tags preferenciais para a função.

   Selecione **Criar perfil**.

Para obter informações sobre as ações `ssmmessages`, consulte [Referência: ec2messages, ssmmessages e outras operações da API](systems-manager-setting-up-messageAPIs.md).

## Crie uma função do IAM com permissões para o Session Manager, Amazon S3 e CloudWatch Logs (console)
<a name="create-iam-instance-profile-ssn-logging"></a>

Use o procedimento a seguir para criar uma função do IAM personalizada com uma política que fornece permissões para ações do Session Manager em suas instâncias. A política também fornece as permissões necessárias para que logs de sessão sejam armazenados em buckets do Amazon Simple Storage Service (Amazon S3) e em grupos de logs do Amazon CloudWatch Logs.

**Importante**  
Para gerar logs de sessão em um bucket do Amazon S3 que pertença a outra Conta da AWS, você deve adicionar a permissão do IAM `s3:PutObjectAcl` à política de perfil do IAM. Além disso, é necessário garantir que a política do bucket conceda acesso entre contas ao perfil do IAM usado pela conta proprietária para conceder permissões do Systems Manager para instâncias gerenciadas. Se o bucket usar a criptografia do Key Management Service (KMS), a política do KMS do bucket também deverá conceder esse acesso entre contas. Para obter mais informações sobre como configurar permissões de bucket entre contas no Amazon S3, consulte [Granting cross-account bucket permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) no *Guia do usuário do Amazon Simple Storage Service*. Se as permissões entre contas não forem adicionadas, a conta que possui o bucket do Amazon S3 não poderá acessar os logs de saída da sessão.

Para obter informações sobre como especificar as preferências para armazenar logs de sessão, consulte [Habilitar e desabilitar o registro em log de sessão](session-manager-logging.md).

**Para criar uma função do IAM com permissões para o Session Manager, Amazon S3 e CloudWatch Logs (console)**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**. (Se aparecer um botão **Get Started** (Iniciar), selecione-o e, em seguida, clique em **Create Policy** (Criar política).

1. Selecione a guia **JSON**.

1. Substitua o conteúdo padrão pela política a seguir. Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel",
                   "ssm:UpdateInstanceInformation"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/s3-prefix/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetEncryptionConfiguration"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           },
           {
               "Effect": "Allow",
               "Action": "kms:GenerateDataKey",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Escolha **Próximo: tags**.

1. (Opcional) Adicione tags escolhendo **Add tag** (Adicionar tag) e inserindo as tags preferenciais para a política.

1. Escolha **Próximo: revisar**.

1. Na página **Revisar política**, em **Nome**, digite um nome para a política em linha, como **SessionManagerPermissions**.

1. (Opcional) Em **Descrição**, digite uma descrição para a política. 

1. Escolha **Criar política**.

1. No painel de navegação, escolha **Perfis** e **Criar perfil**.

1. Na página **Criar perfil**, escolha **Serviço da AWS** e, para **Caso de uso**, escolha **EC2**.

1. Escolha **Próximo**.

1. Na página **Add permissions** (Adicionar políticas), marque a caixa de seleção à esquerda do nome da política que acabou de criar, por exemplo, **SessionManagerPermissions**.

1. Escolha **Próximo**.

1. Na página **Name, review, and create** (Nomear, revisar e criar), em **Role name** (Nome da função), digite um nome para a função do IAM, por exemplo, **MySessionManagerRole**.

1. (Opcional) Em **Role description** (Descrição da função), digite uma descrição para a função. 

1. (Opcional) Adicione tags escolhendo **Add tag** (Adicionar tag) e inserindo as tags preferenciais para a função.

1. Selecione **Criar perfil**.

# Etapa 3: controlar o acesso da sessão pelos nós gerenciados
<a name="session-manager-getting-started-restrict-access"></a>

Você concede ou revoga o acesso do Session Manager a nós gerenciados usando políticas do AWS Identity and Access Management (IAM). É possível criar uma política e anexá-la a um usuário ou grupo do IAM que especifica a quais nós gerenciados o usuário ou grupo pode se conectar. Também é possível especificar as operações de API do Session Manager que o usuário ou os grupos podem realizar nesses nós gerenciados. 

Para ajudar você a começar a usar as políticas de permissão do IAM para o Session Manager, criamos exemplos de políticas para um usuário final e um usuário administrador. Você pode usar essas políticas fazendo apenas pequenas alterações. Ou use esses exemplos como um guia para criar políticas personalizadas do IAM. Para obter mais informações, consulte [Exemplo de políticas do IAM para Session Manager](getting-started-restrict-access-quickstart.md). Para obter informações sobre como criar políticas do IAM e anexá-las a usuários ou grupos, consulte [Criação de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) e [Adição e remoção de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do IAM*.

**Sobre formatos de ARN do ID da sessão**  
Ao criar uma política do IAM para acesso do Session Manager, especifique um ID da sessão como parte do nome do recurso da Amazon (ARN). O ID da sessão contém o nome do usuário como variável. Para ajudar a ilustrar isso, veja o formato de um ARN do Session Manager e um exemplo: 

```
arn:aws:ssm:region-id:account-id:session/session-id
```

Por exemplo:

```
arn:aws:ssm:us-east-2:123456789012:session/JohnDoe-1a2b3c4d5eEXAMPLE
```

Para obter mais informações sobre usar variáveis em políticas IAM, consulte [Elementos da política do IAM: variáveis](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html). 

**Topics**
+ [Iniciar uma sessão de shell padrão especificando o documento da sessão padrão nas políticas do IAM](getting-started-default-session-document.md)
+ [Iniciar uma sessão de shell com um documento ao especificar os documentos da sessão nas políticas do IAM](getting-started-specify-session-document.md)
+ [Exemplo de políticas do IAM para Session Manager](getting-started-restrict-access-quickstart.md)
+ [Exemplos adicionais de políticas do IAM para o Session Manager](getting-started-restrict-access-examples.md)

# Iniciar uma sessão de shell padrão especificando o documento da sessão padrão nas políticas do IAM
<a name="getting-started-default-session-document"></a>

Quando você configura o Session Manager para sua Conta da AWS ou altera as preferências de sessão no console do Systems Manager, o sistema cria um documento de sessão do SSM chamado `SSM-SessionManagerRunShell`. Trata-se do documento padrão da sessão. O Session Manager usa esse documento para armazenar suas preferências de sessão, que incluem informações como:
+ Um local em que você deseja salvar os dados da sessão, como um bucket do Amazon Simple Storage Service (Amazon S3) ou um grupo de logs do Amazon CloudWatch Logs.
+ Um ID de chave do AWS Key Management Service (AWS KMS) para criptografar os dados da sessão.
+ Se o suporte para Executar como é permitido para suas sessões.

Este é um exemplo das informações contidas no documento de preferências da sessão `SSM-SessionManagerRunShell`.

```
{
  "schemaVersion": "1.0",
  "description": "Document to hold regional settings for Session Manager",
  "sessionType": "Standard_Stream",
  "inputs": {
    "s3BucketName": "amzn-s3-demo-bucket",
    "s3KeyPrefix": "MyS3Prefix",
    "s3EncryptionEnabled": true,
    "cloudWatchLogGroupName": "MyCWLogGroup",
    "cloudWatchEncryptionEnabled": false,
    "kmsKeyId": "1a2b3c4d",
    "runAsEnabled": true,
    "runAsDefaultUser": "RunAsUser"
  }
}
```

Por padrão, o Session Manager usa o documento de sessão padrão quando o usuário inicia a sessão pelo Console de gerenciamento da AWS. Isso se aplica ao Fleet Manager ou ao Session Manager no console do Systems Manager ou ao EC2 Connect no console do Amazon EC2. O Session Manager também usa o documento de sessão padrão quando um usuário inicia uma sessão usando um comando da AWS CLI, como neste exemplo:

```
aws ssm start-session \
    --target i-02573cafcfEXAMPLE
```

Para iniciar uma sessão padrão do shell, você deve especificar o documento da sessão padrão na política do IAM, conforme mostrado no exemplo a seguir.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnableSSMSession",
      "Effect": "Allow",
      "Action": [
        "ssm:StartSession"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:instance/instance-id",
        "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssmmessages:OpenDataChannel"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

# Iniciar uma sessão de shell com um documento ao especificar os documentos da sessão nas políticas do IAM
<a name="getting-started-specify-session-document"></a>

Ao usar o comando [start-session](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html) da AWS CLI usando o documento de sessão padrão, você poderá omitir o nome do documento. O sistema chama automaticamente o documento da sessão `SSM-SessionManagerRunShell`.

Em todos os outros casos é preciso especificar um valor para o parâmetro `document-name`. Quando o usuário especifica o nome de um documento de sessão em um comando, os sistemas verificam sua política do IAM para conferir se há permissão para acessar o documento. Se não houver permissão, a solicitação de conexão falhará. Os exemplos a seguir incluem o parâmetro `document-name` com o documento da sessão `AWS-StartPortForwardingSession`.

```
aws ssm start-session \
    --target i-02573cafcfEXAMPLE \
    --document-name AWS-StartPortForwardingSession \
    --parameters '{"portNumber":["80"], "localPortNumber":["56789"]}'
```

Para obter um exemplo de como especificar um documento de sessão do Session Manager em uma política do IAM, consulte [Políticas do usuário final do Quickstart para o Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user).

**nota**  
Para iniciar uma sessão usando SSH, é necessário concluir as etapas de configuração no nó gerenciado de destino *e* na máquina local do usuário. Para obter mais informações, consulte [(Opcional) Permitir e controlar permissões para conexões SSH por meio do Session Manager](session-manager-getting-started-enable-ssh-connections.md).

# Exemplo de políticas do IAM para Session Manager
<a name="getting-started-restrict-access-quickstart"></a>

Use os exemplos nesta seção para ajudar a criar políticas do AWS Identity and Access Management (IAM) que fornecem as permissões necessárias mais comuns para acesso ao Session Manager. 

**nota**  
Também é possível usar uma política de AWS KMS key para controlar quais entidades IAM (usuários ou perfis) e Contas da AWS recebem acesso à sua chave do KMS. Para obter informações, consulte [Visão geral do gerenciamento do acesso aos seus recursos do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html) e [Usar políticas de chaves no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) no *Manual do desenvolvedor do AWS Key Management Service*.

**Topics**
+ [Políticas do usuário final do Quickstart para o Session Manager](#restrict-access-quickstart-end-user)
+ [Política do administrador do Quickstart para o Session Manager](#restrict-access-quickstart-admin)

## Políticas do usuário final do Quickstart para o Session Manager
<a name="restrict-access-quickstart-end-user"></a>

Use os exemplos a seguir para criar políticas de usuário final do IAM para o Session Manager. 

É possível criar uma política que permita que os usuários iniciem sessões apenas no console do Session Manager e na AWS Command Line Interface (AWS CLI), apenas no console do Amazon Elastic Compute Cloud (Amazon EC2) ou nos três.

Essas políticas fornecem aos usuários finais a capacidade de iniciar uma sessão de um nó gerenciado específico e encerrar apenas suas próprias sessões. Consulte o [Exemplos adicionais de políticas do IAM para o Session Manager](getting-started-restrict-access-examples.md) para obter exemplos de customização que você pode querer fazer na política.

Nas políticas de exemplo a seguir, substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações. 

Escolha entre as guias a seguir para exibir a política de exemplo para o intervalo de acesso à sessão que você deseja fornecer.

------
#### [ Session Manager and Fleet Manager ]

Use esta política de exemplo para conceder aos usuários a capacidade de iniciar e retomar sessões apenas dos consoles do Session Manager e do Fleet Manager. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceProperties",
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
        }
    ]
}
```

------

------
#### [ Amazon EC2 ]

Use esta política de exemplo para conceder aos usuários a capacidade de iniciar e retomar sessões apenas do console do Amazon EC2. Esta política não fornece todas as permissões necessárias para iniciar sessões do console do Session Manager e da AWS CLI.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:username}-*"
            ]
        }
    ]
}
```

------

------
#### [ AWS CLI ]

Use esta política de exemplo para conceder aos usuários a capacidade de iniciar e retomar sessões apenas via AWS CLI.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
        }
    ]
}
```

------

------

**nota**  
`SSM-SessionManagerRunShell` é o nome padrão do documento do SSM que o Session Manager cria para armazenar suas preferências de configuração de sessão. Você pode criar um documento de sessão personalizado e especificá-lo nessa política. Você também pode especificar o documento `AWS-StartSSHSession` fornecido pela AWS para usuários que estão iniciando sessões usando SSH. Para obter informações sobre as etapas de configuração necessárias para oferecer suporte a sessões que usam SSH, consulte [(Opcional) Permitir e controlar permissões para conexões SSH por meio do Session Manager](session-manager-getting-started-enable-ssh-connections.md).  
A permissão `kms:GenerateDataKey` permite a criação de uma chave de criptografia de dados que será usada para criptografar dados de sessão. Se você usar a criptografia do AWS Key Management Service (AWS KMS) para os dados da sessão, substitua *key-name* pelo nome do recurso da Amazon (ARN) da chave KMS que você deseja usar, no formato `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE`. Se você não for usar a criptografia de chaves do KMS para dados de sessão, remova o conteúdo da política a seguir.  

```
{
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "key-name"
        }
```
Para obter informações sobre o uso do AWS KMS para criptografar dados de sessão, consulte [Ativar a criptografia de chaves do KMS de dados de sessão (console)](session-preferences-enable-encryption.md).  
A permissão para [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) é necessária nos casos em que um usuário tenta iniciar uma sessão via console do Amazon EC2, mas o SSM Agent deve ser atualizado para a versão mínima exigida do Session Manager primeiro. Run Command é usado para enviar um comando à instância para atualizar o atendente.

## Política do administrador do Quickstart para o Session Manager
<a name="restrict-access-quickstart-admin"></a>

Use os exemplos a seguir para criar políticas de administrador do IAM para o Session Manager. 

Essas políticas fornecem aos administradores a capacidade de iniciar uma sessão para nós gerenciados marcados com `Key=Finance,Value=WebServers`, permissões para criar, atualizar e excluir preferências e permissões para encerrar apenas suas sessões próprias. Consulte o [Exemplos adicionais de políticas do IAM para o Session Manager](getting-started-restrict-access-examples.md) para obter exemplos de customização que você pode querer fazer na política.

É possível criar uma política que permita que os administradores executem essas tarefas apenas do console do Session Manager e da AWS CLI, apenas do console do Amazon EC2 ou dos três.

Nas políticas de exemplo a seguir, substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações. 

Escolha entre as guias a seguir para exibir a política de exemplo para o cenário de acesso ao qual você deseja oferecer suporte.

------
#### [ Session Manager and CLI ]

Use esta política de exemplo para conceder aos administradores a capacidade de executar tarefas relacionadas à sessão somente do console do Session Manager e da AWS CLI. Esta política não fornece todas as permissões necessárias para executar tarefas relacionadas à sessão do console do Amazon EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:*:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/Finance": [
                        "WebServers"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceProperties",
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:CreateDocument",
                "ssm:UpdateDocument",
                "ssm:GetDocument",
                "ssm:StartSession"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        }
    ]
}
```

------

------
#### [ Amazon EC2 ]

Use esta política de exemplo para conceder aos administradores a capacidade de executar tarefas relacionadas à sessão somente do console do Amazon EC2. Essa política não fornece todas as permissões necessárias para executar tarefas relacionadas à sessão do console do Session Manager e da AWS CLI.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/tag-key": [
                        "tag-value"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        }
    ]
}
```

------

------
#### [ Session Manager, CLI, and Amazon EC2 ]

Use esta política de exemplo para conceder aos administradores a capacidade de executar tarefas relacionadas à sessão do console do Session Manager, da AWS CLI e do console do Amazon EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/tag-key": [
                        "tag-value"
                    ]
                }
            }
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceInformation",
                "ssm:DescribeInstanceProperties",
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:CreateDocument",
                "ssm:UpdateDocument",
                "ssm:GetDocument",
                "ssm:StartSession"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        }
    ]
}
```

------

------

**nota**  
A permissão para [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) é necessária nos casos em que um usuário tenta iniciar uma sessão do console do Amazon EC2, mas um comando deve ser enviado para atualizar o SSM Agent primeiro.

# Exemplos adicionais de políticas do IAM para o Session Manager
<a name="getting-started-restrict-access-examples"></a>

Consulte os seguintes exemplos de políticas para ajudar você a criar uma política do AWS Identity and Access Management (IAM) personalizada para que qualquer usuário do Session Manager acesse cenários os quais deseja oferecer suporte.

**Topics**
+ [Exemplo 1: conceder aos usuários acesso a documentos do console](#grant-access-documents-console-example)
+ [Exemplo 2: restringir o acesso a nós gerenciados específicos](#restrict-access-example-instances)
+ [Exemplo 3: restringir o acesso com base em etiquetas](#restrict-access-example-instance-tags)
+ [Exemplo 4: permitir que um usuário encerre somente sessões iniciadas por ele](#restrict-access-example-user-sessions)
+ [Exemplo 5: permitir acesso completo (administrativo) a todas as sessões](#restrict-access-example-full-access)

## Exemplo 1: conceder aos usuários acesso a documentos do console
<a name="grant-access-documents-console-example"></a>

É possível permitir que os usuários especifiquem um documento personalizado ao iniciarem uma sessão usando o console do Gerenciador de Sessões. O exemplo de política do IAM a seguir concede permissão para acessar documentos com nomes que começam com **SessionDocument-** na Região da AWS e Conta da AWS especificadas.

Para usar essa política, substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetDocument",
                "ssm:ListDocuments"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SessionDocument-*"
            ]
        }
    ]
}
```

------

**nota**  
O console do Gerenciador de Sessões oferece suporte somente a documentos de sessão que tenham um `sessionType` de `Standard_Stream` que sejam usados para definir as preferências da sessão. Para obter mais informações, consulte [Esquema do documento de sessão](session-manager-schema.md).

## Exemplo 2: restringir o acesso a nós gerenciados específicos
<a name="restrict-access-example-instances"></a>

É possível criar uma política do IAM que defina a quais nós gerenciados um usuário pode se conectar usando o Gerenciador de Sessões. Por exemplo, a política a seguir concede a um usuário permissão para iniciar, encerrar e retomar as sessões em três nós específicos. A política restringe o usuário de se conectar a nós diferentes dos especificados.

**nota**  
Para usuários federados, consulte [Exemplo 4: permitir que um usuário encerre somente sessões iniciadas por ele](#restrict-access-example-user-sessions).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-1234567890EXAMPLE",
                "arn:aws:ec2:us-east-1:111122223333:instance/i-abcdefghijEXAMPLE",
                "arn:aws:ec2:us-east-1:111122223333:instance/i-0e9d8c7b6aEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       }
    ]
}
```

------

## Exemplo 3: restringir o acesso com base em etiquetas
<a name="restrict-access-example-instance-tags"></a>

Você pode restringir o acesso a nós gerenciados com base em etiquetas específicas. No exemplo a seguir, o usuário pode iniciar e retomar sessões (`Effect: Allow, Action: ssm:StartSession, ssm:ResumeSession`) em qualquer nó gerenciado (`Resource: arn:aws:ec2:region:987654321098:instance/*`) com a condição de que o nó seja um Finance WebServer (`ssm:resourceTag/Finance: WebServer`). Se o usuário enviar um comando para um nó gerenciado que não está etiquetado ou que tem qualquer outra etiqueta que não seja `Finance: WebServer`, o resultado do comando incluirá `AccessDenied`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/Finance": [
                        "WebServers"
                    ]
                }
            }
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

Você pode criar políticas do IAM que permitem que um usuário inicie sessões para nós gerenciados que são marcados com várias etiquetas. A política a seguir permite que o usuário inicie sessões em nós gerenciados que tiverem ambas as etiquetas especificadas aplicadas a eles. Se um usuário enviar um comando para um nó gerenciado que não estiver marcado com ambas as etiquetas, o resultado do comando incluirá `AccessDenied`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "ssm:StartSession"
         ],
         "Resource":"*",
         "Condition":{
            "StringLike":{
               "ssm:resourceTag/tag-key1":[
                  "tag-value1"
               ],
               "ssm:resourceTag/tag-key2":[
                  "tag-value2"
               ]
            }
         }
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
      {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
      }
   ]
}
```

------

Para obter mais informações sobre como criar políticas do IAM, consulte [Políticas gerenciadas e em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do IAM*. Para obter mais informações sobre a marcação de nós gerenciados, consulte [Marcar recursos do Amazon EC2 com tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) no *Guia do usuário do Amazon EC2* (o conteúdo é aplicável a nós gerenciados do Windows e do Linux). Para obter informações sobre como reforçar seu procedimento de segurança em relação a comandos em nível raiz não autorizados em seus nós gerenciados, consulte [Restringir o acesso aos comandos em nível raiz por meio do SSM Agent](ssm-agent-restrict-root-level-commands.md)

## Exemplo 4: permitir que um usuário encerre somente sessões iniciadas por ele
<a name="restrict-access-example-user-sessions"></a>

O Session Manager fornece dois métodos para controlar quais sessões um usuário federado da conta da Conta da AWS tem permissão para encerrar.
+ Use a variável `{aws:userid}` em uma política de permissões do AWS Identity and Access Management (IAM). Os usuários federados podem encerrar apenas as sessões que eles iniciaram. Para usuários não federados, use o Método 1. Para usuários federados, use o Método 2.
+ Use as tags fornecidas pelas tags da AWS em uma política de permissões do IAM. Na política, inclua uma condição que permita que os usuários encerrem somente as sessões marcadas com as tags específicas fornecidas pela AWS. Esse método funciona para todas as contas, incluindo aquelas que usam IDs federados para conceder acesso à AWS.

### Método 1: Conceder privilégios TerminateSession usando a variável `{aws:username}`
<a name="restrict-access-example-user-sessions-username"></a>

A política do IAM a seguir permite que um usuário exiba os IDs de todas as sessões na sua conta. No entanto, os usuários podem interagir com os nós gerenciados apenas por meio das sessões que eles iniciaram. Um usuário que teve a política a seguir atribuída não poderá se conectar nem encerrar sessões de outros usuários. A política usa a variável `{aws:username}` para atingir isso.

**nota**  
Esse método não funciona para contas que usam IDs federados para conceder acesso à AWS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:DescribeSessions"
            ],
            "Effect": "Allow",
            "Resource": [
                "*"
            ]
        },
        {
            "Action": [
                "ssm:TerminateSession"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:username}-*"
            ]
        }
    ]
}
```

------

### Método 2: Conceder privilégios TerminateSession usando tags fornecidas pela AWS
<a name="restrict-access-example-user-sessions-tags"></a>

É possível controlar quais sessões um usuário poderá encerrar, incluindo variáveis ​​de chave de etiqueta condicional em uma política do IAM. A condição determina que o usuário só pode encerrar sessões marcadas com uma ou ambas as variáveis de chave de tag específicas e um valor especificado.

Quando um usuário em sua Conta da AWS inicia uma sessão, o Session Manager aplica duas tags de recurso a ela. A primeira tag de recurso é `aws:ssmmessages:target-id`, com a qual você especifica o ID do destino que o usuário tem permissão para encerrar. A outra tag de recurso é `aws:ssmmessages:session-id`, com um valor no formato de `role-id:caller-specified-role-name`.

**nota**  
Session ManagerO não oferece suporte a tags personalizadas para essa política de controle de acesso do IAM. Use as tags de recurso fornecidas pela AWS, descritas abaixo. 

 ** `aws:ssmmessages:target-id` **   
Com essa chave de etiqueta, inclua o ID do nó gerenciado como o valor na política. No bloco de política a seguir, a instrução da condição permite que um usuário encerre apenas o nó i-02573cafcfEXAMPLE.    
****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                "ssm:TerminateSession"
             ],
             "Resource": "*",
             "Condition": {
                 "StringLike": {
                     "ssm:resourceTag/aws:ssmmessages:target-id": [
                        "i-02573cafcfEXAMPLE"
                     ]
                 }
             }
         }
     ]
}
```
Se o usuário tentar encerrar uma sessão para a qual não recebeu a permissão `TerminateSession`, ele receberá um erro `AccessDeniedException`.

 ** `aws:ssmmessages:session-id` **   
Essa chave de tag inclui uma variável para o ID de sessão como o valor na solicitação para iniciar uma sessão.  
O exemplo a seguir mostra uma política para casos em que o tipo de chamador é `User`. O valor fornecido em `aws:ssmmessages:session-id` é o ID do usuário. Neste exemplo, `AIDIODR4TAW7CSEXAMPLE` representa o ID de um usuário na sua conta da Conta da AWS. Para recuperar o ID de um usuário na sua Conta da AWS, use o comando `get-user` do IAM. Para obter mais informações, consulte [get-user](https://docs.aws.amazon.com/IAM/latest/UserGuide/get-user.html) na seção AWS Identity and Access Management do *Manual do usuário do IAM*     
****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                "ssm:TerminateSession"
             ],
             "Resource": "*",
             "Condition": {
                 "StringLike": {
                     "ssm:resourceTag/aws:ssmmessages:session-id": [
                        "AIDIODR4TAW7CSEXAMPLE"
                     ]
                 }
             }
         }
     ]
}
```
O exemplo a seguir mostra uma política para casos em que o tipo de chamador é `AssumedRole`. Você pode usar a variável `{aws:userid}` para o valor fornecido para `aws:ssmmessages:session-id`. Como alternativa, você pode codificar um ID de função para o valor fornecido para `aws:ssmmessages:session-id`. Se você codificar um ID de função, deverá fornecer o valor no formato `role-id:caller-specified-role-name`. Por exemplo, `AIDIODR4TAW7CSEXAMPLE:MyRole`.  
Para que as tags do sistema sejam aplicadas, o ID de função fornecido pode conter apenas os seguintes caracteres: letras Unicode, 0–9, espaço, `_`, `.`, `:`, `/`, `=`, `+`, `-`, `@` e `\`.
Para recuperar o ID de uma função na sua Conta da AWS, use o comando `get-caller-identity`. Para obter informações, consulte [get-caller-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html) na Referência de comandos da AWS CLI.     
****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                "ssm:TerminateSession"
             ],
             "Resource": "*",
             "Condition": {
                 "StringLike": {
                     "ssm:resourceTag/aws:ssmmessages:session-id": [
                        "${aws:userid}*"
                     ]
                 }
             }
         }
     ]
}
```
Se um usuário tentar encerrar uma sessão para a qual não recebeu a permissão `TerminateSession`, ele receberá um erro `AccessDeniedException`.

**`aws:ssmmessages:target-id`** e **`aws:ssmmessages:session-id`**  
Você também pode criar políticas do IAM que permitem que um usuário encerre sessões marcadas com ambas as tags do sistema, conforme este exemplo.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "ssm:TerminateSession"
         ],
         "Resource":"*",
         "Condition":{
            "StringLike":{
               "ssm:resourceTag/aws:ssmmessages:target-id":[
                  "i-02573cafcfEXAMPLE"
               ],
               "ssm:resourceTag/aws:ssmmessages:session-id":[
                  "${aws:userid}*"
               ]
            }
         }
      }
   ]
}
```

## Exemplo 5: permitir acesso completo (administrativo) a todas as sessões
<a name="restrict-access-example-full-access"></a>

A seguinte política do IAM permite que um usuário interaja totalmente com todos os nós gerenciados e todas as sessões criadas por todos os usuários para todos os nós. Ela deve ser concedida somente a um administrador que precisa de controle total sobre as atividades do Session Manager da sua organização.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession",
                "ssm:ResumeSession",
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus"
            ],
            "Effect": "Allow",
            "Resource": [
                "*"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       }
    ]
}
```

------

# Etapa 4: Configurar preferências de sessão
<a name="session-manager-getting-started-configure-preferences"></a>

Os usuários que receberam permissões administrativas em suas políticas do AWS Identity and Access Management (IAM) podem configurar as preferências da sessão, inclusive:
+ Ative o suporte para Executar como para os nós gerenciados do Linux. Isso possibilita iniciar sessões usando as credenciais de um usuário do sistema operacional especificado, em vez de usar as credenciais de uma conta `ssm-user` gerada pelo sistema que o Session Manager do AWS Systems Manager pode criar em um nó gerenciado.
+ Configure o Session Manager para usar a criptografia do AWS KMS key para fornecer proteção adicional aos dados transmitidos entre máquinas clientes e nós gerenciados.
+ Configure o Session Manager para criar e enviar logs de histórico de sessão a um bucket do Amazon Simple Storage Service (Amazon S3) ou a um grupo de logs do Amazon CloudWatch Logs. Os dados de log armazenados podem ser usados para relatar as conexões da sessão feitas em seus nós gerenciados e os comandos executados neles durante as sessões.
+ Configurar os limites de tempo da sessão. Você pode usar essa configuração para especificar quando terminar uma sessão após um período de inatividade.
+ Configure o Session Manager para usar perfis de shell configuráveis. Esses perfis personalizáveis permitem que você defina opções preferenciais dentro das sessões, como preferências de shell, variáveis de ambiente, diretórios de trabalho e execução de vários comandos quando uma sessão é iniciada.

Para obter mais informações sobre as permissões necessárias para configurar preferências do Session Manager, consulte [Conceder ou negar permissões a um usuário para atualizar as preferências do Session Manager](preference-setting-permissions.md).

**Topics**
+ [Conceder ou negar permissões a um usuário para atualizar as preferências do Session Manager](preference-setting-permissions.md)
+ [Especificar um valor de tempo limite de sessão ociosa](session-preferences-timeout.md)
+ [Especifique a duração máxima da sessão](session-preferences-max-timeout.md)
+ [Permitir perfis de shell configuráveis](session-preferences-shell-config.md)
+ [Ative o suporte a Executar como para nós gerenciados do Linux e do macOS](session-preferences-run-as.md)
+ [Ativar a criptografia de chaves do KMS de dados de sessão (console)](session-preferences-enable-encryption.md)
+ [Criar um documento de preferências (linha de comando) do Session Manager](getting-started-create-preferences-cli.md)
+ [Atualizar preferências do Session Manager (linha de comando)](getting-started-configure-preferences-cli.md)

Para obter informações sobre como usar o console do Systems Manager para configurar as opções de registro em log dos dados da sessão, consulte os seguintes tópicos:
+  [Registrar dados da sessão em log usando o Amazon S3 (console)](session-manager-logging-s3.md) 
+  [Transmitir dados da sessão usando o Amazon CloudWatch Logs (console)](session-manager-logging-cwl-streaming.md) 
+  [Registrar dados da sessão em log usando o Amazon CloudWatch Logs (console)](session-manager-logging-cloudwatch-logs.md) 

# Conceder ou negar permissões a um usuário para atualizar as preferências do Session Manager
<a name="preference-setting-permissions"></a>

As preferências da conta são armazenadas como documentos do AWS Systems Manager SSM para Região da AWS. Antes que um usuário possa atualizar as preferências de conta para sessões em sua conta, eles devem receber as permissões necessárias para acessar o tipo de documento do SSM onde essas preferências estão armazenadas. Essas permissões são concedidas por meio de uma política do AWS Identity and Access Management (IAM).

**A política de administrador para permitir que as preferências sejam criadas e atualizadas**  
Um administrador pode ter a seguinte política para criar e atualizar as preferências a qualquer momento. A política a seguir dá permissão para acessar e atualizar o documento `SSM-SessionManagerRunShell` em uma conta 123456789012 na us-east-2. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

**Política de usuário para impedir que as preferências sejam atualizados**  
Use a política a seguir para impedir que os usuários finais da sua conta atualizem ou substitua as preferências do Session Manager. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Deny",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

# Especificar um valor de tempo limite de sessão ociosa
<a name="session-preferences-timeout"></a>

O Session Manager, uma ferramenta do AWS Systems Manager, permite especificar o tempo para permitir que um usuário fique inativo antes do sistema encerrar uma sessão. Por padrão, as sessões expiram após 20 minutos de inatividade. Você pode modificar essa configuração para especificar que uma sessão expira entre 1 e 60 minutos de inatividade. Algumas agências profissionais de segurança de computação recomendam definir tempos limite de sessão ociosa para um máximo de 15 minutos. 

O cronômetro de tempo limite de sessão inativa é reiniciado quando o Session Manager recebe entradas do lado do cliente. Essas entradas incluem, entre outras:
+ Entrada no teclado no terminal
+ Eventos de redimensionamento de janelas do terminal ou do navegador
+ Reconexão de sessão (ResumeSession), o que pode ocorrer devido a interrupções na rede, gerenciamento de guias do navegador ou desconexões do WebSocket

Como esses eventos reiniciam o cronômetro de inatividade, uma sessão pode permanecer ativa por mais tempo que o tempo limite configurado, mesmo sem comandos diretos no terminal.

Se seus requisitos de segurança exigirem limites de duração da sessão rígidos, independentemente da atividade, use a configuração *Duração máxima da sessão*, além do tempo limite de inatividade. Para obter mais informações, consulte [Especifique a duração máxima da sessão](session-preferences-max-timeout.md).

**Para permitir o tempo limite da sessão ociosa (console)**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Session Manager**.

1. Escolha a guia **Preferences (Preferências)** e, em seguida, escolha **Edit (Editar)**.

1. Especifique a quantidade de tempo para permitir que um usuário fique inativo antes que uma sessão termine no campo **minutes** (minutos) em **Idle session timeout** (Tempo limite de sessão ociosa).

1. Escolha **Salvar**.

# Especifique a duração máxima da sessão
<a name="session-preferences-max-timeout"></a>

O Session Manager, uma ferramenta do AWS Systems Manager, permite que você especifique a duração máxima de uma sessão antes que ela termine. Por padrão, sessões não têm duração máxima. O valor especificado para a duração máxima da sessão deve estar entre 1 e 1.440 minutos.

**Para especificar a duração máxima da sessão (console)**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Session Manager**.

1. Escolha a guia **Preferences (Preferências)** e, em seguida, escolha **Edit (Editar)**.

1. Marque a caixa de seleção ao lado de **Enable maximum session duration** (Ativar a duração máxima da sessão).

1. Especifique a duração máxima da sessão antes que ela termine, no campo **minutes** (minutos) em **Maximum session duration** (Duração máxima da sessão).

1. Escolha **Salvar**.

# Permitir perfis de shell configuráveis
<a name="session-preferences-shell-config"></a>

Por padrão, as sessões nas instâncias do EC2 para Linux começam a usar o shell Bourne (sh). No entanto, talvez prefira usar outro shell como bash. Ao permitir perfis de shell configuráveis, você pode personalizar preferências dentro de sessões como preferências de shell, variáveis de ambiente, diretórios de trabalho e executar vários comandos quando uma sessão é iniciada.

**Importante**  
O Systems Manager não verifica os comandos ou scripts em seu perfil de shell para ver quais alterações eles fariam em uma instância antes de serem executados. Para restringir a capacidade de um usuário modificar comandos ou scripts inseridos em seu perfil de shell, recomendamos o seguinte:  
Crie um documento personalizado do tipo de sessão para os usuários e funções do AWS Identity and Access Management (IAM). Em seguida, modifique a política do IAM para esses usuários e funções para que a operação da API `StartSession` só possa usar o documento do tipo Sessão que você criou para eles. Para obter informações, consulte [Criar um documento de preferências (linha de comando) do Session Manager](getting-started-create-preferences-cli.md) e [Políticas do usuário final do Quickstart para o Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user).
Modifique a política do IAM para seus usuários e funções do IAM para negar acesso à operação da API `UpdateDocument` do recurso de documento do tipo Sessão que você criar. Isso permite que seus usuários e funções usem o documento que você criou para suas preferências de sessão sem permitir que eles modifiquem qualquer uma das configurações.

**Para ativar perfis de shell configuráveis**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Session Manager**.

1. Escolha a guia **Preferences (Preferências)** e, em seguida, escolha **Edit (Editar)**.

1. Especifique as variáveis de ambiente, preferências de shell ou comandos que você deseja executar quando a sessão for iniciada nos campos dos sistemas operacionais aplicáveis.

1. Escolha **Salvar**.

Os comandos a seguir são exemplos que podem ser adicionados ao seu perfil do shell.

Altere para o shell bash e para o diretório /usr nas instâncias do Linux.

```
exec /bin/bash
cd /usr
```

Emita um carimbo de data/hora e uma mensagem de boas-vindas no início de uma sessão.

------
#### [ Linux & macOS ]

```
timestamp=$(date '+%Y-%m-%dT%H:%M:%SZ')
user=$(whoami)
echo $timestamp && echo "Welcome $user"'!'
echo "You have logged in to a production instance. Note that all session activity is being logged."
```

------
#### [  Windows  ]

```
$timestamp = (Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ")
$splitName = (whoami).Split("\")
$user = $splitName[1]
Write-Host $timestamp
Write-Host "Welcome $user!"
Write-Host "You have logged in to a production instance. Note that all session activity is being logged."
```

------

Visualizar a atividade dinâmica do sistema no início de uma sessão.

------
#### [ Linux & macOS ]

```
top
```

------
#### [  Windows  ]

```
while ($true) { Get-Process | Sort-Object -Descending CPU | Select-Object -First 30; `
Start-Sleep -Seconds 2; cls
Write-Host "Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName"; 
Write-Host "-------  ------    -----      ----- -----   ------     -- -----------"}
```

------

# Ative o suporte a Executar como para nós gerenciados do Linux e do macOS
<a name="session-preferences-run-as"></a>

Por padrão, o Session Manager autentica as conexões ao usar as credenciais da conta `ssm-user` gerada pelo sistema que é criada em um nó gerenciado. (Em máquinas macOS e Linux, a conta é adicionada ao `/etc/sudoers/`). Se desejar, em vez disso, é possível autenticar as sessões usando as credenciais de uma conta de usuário do sistema operacional (SO) ou um usuário de domínio para instâncias ingressadas para um Active Directory. Nesse caso, o Session Manager verifica se a conta do SO especificada existe no nó ou no domínio antes de iniciar a sessão. Se você tentar iniciar uma sessão usando uma conta do SO que não existe no nó ou no domínio, a conexão falhará.

**nota**  
O Gerenciador de Sessões não oferece suporte ao uso de uma conta de usuário `root` do sistema operacional para autenticar conexões. Para sessões que são autenticadas usando uma conta de usuário do SO, o nível do sistema operacional e as políticas de diretório do nó, como restrições de login ou restrições de uso de recursos do sistema, podem não se aplicar. 

**Como funciona**  
Se você ativar o suporte a Run As (Executar como) para sessões, o sistema verificará a existência de permissões de acesso da seguinte forma:

1. Para o usuário que está iniciando a sessão, a entidade do IAM (usuário ou perfil) foi marcada com `SSMSessionRunAs = os user account name`?

   Em caso afirmativo, o nome do usuário do SO existe no nó gerenciado? Se a resposta for sim, iniciar a sessão. Se isso não acontecer, não permita que uma sessão seja iniciada.

   Se a entidade do IAM *não* tiver sido marcada com `SSMSessionRunAs = os user account name`, continue para a etapa 2.

1. Se a entidade do IAM não foi marcada com `SSMSessionRunAs = os user account name`, um nome de usuário do SO foi especificado nas preferências do Session Manager da Conta da AWS?

   Em caso afirmativo, o nome do usuário do SO existe no nó gerenciado? Se a resposta for sim, iniciar a sessão. Se isso não acontecer, não permita que uma sessão seja iniciada. 

**nota**  
Quando você ativa o suporte “Executar como”, ele evita que o Gerenciador de Sessões inicie sessões usando a conta `ssm-user` em um nó gerenciado. Isso significa que, se o Session Manager falhar ao se conectar usando a conta de usuário do SO especificada, ele não voltará a se conectar pelo método padrão.   
Se você ativar “Executar como” sem especificar uma conta do SO ou marcar uma entidade do IAM e não tiver especificado uma conta do SO nas preferências do Gerenciador de Sessões, as tentativas de conexão da sessão falharão.

**Para ativar o suporte para Executar como para nós gerenciados do Linux e do macOS**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Session Manager**.

1. Escolha a guia **Preferences (Preferências)** e, em seguida, escolha **Edit (Editar)**.

1. Marque a caixa de seleção ao lado de **Habilitar o suporte a Executar como para instâncias do Linux**.

1. Execute um destes procedimentos:
   + **Opção 1**: no campo **Nome de usuário do sistema operacional**, insira o nome da conta de usuário do SO que você deseja usar para iniciar as sessões. Usando essa opção, todas as sessões são executadas pelo mesmo usuário do SO para todos os usuários em sua Conta da AWS que se conectam usando o Session Manager.
   + **Opção 2** (recomendada): escolha o link **Abrir o console do IAM**. No painel de navegação, selecione **Users (Usuários)** ou **Roles (Funções)**. Escolha a entidade (usuário ou função) à qual adicionar tags e escolha a guia **Tags**. Insira `SSMSessionRunAs` para o nome da chave. Insira o nome de uma conta de usuário do SO para o valor da chave. Escolha **Salvar alterações**.

     Usando esta opção, é possível especificar usuários únicos do SO para diferentes entidades do IAM, se desejar. Para obter mais informações sobre a marcação de entidades do IAM (usuários ou perfis), consulte [Recursos de marcação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*.

     Veja um exemplo a seguir.  
![\[Captura de tela da especificação de etiquetas para a permissão de Run As (Executar como) do Session Manager.\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/images/ssn-run-as-tags.png)

1. Escolha **Salvar**.

# Ativar a criptografia de chaves do KMS de dados de sessão (console)
<a name="session-preferences-enable-encryption"></a>

Use o AWS Key Management Service (AWS KMS) para criar e gerenciar chaves de criptografia. Com o AWS KMS, você pode controlar o uso da criptografia em uma grande variedade de Serviços da AWS e nos seus aplicativos. Você pode especificar que os dados da sessão transmitidos entre os nós gerenciados e os computadores locais dos usuários na sua Conta da AWS sejam criptografados usando a criptografia de chaves do KMS. (Isso é um complemento à criptografia TLS 1.2/1.3 que já é fornecida pela AWS por padrão.) Para criptografar os dados da sessão do Session Manager, crie uma chave do KMS *simétrica* usando o AWS KMS.

A criptografia do AWS KMS está disponível para os tipos de sessão `Standard_Stream`, `InteractiveCommands` e `NonInteractiveCommands`. Para usar a opção de criptografar dados da sessão usando uma chave criada no AWS KMS (AWS Systems Manager), a versão 2.3.539.0 ou posterior do SSM Agent deve ser instalada em seu nó gerenciado. 

**nota**  
Você deve permitir a criptografia do AWS KMS para redefinir senhas em seus nós gerenciados no console do AWS Systems Manager. Para obter mais informações, consulte [Redefina uma senha em um nó gerenciado](fleet-manager-reset-password.md#managed-instance-reset-a-password).

Você pode usar uma chave que criou na sua Conta da AWS. Também pode usar uma chave criada em uma diferente Conta da AWS. O criador da chave em uma Conta da AWS diferente deve fornecer as permissões necessárias para usar essa chave.

Depois que você habilitar a criptografia de chaves do KMS para dados de sessão, os usuários que iniciarem sessões e nós gerenciados, às quais eles estiverem conectados, 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 AWS Identity and Access Management. Para obter informações, consulte os seguintes tópicos:
+ Adicione permissões de AWS KMS para usuários na sua conta: [Exemplo de políticas do IAM para Session Manager](getting-started-restrict-access-quickstart.md)
+ Adicione permissões do AWS KMS para nós gerenciados na sua conta: [Etapa 2: verificar ou adicionar permissões de instância para o Session Manager](session-manager-getting-started-instance-profile.md)

Para obter mais informações sobre como criar e gerenciar chaves KMS, consulte o [https://docs.aws.amazon.com/kms/latest/developerguide/](https://docs.aws.amazon.com/kms/latest/developerguide/).

Para obter informações sobre como usar a AWS CLI para ativar a criptografia de chaves do KMS de dados de sessão na sua conta, consulte [Criar um documento de preferências (linha de comando) do Session Manager](getting-started-create-preferences-cli.md) ou [Atualizar preferências do Session Manager (linha de comando)](getting-started-configure-preferences-cli.md).

**nota**  
Há cobrança para usar chaves do KMS. Para obter mais informações, consulte [Definição de preço do AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

**Para ativar a criptografia de chaves do KMS de dados de sessão (console)**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Session Manager**.

1. Escolha a guia **Preferences (Preferências)** e, em seguida, escolha **Edit (Editar)**.

1. Marque a caixa de seleção ao lado de **Enable KMS encryption** (Ativar criptografia KMS).

1. Execute um destes procedimentos:
   + Selecione o botão ao lado de **Select an KMS key in my current account** (Selecione uma chave KMS em minha conta atual) e escolha uma chave da lista.

     - ou -

     Escolha o botão ao lado de **Enter a KMS key alias or KMS key ARN (Insira um alias de chave KMS ou um ARN de chave KMS)**. Insira manualmente um alias de chave do KMS para uma chave criada na sua conta atual ou insira o nome do recurso da Amazon (ARN) de uma chave em outra conta. Veja os exemplos a seguir:
     + Alias da chave: `alias/my-kms-key-alias`
     + Nome de região da Amazon (ARN) do alias da chave: `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE`

     - ou -

     Escolha **Create new key** (Criar nova chave) para criar uma nova chave do KMS na sua conta. Depois de criar a nova chave, retorne à guia **Preferences (Preferências)** e selecione a chave para criptografar dados de sessão na sua conta.

   Para obter mais informações sobre como compartilhar chaves, consulte [Allowing External Contas da AWS to Access a key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts) no *Guia do desenvolvedor do AWS Key Management Service*.

1. Escolha **Salvar**.

# Criar um documento de preferências (linha de comando) do Session Manager
<a name="getting-started-create-preferences-cli"></a>

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](session-manager-schema.md).

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)](getting-started-configure-preferences-cli.md).

Para obter um exemplo de como criar preferências de sessão usando o CloudFormation, consulte [Create a Systems Manager document for Session Manager preferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#aws-resource-ssm-document--examples) (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":""
      }
   }
   ```

1. 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": "amzn-s3-demo-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:  
Adicione permissões de AWS KMS para usuários na sua conta: [Exemplo de políticas do IAM para Session Manager](getting-started-restrict-access-quickstart.md)
Adicione permissões do AWS KMS para nós gerenciados na sua conta: [Etapa 2: verificar ou adicionar permissões de instância para o Session Manager](session-manager-getting-started-instance-profile.md)

1. Salve o arquivo.

1. 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"
       }
   }
   ```

# Atualizar preferências do Session Manager (linha de comando)
<a name="getting-started-configure-preferences-cli"></a>

O procedimento a seguir descreve como usar sua ferramenta da linha de comando preferencial para fazer alterações nas preferências do Session Manager do AWS Systems Manager para sua Conta da AWS na Região da AWS selecionada. Use o Session Manager para especificar opções para o registro em log de dados de sessão em um bucket do Amazon Simple Storage Service (Amazon S3) ou em um grupo de logs do Amazon CloudWatch Logs. Você também pode usar preferências do Session Manager para criptografar seus dados de sessão.

**Como atualizar 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": true,
           "runAsDefaultUser": "",
           "idleSessionTimeout": "",
           "maxSessionDuration": "",
           "shellProfile": {
               "windows": "date",
               "linux": "pwd;ls"
           }
       }
   }
   ```

1. 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 o AWS KMS key a ser usado 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": "amzn-s3-demo-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 AWS Identity and Access Management. Para obter informações, consulte os seguintes tópicos:  
Adicione permissões de AWS KMS para usuários na sua conta: [Exemplo de políticas do IAM para Session Manager](getting-started-restrict-access-quickstart.md)
Adicione permissões do AWS KMS para nós gerenciados na sua conta: [Etapa 2: verificar ou adicionar permissões de instância para o Session Manager](session-manager-getting-started-instance-profile.md)

1. Salve o arquivo.

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

------
#### [ Linux & macOS ]

   ```
   aws ssm update-document \
       --name "SSM-SessionManagerRunShell" \
       --content "file://SessionManagerRunShell.json" \
       --document-version "\$LATEST"
   ```

------
#### [  Windows  ]

   ```
   aws ssm update-document ^
       --name "SSM-SessionManagerRunShell" ^
       --content "file://SessionManagerRunShell.json" ^
       --document-version "$LATEST"
   ```

------
#### [   PowerShell   ]

   ```
   Update-SSMDocument `
       -Name "SSM-SessionManagerRunShell" `
       -Content (Get-Content -Raw SessionManagerRunShell.json) `
       -DocumentVersion '$LATEST'
   ```

------

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

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

# Etapa 5: (Opcional) Restringir o acesso a comandos em uma sessão
<a name="session-manager-restrict-command-access"></a>

Você pode restringir os comandos que um usuário pode executar em uma sessão do AWS Systems Manager Session Manager usando um documento do AWS Systems Manager (SSM) do tipo `Session` personalizado. No documento, defina o comando que é executado quando o usuário inicia uma sessão e os parâmetros que o usuário pode fornecer ao comando. A `schemaVersion` do documento do `Session` deve ser 1.0 e o `sessionType` do documento deve ser `InteractiveCommands`. É possível criar políticas do AWS Identity and Access Management (IAM) que permitem que os usuários acessem apenas os documentos do `Session` definidos por você. Para obter mais informações sobre como usar políticas do IAM para restringir o acesso a comandos em uma sessão, consulte [Exemplos de políticas do IAM para comandos interativos](#interactive-command-policy-examples).

Documentos com o `sessionType` de `InteractiveCommands` são compatíveis somente com sessões iniciadas pela AWS Command Line Interface (AWS CLI). O usuário fornece o nome do documento personalizado como o valor do parâmetro `--document-name` e fornece qualquer valor de parâmetro do comando usando a opção `--parameters`. Para obter mais informações sobre como executar comandos interativos, consulte [Iniciar uma sessão (comandos interativos e não interativos)](session-manager-working-with-sessions-start.md#sessions-start-interactive-commands).

Use o procedimento a seguir para criar um documento do SSM tipo `Session` personalizado que define o comando que um usuário tem permissão para executar.

## Restringir acesso a comandos em uma sessão (console)
<a name="restrict-command-access-console"></a>

**Para restringir os comandos que um usuário pode executar em uma sessão do Session Manager (console)**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Escolha **Create command or session (Criar comando ou sessão)**.

1. Em **Name** (Nome), insira um nome descritivo para o documento.

1. Em **Document Type (Tipo de documento)**, escolha **Session document (Documento de sessão)**.

1. Insira o conteúdo do documento que define o comando que um usuário pode executar em uma sessão do Session Manager usando JSON ou YAML, conforme mostrado no exemplo a seguir.

------
#### [ 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
           }
       }
   }
   ```

------

1. Escolha **Criar documento**.

## Restringir acesso a comandos em uma sessão (linha de comando)
<a name="restrict-command-access-commandline"></a>

**Antes de começar**  
Caso ainda não tenha feito isso, instale e configure a AWS Command Line Interface (AWS CLI) ou o Ferramentas da AWS para PowerShell. Para obter informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [Instalar o Ferramentas da AWS para PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

**Para restringir os comandos que um usuário pode executar em uma sessão do Session Manager (linha de comando)**

1. Crie um arquivo JSON ou YAML para o conteúdo do documento que define o comando que um usuário pode executar em uma sessão do Session Manager, conforme mostrado no exemplo a seguir.

------
#### [ 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
           }
       }
   }
   ```

------

1. Execute os seguintes comandos para criar um documento do SSM usando seu conteúdo que define o comando que um usuário pode executar em uma sessão do Session Manager.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-document \
       --content file://path/to/file/documentContent.json \
       --name "exampleAllowedSessionDocument" \
       --document-type "Session"
   ```

------
#### [  Windows  ]

   ```
   aws ssm create-document ^
       --content file://C:\path\to\file\documentContent.json ^
       --name "exampleAllowedSessionDocument" ^
       --document-type "Session"
   ```

------
#### [   PowerShell   ]

   ```
   $json = Get-Content -Path "C:\path\to\file\documentContent.json" | Out-String
   New-SSMDocument `
       -Content $json `
       -Name "exampleAllowedSessionDocument" `
       -DocumentType "Session"
   ```

------

## Parâmetros de comando interativos e a AWS CLI
<a name="restrict-command-access-parameters-cli"></a>

Usando a , os parâmetros de comandos interativos podem ser fornecidos de várias maneiras AWS CLI. Dependendo do sistema operacional (SO) da máquina cliente que você usa para se conectar aos nós gerenciados com a AWS CLI, a sintaxe fornecida para comandos que contêm caracteres especiais ou de escape poderá ser diferente. Os exemplos a seguir mostram algumas das maneiras de fornecer parâmetros de comandos ao usar a AWS CLI e como lidar com caracteres especiais ou de escape.

Os parâmetros armazenados em Parameter Store podem ser referenciados na AWS CLI para seus parâmetros de comandos conforme mostrado no exemplo a seguir.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["{{ssm:mycommand}}"]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["{{ssm:mycommand}}"]}'
```

------

O exemplo a seguir mostra como é possível usar uma sintaxe abreviada com a AWS CLI para passar parâmetros.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters command="ifconfig"
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters command="ipconfig"
```

------

Você também pode fornecer parâmetros em JSON como mostrado no exemplo a seguir.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["ifconfig"]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["ipconfig"]}'
```

------

Os parâmetros também podem ser armazenados em um arquivo JSON e fornecidos para a AWS CLI como mostrado no exemplo a seguir. Para obter mais informações sobre como usar parâmetros da AWS CLI em um arquivo, consulte [Carregar parâmetros da AWS CLI em um arquivo](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-parameters-file.html) no *Manual do usuário do AWS Command Line Interface*.

```
{
    "command": [
        "my command"
    ]
}
```

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters file://complete/path/to/file/parameters.json
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters file://complete/path/to/file/parameters.json
```

------

Também é possível gerar um esqueleto da AWS CLI de um arquivo de entrada JSON conforme mostrado no exemplo a seguir. Para obter mais informações sobre a geração de esqueletos da AWS CLI com base em arquivos de entrada JSON, consulte [Gerar um esqueleto da AWS CLI e parâmetros de entrada usando um arquivo de entrada JSON ou YAML](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-skeleton.html) no * Guia do usuário da AWS Command Line Interface*.

```
{
    "Target": "instance-id",
    "DocumentName": "MyInteractiveCommandDocument",
    "Parameters": {
        "command": [
            "my command"
        ]
    }
}
```

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --cli-input-json file://complete/path/to/file/parameters.json
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --cli-input-json file://complete/path/to/file/parameters.json
```

------

Para escapar caracteres dentro das aspas, adicione barras invertidas adicionais aos caracteres de escape, conforme mostrado no exemplo a seguir.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["printf \"abc\\\\tdef\""]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["printf \"abc\\\\tdef\""]}'
```

------

Para obter informações sobre o uso de aspas com parâmetros formatados na AWS CLI, consulte [Usar aspas com strings na AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-parameters-quoting-strings.html), no *Manual do usuário da AWS Command Line Interface*.

## Exemplos de políticas do IAM para comandos interativos
<a name="interactive-command-policy-examples"></a>

Você pode criar políticas do IAM que permitem que os usuários acessem somente os documentos de `Session` definidos por você. Isso restringe os comandos que um usuário pode executar em uma sessão do Session Manager apenas aos comandos definidos em seus documentos personalizados do SSM do tipo `Session`.

 **Permitir que um usuário execute um comando interativo em um único nó gerenciado**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/i-02573cafcfEXAMPLE",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

 **Permitir que um usuário execute um comando interativo em todos os nós gerenciados**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/*",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

 **Permitir que um usuário execute vários comandos interativos em todos os nós gerenciados**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/*",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document-2"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

# Etapa 6: (Opcional) Usar o AWS PrivateLink para configurar um endpoint da VPC para o Session Manager
<a name="session-manager-getting-started-privatelink"></a>

Você pode melhorar o procedimento de segurança dos nós gerenciados configurando o AWS Systems Manager para usar um endpoint de nuvem privada virtual (VPC) da interface. Os endpoints da interface são habilitados pelo AWS PrivateLink, uma tecnologia que permite que você acesse privadamente APIs do Amazon Elastic Compute Cloud (Amazon EC2) e do Systems Manager usando endereços IP privados. 

AWS PrivateLinkO limita todo o tráfego de rede entre os nós gerenciados, o Systems Manager, o Amazon EC2 e a rede da Amazon. (Os nós gerenciados não têm acesso à Internet.) Além disso, você não precisa de um Internet gateway, de um dispositivo NAT ou de um gateway privado virtual. 

Para obter informações sobre como criar um endpoint da VPC, consulte [Melhorar a segurança das instâncias do EC2 usando endpoints da VPC para o Systems Manager](setup-create-vpc.md).

A alternativa ao uso de um endpoint da VPC é permitir o acesso à Internet de saída em seus nós gerenciados. Nesse caso, os nós gerenciados também devem permitir tráfego de saída HTTPS (porta 443) para os seguintes endpoints:
+  `ec2messages.region.amazonaws.com` 
+  `ssm.region.amazonaws.com` 
+  `ssmmessages.region.amazonaws.com` 

O Systems Manager usa o último desses endpoints, `ssmmessages.region.amazonaws.com`, para fazer chamadas do SSM Agent para o serviço Session Manager na nuvem.

Para usar recursos opcionais como criptografia AWS Key Management Service (AWS KMS), transmissão de logs para o Amazon CloudWatch Logs (CloudWatch Logs) e envio de logs para o Amazon Simple Storage Service (Amazon S3), você deve permitir o tráfego de saída HTTPS (porta 443) para os seguintes endpoints:
+  `kms.region.amazonaws.com` 
+  `logs.region.amazonaws.com` 
+  `s3.region.amazonaws.com` 

Para obter mais informações sobre os endpoints necessários para o Systems Manager, consulte [Referência: ec2messages, ssmmessages e outras operações da API](systems-manager-setting-up-messageAPIs.md).

# Etapa 7: (Opcional) Ativar ou desativar permissões administrativas da conta ssm-user.
<a name="session-manager-getting-started-ssm-user-permissions"></a>

A partir da versão 2.3.50.0 do SSM Agent do AWS Systems Manager, o agente cria uma conta de usuário local chamada `ssm-user` e a adiciona ao `/etc/sudoers` (Linux e macOS) ou ao grupo de Administradores (Windows). Em versões do agente anteriores a 2.3.612.0, a conta é criada na primeira vez que o SSM Agent é iniciado ou reiniciado após a instalação. Na versão 2.3.612.0 e posteriores, a conta `ssm-user` é criada na primeira vez que uma sessão é iniciada em um nó. Esse `ssm-user` é o usuário padrão do sistema operacional (SO) quando uma sessão do AWS Systems Manager Session Manager é iniciada. A versão 2.3.612.0 do SSM Agent foi lançada em 8 de maio de 2019.

Para impedir que os usuários do Session Manager executem comandos de administrador em um nó, você pode atualizar as permissões da conta `ssm-user`. Você também pode restaurar essas permissões depois de serem removidas.

**Topics**
+ [Gerenciar as permissões da conta sudo do ssm-user no Linux e no macOS](#ssm-user-permissions-linux)
+ [Gerenciar as permissões da conta de administrador ssm-user no Windows Server](#ssm-user-permissions-windows)

## Gerenciar as permissões da conta sudo do ssm-user no Linux e no macOS
<a name="ssm-user-permissions-linux"></a>

Use um dos procedimentos a seguir para ativar ou desativar as permissões sudo da conta ssm-user em nós gerenciados do Linux e do macOS.

**Usar o Run Command para modificar permissões sudo de ssm-user (console)**
+ Use o procedimento em [Executar comandos no console](running-commands-console.md) com os seguintes valores:
  + Para **Command document (Documento de comando)**, escolha `AWS-RunShellScript`.
  + Para remover o acesso sudo, na área **Command parameters** (Parâmetros de comando), cole o trecho a seguir na caixa **Commands** (Comandos).

    ```
    cd /etc/sudoers.d
    echo "#User rules for ssm-user" > ssm-agent-users
    ```

    - ou -

    Para restaurar o acesso sudo, na área **Command parameters** (Parâmetros de comando), cole o trecho a seguir na caixa **Commands** (Comandos).

    ```
    cd /etc/sudoers.d 
    echo "ssm-user ALL=(ALL) NOPASSWD:ALL" > ssm-agent-users
    ```

**Usar a linha de comando para modificar permissões sudo de ssm-user (AWS CLI)**

1. Conecte-se ao nó gerenciado e execute o seguinte comando:

   ```
   sudo -s
   ```

1. Altere o diretório de trabalho usando o seguinte comando:

   ```
   cd /etc/sudoers.d
   ```

1. Abra o arquivo chamado `ssm-agent-users` para edição.

1. Para remover o acesso sudo, exclua a linha a seguir.

   ```
   ssm-user ALL=(ALL) NOPASSWD:ALL
   ```

   - ou -

   Para restaurar o acesso sudo, adicione a linha a seguir.

   ```
   ssm-user ALL=(ALL) NOPASSWD:ALL
   ```

1. Salve o arquivo.

## Gerenciar as permissões da conta de administrador ssm-user no Windows Server
<a name="ssm-user-permissions-windows"></a>

Use um dos procedimentos a seguir para ativar ou desativar as permissões de Administrador da conta ssm-user em nós gerenciados do Windows Server.

**Usar o Run Command para modificar permissões de Administrador (console)**
+ Use o procedimento em [Executar comandos no console](running-commands-console.md) com os seguintes valores:

  Para **Command document (Documento de comando)**, escolha `AWS-RunPowerShellScript`.

  Para remover o acesso de administrador, na área **Command parameters** (Parâmetros de comando), cole o trecho a seguir na caixa **Commands** (Comandos).

  ```
  net localgroup "Administrators" "ssm-user" /delete
  ```

  - ou -

  Para restaurar o acesso de administrador, na área **Command parameters** (Parâmetros de comando), cole o trecho a seguir na caixa **Commands** (Comandos).

  ```
  net localgroup "Administrators" "ssm-user" /add
  ```

**Use a janela do prompt de comando ou o PowerShell para modificar permissões de administrador**

1. Conecte-se ao nó gerenciado e abra o PowerShell ou a janela do prompt de comando.

1. Para remover o acesso administrativo, execute o comando a seguir.

   ```
   net localgroup "Administrators" "ssm-user" /delete
   ```

   - ou -

   Para restaurar o acesso administrativo, execute o comando a seguir.

   ```
   net localgroup "Administrators" "ssm-user" /add
   ```

**Usar o console do Windows para modificar permissões de Administrador**

1. Conecte-se ao nó gerenciado e abra o PowerShell ou a janela do prompt de comando.

1. Na linha de comando, execute `lusrmgr.msc` para abrir o console **Local Users and Groups (Usuários locais e grupos)**.

1. Abra o diretório **Users (Usuários)** e, em seguida, abra **ssm-user**.

1. Na guia **Member Of (Membro do)**, faça o seguinte:
   + Para remover o acesso administrativo, selecione **Administrators (Administradores)**e, em seguida, escolha **Remove (Remover)**.

     - ou -

     Para restaurar o acesso administrativo, digite **Administrators** na caixa de texto e, em seguida, escolha **Add** (Adicionar).

1. Escolha **OK**.

# Etapa 8: (Opcional) Permitir e controlar permissões de conexões de SSH por meio do Session Manager
<a name="session-manager-getting-started-enable-ssh-connections"></a>

Você pode permitir que os usuários da sua Conta da AWS usem a AWS Command Line Interface (AWS CLI) para estabelecer conexões Secure Shell (SSH) com nós gerenciados que usam o Session Manager do AWS Systems Manager. Os usuários que se conectam usando SSH também podem copiar arquivos entre suas máquinas locais e os nós gerenciados usando o Secure Copy Protocol (SCP). Você pode usar essa funcionalidade para se conectar aos nós gerenciados sem abrir portas de entrada nem manter bastion hosts.

 Quando você estabelece conexões SSH por meio do Session Manager, o AWS CLI e o SSM Agent criam conexões WebSocket seguras via TLS para endpoints do Session Manager. A sessão SSH é executada dentro desse túnel criptografado, fornecendo uma camada adicional de segurança sem exigir a abertura de portas de entrada nos nós gerenciados.

Depois de permitir conexões SSH, você pode usar as políticas do AWS Identity and Access Management (IAM) para permitir ou negar explicitamente que usuários, grupos ou funções façam conexões de SSH usando o Session Manager.

**nota**  
O registro em log não está disponível para sessões do Session Manager que se conectam por meio de encaminhamento de portas ou SSH. Isso ocorre porque o SSH criptografa todos os dados da sessão na conexão TLS segura estabelecida entre os endpoints AWS CLI e Session Manager e o Session Manager serve apenas como um túnel para conexões SSH.

**Topics**
+ [Permitir conexões de SSH para o Session Manager](#ssh-connections-enable)
+ [Controlar permissões do usuário para conexões SSH por meio do Session Manager](#ssh-connections-permissions)

## Permitir conexões de SSH para o Session Manager
<a name="ssh-connections-enable"></a>

Use as etapas a seguir para permitir conexões de SSH por meio do Session Manager em um nó gerenciado. 

**Para permitir conexões de SSH para o Session Manager**

1. Nesse nó gerenciado, para a qual você quer permitir conexões SSH, faça o seguinte:
   + Certifique-se de que o SSH está em execução em um nó gerenciado. (Você pode fechar portas de entrada em um nó.)
   + Certifique-se de que o SSM Agent versão 2.3.672.0 ou posterior esteja instalado em seu nó gerenciado.

     Para obter informações sobre como instalar ou atualizar o SSM Agent em um nó gerenciado, consulte os seguintes tópicos:
     + [Instalar e desinstalar o SSM Agent manualmente em instâncias do EC2 para Windows Server](manually-install-ssm-agent-windows.md).
     +  [Instalar e desinstalar o SSM Agent manualmente em instâncias do EC2 para Linux](manually-install-ssm-agent-linux.md) 
     +  [Instalar e desinstalar o SSM Agent manualmente em instâncias do EC2 para macOS](manually-install-ssm-agent-macos.md) 
     +  [Como instalar o SSM Agent em nós híbridos do Windows](hybrid-multicloud-ssm-agent-install-windows.md) 
     +  [Como instalar o SSM Agent em nós híbridos do Linux](hybrid-multicloud-ssm-agent-install-linux.md) 
**nota**  
Para usar o Session Manager com servidores on-premises, dispositivos de borda e máquinas virtuais (VMs) que você ativou como nós gerenciados, você deve usar o nível de instâncias avançadas. Para obter mais informações sobre instâncias avançadas, consulte [Configurar níveis de instâncias](fleet-manager-configure-instance-tiers.md).

1. Na máquina local da qual você deseja se conectar a um nó gerenciado usando SSH, faça o seguinte:
   + Certifique-se de que a versão 1.1.23.0 ou posterior do plugin do Session Manager esteja instalada.

     Para obter informações sobre como instalar o plugin do Session Manager, consulte [Instalar o plug-in do Session Manager para a AWS CLI](session-manager-working-with-install-plugin.md).
   + Atualize o arquivo de configuração do SSH para permitir a execução de um comando proxy que inicia uma sessão do Session Manager e transferir todos os dados por meio da conexão.

      **Linux e macOS** 
**dica**  
O arquivo de configuração do SSH normalmente está localizado em `~/.ssh/config`.

     Adicione o seguinte ao arquivo de configuração na máquina local:

     ```
     # SSH over Session Manager
     Host i-* mi-*
         ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
         User ec2-user
     ```

      ** Windows ** 
**dica**  
O arquivo de configuração do SSH normalmente está localizado em `C:\Users\<username>\.ssh\config`.

     Adicione o seguinte ao arquivo de configuração na máquina local:

     ```
     # SSH over Session Manager
     Host i-* mi-*
         ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p"
     ```
   + Crie ou verifique se você tem um certificado de Privacy Enhanced Mail (um arquivo PEM) ou, no mínimo, uma chave pública para usar ao estabelecer conexões com os nós gerenciados. Essa deve ser uma chave que já esteja associada ao nó gerenciado. As permissões do seu arquivo de chave privada devem ser definidas para que somente você possa lê-lo. Você pode usar o seguinte comando para definir as permissões do arquivo de chave privada para que somente você possa lê-lo.

     ```
     chmod 400 <my-key-pair>.pem
     ```

     Por exemplo, para uma instância do Amazon Elastic Compute Cloud (Amazon EC2), o arquivo de par de chaves que você criou ou selecionou quando criou a instância. (Você especifica o caminho para o certificado ou a chave como parte do comando para iniciar uma sessão. Para obter informações sobre começar uma seção usando o SSH, consulte [Iniciar uma sessão (SSH)](session-manager-working-with-sessions-start.md#sessions-start-ssh).)

## Controlar permissões do usuário para conexões SSH por meio do Session Manager
<a name="ssh-connections-permissions"></a>

Depois de habilitar conexões SSH por meio do Session Manager em um nó gerenciado, você poderá usar políticas do IAM para permitir ou recusar que usuários, grupos ou funções estabeleçam conexões SSH por meio do Session Manager. 

**Para usar uma política do IAM para permitir conexões SSH por meio do Session Manager**
+ Use uma das seguintes opções:
  + **Opção 1**: abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

    No painel de navegação, escolha **Policies (Políticas)** e atualize a política de permissões para o usuário ou função ao qual você deseja permitir iniciar conexões SSH por meio do Session Manager. 

    Por exemplo, adicione o elemento a seguir à política do Quickstart que você criou em . [Políticas do usuário final do Quickstart para o Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user). Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações. 

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ssm:StartSession",
                "Resource": [
                    "arn:aws:ec2:us-east-1:111122223333:instance/instance-id",
                    "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
                ]
            },
            {
                "Effect": "Allow",
                "Action": "ssmmessages:OpenDataChannel",
                "Resource": "arn:aws:ssm:*:*:session/${aws:userid}-*"
            }
        ]
    }
    ```

------
  + **Opção 2**: anexe uma política em linha a uma política de usuário usando o Console de gerenciamento da AWS, a AWS CLI ou a API da AWS.

    Usando o método de sua escolha, anexe a declaração de política na **Opção 1** à política de um usuário, grupo ou função da AWS.

    Para obter informações, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Manual do usuário do IAM*.

**Para usar uma política do IAM para negar conexões SSH por meio do Session Manager**
+ Use uma das seguintes opções:
  + **Opção 1**: abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). No painel de navegação, escolha **Policies (Políticas)** e, então, atualize a política de permissões para que o usuário ou a função não possa iniciar sessões do Session Manager. 

    Por exemplo, adicione o elemento a seguir à política do Quickstart que você criou em [Políticas do usuário final do Quickstart para o Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user).

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Deny",
                "Action": "ssm:StartSession",
                "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
            },
            {
                "Effect": "Allow",
                "Action": "ssmmessages:OpenDataChannel",
                "Resource": "arn:aws:ssm:*:*:session/${aws:userid}-*"
            }
        ]
    }
    ```

------
  + **Opção 2**: anexe uma política em linha a uma política de usuário usando o Console de gerenciamento da AWS, a AWS CLI ou a API da AWS.

    Usando o método de sua escolha, anexe a declaração de política na **Opção 1** à política de um usuário, grupo ou função da AWS.

    Para obter informações, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Manual do usuário do IAM*.