Gerenciar instâncias do EC2 automaticamente com a Configuração de gerenciamento de hosts padrão - AWS Systems Manager

Gerenciar instâncias do EC2 automaticamente com a Configuração de gerenciamento de hosts padrão

A opção Configuração de gerenciamento de hosts padrão permite que o AWS Systems Manager gerencie as instâncias do Amazon EC2 automaticamente na forma de instâncias gerenciadas. Uma instância gerenciada é uma instância do EC2 que foi configurada para uso com o Systems Manager.

Os benefícios de gerenciar instâncias com o Systems Manager incluem o seguinte:

  • Conecte-se às suas instâncias do EC2 com segurança usando o Session Manager.

  • Realizar verificações de patches automatizadas usando o Patch Manager.

  • Visualizar informações detalhadas sobre suas instâncias usando o Inventário do Systems Manager.

  • Acompanhar e gerenciar instâncias usando o Fleet Manager.

  • Mantenha o SSM Agent atualizado automaticamente.

O Fleet Manager, o Inventário, o Patch Manager e o Session Manager são recursos do Systems Manager.

A Configuração padrão gerenciamento de hosts padrão torna possível gerenciar instâncias do EC2 sem a necessidade de criar um perfil de instância do AWS Identity and Access Management (IAM) manualmente. Em vez disso, a Configuração de gerenciamento de hosts padrão cria e aplica um perfil do IAM padrão para garantir que o Systems Manager tenha permissões para gerenciar todas as instâncias na Conta da AWS e na Região da AWS em que ela está ativada.

Se as permissões fornecidas não forem suficientes para seu caso de uso, também é possível adicionar políticas ao perfil do IAM padrão criado pela configuração de gerenciamento de host padrão. Como alternativa, se você não precisar de permissões para todas as funcionalidades fornecidas pelo perfil do IAM padrão, poderá criar seu próprio perfil e as políticas personalizadas. Quaisquer alterações realizadas no perfil do IAM que você escolher para a configuração de gerenciamento de host padrão se aplicarão a todas as instâncias do Amazon EC2 gerenciadas na região e na conta.

Para obter mais informações sobre a política usada pela configuração de gerenciamento de host padrão, consulte Política gerenciada pela AWS: AmazonSSMManagedEC2InstanceDefaultPolicy.

Implemente o acesso de privilégio mínimo

Esse procedimento neste tópico deve ser executado somente por administradores. Portanto, é recomendável implementar o acesso com privilégio mínimo para evitar que usuários não administrativos configurem ou modifiquem a configuração de gerenciamento do host padrão. Para ver exemplos de políticas que restringem o acesso à configuração de gerenciamento do host padrão, consulte Exemplos de política de privilégio mínimo para configuração de gerenciamento do host padrão, mais adiante neste tópico.

Importante

As instâncias registradas usando a Configuração de gerenciamento de hosts padrão armazenam informações de registro localmente nos diretórios var/lib/amazon/ssm ou C:\ProgramData\Amazon. A remoção desses diretórios ou de seus arquivos impedirá que a instância adquira as credenciais necessárias para se conectar ao Systems Manager usando a Configuração Padrão de Gerenciamento de Host. Nesses casos, você deve usar um perfil de instância do IAM para fornecer as permissões necessárias à sua instância, ou então recriar a instância.

Pré-requisitos

Para usar a Configuração de gerenciamento de hosts padrão na Região da AWS e na Conta da AWS em que a opção é ativada, é necessário cumprir os requisitos a seguir.

  • A instância a ser gerenciada deve usar o Instance Metadata Service Version 2 (IMDSv2).

    A configuração de gerenciamento de host padrão não oferece suporte à versão 1 do serviço de metadados da instância. Para obter informações sobre como fazer a transição para IMDSv2, consulte Transição para usar o Serviço de metadados da instância versão 2 no Guia do usuário do Amazon EC2

  • O SSM Agent versão 3.2.582.0 ou posterior deve estar instalado na instância a ser usada.

    Para obter informações sobre como verificar a versão do SSM Agent instalada em sua instância, consulte Verificar o número de versão do SSM Agent.

    Para obter informações sobre como atualizar o SSM Agent, consulte Atualizar automaticamente o SSM Agent.

  • Como administrador que executa as tarefas deste tópico, você deve ter permissões para as operações de API GetServiceSetting, ResetServiceSetting e UpdateServiceSetting. Além disso, você deve ter permissões para a permissão iam:PassRole para o perfil do IAM AWSSystemsManagerDefaultEC2InstanceManagementRole. Veja aqui um exemplo de política que concede estas permissões. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting" ], "Resource": "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }
  • Se um perfil de instância IAM já estiver anexado a uma instância EC2 que deve ser gerenciada usando o Systems Manager, você deve remover quaisquer permissões que permitam a operação ssm:UpdateInstanceInformation. O SSM Agent tentará usar as permissões do perfil de instância antes de usar as permissões de Configuração Padrão de Gerenciamento de Host. Se você permitir a operação ssm:UpdateInstanceInformation em seu próprio perfil de instância do IAM, a instância não usará as permissões de configuração de gerenciamento do host padrão.

Ativar a opção Configuração de gerenciamento de hosts padrão

É possível ativar a Configuração de gerenciamento de hosts padrão no console do Fleet Manager ou via AWS Command Line Interface ou AWS Tools for Windows PowerShell.

É necessário ativar a Configuração de gerenciamento de hosts padrão individualmente em cada região em que você deseja que suas instâncias do Amazon EC2 sejam gerenciadas por essa opção.

Após a ativação da Configuração de gerenciamento de hosts padrão, até 30 minutos poderão ser necessários para que as instâncias usem as credenciais do perfil escolhido na etapa 5 do procedimento a seguir.

