Administración automática de instancias EC2 con la configuración de administración de hosts predeterminada - AWS Systems Manager

Administración automática de instancias EC2 con la configuración de administración de hosts predeterminada

La configuración predeterminada de la administración de hosts permite que AWS Systems Manager administre las instancias de Amazon EC2 de forma automática como instancias administradas. Una instancia administrada es una instancia EC2 configurada para usarla con Systems Manager.

Los beneficios de administrar sus instancias con Systems Manager incluyen los siguientes:

  • Conéctese a sus instancias de EC2 de forma segura mediante Session Manager.

  • Realice escaneos de revisiones automatizados mediante Patch Manager.

  • Consulte información detallada sobre sus instancias mediante Systems Manager Inventory.

  • Realice un seguimiento y administre las instancias mediante Fleet Manager.

  • Mantenga SSM Agent actualizado automáticamente.

Fleet Manager, Inventory, Patch Manager y Session Manager son capacidades de Systems Manager.

La configuración de administración de host predeterminada permite administrar las instancias de EC2 sin tener que crear manualmente un perfil de instancia de AWS Identity and Access Management (IAM). En su lugar, la configuración predeterminada de la administración de hosts crea y aplica un rol de IAM predeterminado para garantizar que Systems Manager tenga los permisos de administración de todas las instancias de la Cuenta de AWS y la Región de AWS en la que está activado.

Si los permisos proporcionados no son suficientes para su caso de uso, también puede agregar políticas al rol de IAM predeterminado creado en la configuración de administración de host predeterminada. Como alternativa, si no necesita permisos para todas las capacidades proporcionadas por el rol de IAM predeterminado, puede crear sus propias políticas y roles personalizados. Cualquier cambio realizado en el rol de IAM que elija para la configuración de administración de host predeterminada se aplica a todas las instancias de Amazon EC2 administradas en la región y la cuenta.

Para obtener más información acerca de la política que usa la configuración de administración de host predeterminada, consulte Política administrada por AWS: AmazonSSMManagedEC2InstanceDefaultPolicy.

Implementación del acceso a los privilegios mínimos

Estos procedimientos están pensados para que solo los realicen los administradores. Por lo tanto, recomendamos implementar el acceso con privilegio mínimo para evitar que los usuarios no administrativos configuren o modifiquen la configuración de administración de host predeterminada. Para ver ejemplos de políticas que restringen el acceso a la configuración de administración de host predeterminada, consulte Ejemplos de políticas de privilegio mínimo para la configuración de administración de host predeterminada más adelante en este tema.

importante

El registro de la información de las instancias registradas con la configuración predeterminada de la administración de hosts almacena la información de registro localmente en los directorios var/lib/amazon/ssm o C:\ProgramData\Amazon. Si se eliminan estos directorios o sus archivos, la instancia no podrá adquirir las credenciales necesarias para conectarse a Systems Manager mediante la Configuración de la administración de hosts predeterminada. En estos casos, debe utilizar un perfil de instancia IAM para brindar los permisos necesarios a la instancia, o bien volver a crearla.

Requisitos previos

Para utilizar la configuración predeterminada de la administración de hosts en la Región de AWS y la Cuenta de AWS donde se active la característica, se deben cumplir los siguientes requisitos.

  • La instancia que se vaya a administrar debe usar Instance Metadata Service versión 2 (IMDSv2).

    La configuración de administración de host predeterminada no admite la versión 1 del servicio de metadatos de instancias. Para obtener información sobre la transición a IMDSv2, consulte Transición al uso de Servicio de metadatos de instancia versión 2 en la Guía del usuario de Amazon EC2.

  • Se debe instalar la versión 3.2.582.0 o alguna versión posterior de SSM Agent en la instancia para ser administrada.

    Para obtener información sobre cómo comprobar la versión de SSM Agent instalada en la instancia, consulte Verificación del número de versión de SSM Agent.

    Para obtener información sobre cómo actualizar SSM Agent, consulte Actualización automática de SSM Agent.

  • Usted, como administrador que realiza las tareas de este tema, debe tener permisos para las operaciones de las API GetServiceSetting, ResetServiceSetting y UpdateServicesetting. Además, debe tener permisos iam:PassRole para el rol de IAM AWSSystemsManagerDefaultEC2InstanceManagementRole. La siguiente política de ejemplo concede estos permisos. Reemplace cada example resource placeholder con su propia información.

    { "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" ] } } } ] }
  • Si ya existe un perfil de instancia de IAM asociado a una instancia de EC2 que hay que administrar con Systems Manager, debe quitarle todos los permisos que permitan la operación ssm:UpdateInstanceInformation. SSM Agent intenta usar permisos de perfil de instancia antes de emplear los permisos de la Configuración de la administración de hosts predeterminada. Si permite la operación ssm:UpdateInstanceInformation en los perfiles de instancia de IAM, la instancia no utilizará los permisos de la configuración de administración de host predeterminada.

Activación de la configuración de la administración de hosts predeterminada

Puede activar la configuración predeterminada de la administración de hosts desde la consola de Fleet Manager o al utilizar la AWS Command Line Interface o AWS Tools for Windows PowerShell.

Debe activar, una por una, las configuraciones predeterminadas de la administración de hosts en cada región en donde quiera que las instancias de Amazon EC2 se administren mediante esta configuración.

Tras activar la configuración predeterminada de la administración de hosts, es posible que las instancias tarden 30 minutos en utilizar las credenciales del rol que seleccione en el paso 5 del procedimiento que se detalla a continuación.

Activación de la configuración de administración de host predeterminada (consola)
  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija Fleet Manager.

  3. Elija Administración de cuenta, Configuración de la administración de host predeterminada.

  4. Active Habilitar configuración de administración de host predeterminada.

  5. Elija el rol de AWS Identity and Access Management (IAM) que se utiliza para habilitar las capacidades de Systems Manager en sus instancias. Recomendamos utilizar el rol predeterminado que proporciona la configuración de administración de host predeterminada. Contiene el conjunto mínimo de permisos necesarios para administrar sus instancias de Amazon EC2 mediante Systems Manager. Si prefiere utilizar un rol personalizado, la política de confianza del rol debe permitir que Systems Manager sea una entidad de confianza.

  6. Elija Configurar para completar la configuración.

Activación de la configuración de administración de host predeterminada (línea de comandos)
  1. Cree un archivo JSON en su equipo local que contenga la siguiente política de relaciones de confianza.

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  2. Abra la AWS CLI o las Herramientas para Windows PowerShell y ejecute uno de los siguientes comandos, según el tipo de sistema operativo de su máquina local, a fin de crear un rol de servicio en su cuenta. Reemplace cada example resource placeholder con su propia información.

    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. Ejecute el siguiente comando para adjuntar la política administrada AmazonSSMManagedEC2InstanceDefaultPolicy al rol recientemente creado. Reemplace cada example resource placeholder con su propia información.

    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 la AWS CLI o Herramientas para Windows PowerShell y ejecute el siguiente comando. Reemplace cada example resource placeholder con su propia información.

    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"

    No se obtienen resultados si el comando se ejecuta correctamente.

  5. Ejecute el siguiente comando a fin de ver la configuración del servicio actual para la configuración de administración de host predeterminada en la Cuenta de AWS y la Región de AWS actuales.

    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"

    El comando devuelve información similar a la siguiente.

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

Desactivación de la configuración predeterminada de la administración de hosts

Puede desactivar la configuración predeterminada de la administración de hosts desde la consola de Fleet Manager o al utilizar la AWS Command Line Interface o AWS Tools for Windows PowerShell.

Debe desactivar, una por una, las configuraciones predeterminadas de la administración de hosts en cada región en donde ya no quiere que las instancias de Amazon EC2 se administren mediante esta configuración. Si se desactiva en una región, no se desactiva en todas las regiones.

Si desactiva la configuración de administración de host predeterminada y no ha adjuntado un perfil de instancia a sus instancias de Amazon EC2 que permita el acceso a Systems Manager, este último dejará de administrarlas.

Desactivación de la configuración de administración de host predeterminada (consola)
  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija Fleet Manager.

  3. Elija Administración de cuenta, Configuración de la administración de host predeterminada.

  4. Desactive Habilitar configuración de administración de host predeterminada.

  5. Elija Configurar para deshabilitar la configuración de administración de host predeterminada.

Desactivación de la configuración de administración de host predeterminada (línea de comandos)
  • Abra la AWS CLI o Herramientas para Windows PowerShell y ejecute el siguiente comando. Reemplace cada example resource placeholder con su propia información.

    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"

Ejemplos de políticas de privilegio mínimo para la configuración de administración de host predeterminada

Los siguientes ejemplos de políticas muestran cómo evitar que los miembros de su organización realicen cambios en la configuración de administración de host predeterminada de su cuenta.

Política de control de servicios para AWS Organizations

La siguiente política demuestra cómo evitar que los miembros no administrativos de AWS Organizations actualicen la configuración de administración de host predeterminada. Reemplace cada example resource placeholder con su propia información.

{ "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 principales de IAM

La siguiente política demuestra cómo evitar que sus grupos, funciones o usuarios de IAM en AWS Organizations actualicen su configuración de administración de host predeterminada. Reemplace cada example resource placeholder con su propia información.

{ "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" } ] }