Para ativar a configuração de gerenciamento do host padrão (console)
  1. Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação, escolha Fleet Manager.

  3. Escolha Gerenciamento de contas, Definir configuração padrão de gerenciamento de host.

  4. Ative Habilitar a configuração de gerenciamento de host padrão.

  5. Escolha o perfil do AWS Identity and Access Management (IAM) usado para habilitar as funcionalidades do Systems Manager para suas instâncias. Recomendamos usar o perfil padrão fornecido pela configuração de gerenciamento de host padrão. Ele contém o conjunto mínimo de permissões necessárias para gerenciar as instâncias do Amazon EC2 usando o Systems Manager. Se você preferir usar um perfil personalizado, a política de confiança do perfil deve permitir que o Systems Manager seja uma entidade confiável.

  6. Escolha Configurar para concluir a configuração.

Para ativar a configuração de gerenciamento do host padrão (linha de comando)
  1. Crie um arquivo JSON em sua máquina local contendo a política de relacionamento de confiança a seguir.

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  2. Abra a AWS CLI ou as ferramentas para Windows PowerShell e execute um dos comandos a seguir, de acordo com o tipo de sistema operacional de sua máquina local, para criar um perfil de serviço em sua conta. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws iam create-role \ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole \ --path /service-role/ \ --assume-role-policy-document file://trust-policy.json
    Windows
    aws iam create-role ^ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole ^ --path /service-role/ ^ --assume-role-policy-document file://trust-policy.json
    PowerShell
    New-IAMRole ` -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole" ` -Path "/service-role/" ` -AssumeRolePolicyDocument "file://trust-policy.json"
  3. Execute o comando a seguir para anexar a política gerenciada AmazonSSMManagedEC2InstanceDefaultPolicy ao seu perfil recém-criado. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy \ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
    Windows
    aws iam attach-role-policy ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy ^ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
    PowerShell
    Register-IAMRolePolicy ` -PolicyArn "arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy" ` -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole"
  4. Abra a AWS CLI ou as ferramentas para Windows PowerShell e execute o comando a seguir. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws ssm update-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role \ --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
    Windows
    aws ssm update-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role ^ --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
    PowerShell
    Update-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" ` -SettingValue "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole"

    Não haverá saída se o comando for bem-sucedido.

  5. Execute o comando a seguir para visualizar as configurações de serviço atuais para a configuração de gerenciamento de host padrão na Conta da AWS e na Região da AWS atuais.

    Linux & macOS
    aws ssm get-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    Windows
    aws ssm get-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    PowerShell
    Get-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"

    O comando retorna informações como as seguintes.

    {
        "ServiceSetting": {
            "SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
            "SettingValue": "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
            "LastModifiedDate": "2022-11-28T08:21:03.576000-08:00",
            "LastModifiedUser": "System",
            "ARN": "arn:aws:ssm:us-east-2:-123456789012:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
            "Status": "Custom"
        }
    }

Desativar a opção Configuração de gerenciamento de hosts padrão

É possível desativar a Configuração de gerenciamento de hosts padrão no console do Fleet Manager ou via AWS Command Line Interface ou AWS Tools for Windows PowerShell.

É necessário desativar a definição de Configuração de gerenciamento de hosts padrão individualmente em cada região em que você não deseja mais que suas instâncias do Amazon EC2 sejam gerenciadas por essa opção. Desativar em uma região não desativará em todas as regiões.

Se você desativar a configuração de gerenciamento do host padrão e não tiver anexado um perfil de instância às instâncias do Amazon EC2 que permita acesso ao Systems Manager, elas não serão mais gerenciadas pelo Systems Manager.

Para desativar a configuração de gerenciamento do host padrão (console)
  1. Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação, escolha Fleet Manager.

  3. Escolha Gerenciamento de contas, Configuração padrão de gerenciamento de host.

  4. Desative Habilitar a configuração de gerenciamento de host padrão.

  5. Escolha Configurar para desabilitar a configuração de gerenciamento de host padrão.

Para desativar a configuração de gerenciamento do host padrão (linha de comando)
  • Abra a AWS CLI ou as ferramentas para Windows PowerShell e execute o comando a seguir. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws ssm reset-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    Windows
    aws ssm reset-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    PowerShell
    Reset-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"

Exemplos de política de privilégio mínimo para configuração de gerenciamento do host padrão

Os exemplos de políticas a seguir demonstram como impedir que membros de sua organização façam alterações na configuração de gerenciamento do host padrão de sua conta.

Política de controle de serviço para o AWS Organizations

A política a seguir demonstra como impedir que membros não administrativos de sua AWS Organizations atualizem sua configuração de gerenciamento do host padrão. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Action": [ "ssm:UpdateServiceSetting", "ssm:ResetServiceSetting" ], "Resource": "arn:aws:ssm:*:*:servicesetting/ssm/managed-instance/default-ec2-instance-management-role", "Condition": { "StringNotEqualsIgnoreCase": { "aws:PrincipalTag/job-function": [ "administrator" ] } } }, { "Effect": "Deny", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Condition": { "StringEquals": { "iam:PassedToService": "ssm.amazonaws.com" }, "StringNotEqualsIgnoreCase": { "aws:PrincipalTag/job-function": [ "administrator" ] } } }, { "Effect": "Deny", "Resource": "arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole" ], "Condition": { "StringNotEqualsIgnoreCase": { "aws:PrincipalTag/job-function": [ "administrator" ] } } } ] }

Política para entidades principais do IAM

A política a seguir demonstra como impedir que grupos, perfis e usuários do IAM de sua AWS Organizations atualizem sua configuração de gerenciamento do host padrão. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:UpdateServiceSetting", "ssm:ResetServiceSetting" ], "Resource": "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" }, { "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole" } ] }