Instalación del agente de AWS Systems Manager - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Instalación del agente de AWS Systems Manager

El agente de AWS Systems Manager (Agente de Systems Manager) es un software de Amazon que se instala para permitir que Systems Manager actualice, administre y configure los dispositivos principales de Greengrass, las instancias de Amazon EC2 y otros recursos. El agente procesa y ejecuta las solicitudes del servicio de Systems Manager en la Nube de AWS. Luego, el agente envía la información de estado y tiempo de ejecución al servicio de Systems Manager. Para obtener más información, consulte Información del agente de Systems Manager en la Guía del usuario de AWS Systems Manager.

AWS ofrece el agente de Systems Manager como un componente de Greengrass que puede implementar en sus dispositivos principales de Greengrass para administrarlos con Systems Manager. El componente agente de Systems Manager instala el software del agente de Systems Manager y registra el dispositivo principal como un nodo administrado en Systems Manager. Siga los pasos de esta página para completar los requisitos previos e implementar el componente agente de Systems Manager en un dispositivo principal o en un grupo de dispositivos principales.

Paso 1: completar los pasos generales de configuración de Systems Manager

Si aún no lo ha hecho, complete los pasos de configuración generales de AWS Systems Manager. Para obtener más información, consulte Completar los pasos de configuración general de Systems Manager en la Guía del usuario de AWS Systems Manager.

Paso 2: Crear un rol de servicio de IAM para Systems Manager

El agente de Systems Manager utiliza un rol de servicio de AWS Identity and Access Management (IAM) para comunicarse con AWS Systems Manager. Systems Manager asume este rol para habilitar las capacidades de Systems Manager en cada dispositivo principal. El componente agente de Systems Manager también utiliza este rol para registrar el dispositivo principal como un nodo administrado por Systems Manager al implementar el componente. Si aún no lo ha hecho, cree un rol de servicio de Systems Manager para que lo utilice el componente agente de Systems Manager. Para obtener más información, consulte Creación de un rol de servicio de IAM para dispositivos de periferia en la Guía del usuario de AWS Systems Manager.

Paso 3: Agregar permisos al rol de intercambio de token

Los dispositivos principales de Greengrass usan un rol de servicio de IAM, llamado el rol de intercambio de tokens, para interactuar con servicios de AWS. Cada dispositivo principal tiene un rol de intercambio de token que se crea al instalar el software AWS IoT Greengrass Core. Muchos componentes de Greengrass, como el Agente de Systems Manager, requieren permisos adicionales para este rol. El componente agente de Systems Manager requiere los siguientes permisos, que incluyen el permiso para usar el rol que creó en Paso 2: Crear un rol de servicio de IAM para Systems Manager.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account-id:role/SSMServiceRole" ] }, { "Action": [ "ssm:AddTagsToResource", "ssm:RegisterManagedInstance" ], "Effect": "Allow", "Resource": "*" } ] }

Si aún no lo ha hecho, agregue estos permisos al rol de intercambio de token del dispositivo principal para permitir que funcione el Agente de Systems Manager. Puede agregar una nueva política al rol de intercambio de token para conceder este permiso.

  1. En el menú de navegación de la consola de IAM, elija Roles.

  2. Elija el rol de IAM que configuró como rol de intercambio de token al instalar el software AWS IoT Greengrass Core. Si no especificó un nombre para el rol de intercambio de token al instalar el software AWS IoT Greengrass Core, se creó un rol denominado GreengrassV2TokenExchangeRole.

  3. En la pestaña Permisos, elija Agregar permisos y, a continuación, Asociar políticas.

  4. Seleccione Crear política. Se abre la página Crear política en una nueva pestaña del navegador.

  5. En la página Create policy (Crear política), haga lo siguiente:

    1. Elija JSON para abrir el editor JSON.

    2. Pegue la siguiente política en el editor JSON. Reemplace SSMServiceRole por el nombre del rol de servicio de que creó en Paso 2: Crear un rol de servicio de IAM para Systems Manager.

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account-id:role/SSMServiceRole" ] }, { "Action": [ "ssm:AddTagsToResource", "ssm:RegisterManagedInstance" ], "Effect": "Allow", "Resource": "*" } ] }
    3. Elija Siguiente: Etiquetas.

    4. Elija Siguiente: Revisar.

    5. Introduzca un Nombre para la política, como GreengrassSSMAgentComponentPolicy.

    6. Seleccione Crear política.

    7. Cambie a la pestaña anterior del navegador en la que tenía abierto el rol de intercambio de token.

  6. En la página Agregar permisos, pulse el botón de actualización y, a continuación, seleccione la política de agente de Systems Manager en Greengrass que creó en el paso anterior.

  7. Seleccione Asociar políticas.

    Los dispositivos principales que utilizan este rol de intercambio de token ahora tienen permiso para interactuar con el servicio Systems Manager.

Cómo agregar una política que conceda permiso para usar Systems Manager
  1. Cree un archivo llamado ssm-agent-component-policy.json y copie el siguiente JSON en el archivo. Reemplace SSMServiceRole por el nombre del rol de servicio de que creó en Paso 2: Crear un rol de servicio de IAM para Systems Manager.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account-id:role/SSMServiceRole" ] }, { "Action": [ "ssm:AddTagsToResource", "ssm:RegisterManagedInstance" ], "Effect": "Allow", "Resource": "*" } ] }
  2. Ejecute el siguiente comando para crear la política del documento de política en ssm-agent-component-policy.json.

    Linux or Unix
    aws iam create-policy \ --policy-name GreengrassSSMAgentComponentPolicy \ --policy-document file://ssm-agent-component-policy.json
    Windows Command Prompt (CMD)
    aws iam create-policy ^ --policy-name GreengrassSSMAgentComponentPolicy ^ --policy-document file://ssm-agent-component-policy.json
    PowerShell
    aws iam create-policy ` --policy-name GreengrassSSMAgentComponentPolicy ` --policy-document file://ssm-agent-component-policy.json

    Copie la política del nombre de recurso de Amazon (ARN) de la política de los metadatos de salida. Utilice este ARN para asociar la política al rol del dispositivo principal en el siguiente paso.

  3. Ejecute el siguiente comando para asociar la política al rol de intercambio de token.

    • Sustituya GreengrassV2TokenExchangeRole por el nombre del rol de intercambio de token que especificó al instalar el software AWS IoT Greengrass Core. Si no especificó un nombre para el rol de intercambio de token al instalar el software AWS IoT Greengrass Core, se creó un rol denominado GreengrassV2TokenExchangeRole.

    • Sustituya el ARN de la política por el ARN del paso anterior.

    Linux or Unix
    aws iam attach-role-policy \ --role-name GreengrassV2TokenExchangeRole \ --policy-arn arn:aws:iam::123456789012:policy/GreengrassSSMAgentComponentPolicy
    Windows Command Prompt (CMD)
    aws iam attach-role-policy ^ --role-name GreengrassV2TokenExchangeRole ^ --policy-arn arn:aws:iam::123456789012:policy/GreengrassSSMAgentComponentPolicy
    PowerShell
    aws iam attach-role-policy ` --role-name GreengrassV2TokenExchangeRole ` --policy-arn arn:aws:iam::123456789012:policy/GreengrassSSMAgentComponentPolicy

    Si todo es correcto, el comando no tiene salida. Los dispositivos principales que utilizan este rol de intercambio de token ahora tienen permiso para interactuar con el servicio Systems Manager.

Paso 4: Implementar el componente agente de Systems Manager

Complete los siguientes pasos para implementar y configurar el componente agente de Systems Manager. Puede implementar el componente en un único dispositivo principal o en un grupo de dispositivos principales.

  1. En el menú de navegación de la consola de AWS IoT Greengrass, elija Componentes.

  2. En la página Componentes, elija la pestaña Componentes públicos y, luego, elija aws.greengrass.SystemsManagerAgent.

  3. En la página aws.greengrass.SystemsManagerAgent, elija Implementar.

  4. En Agregar a la implementación, elija una implementación existente para revisarla o cree una nueva y, a continuación, elija Siguiente.

  5. Si opta por crear una nueva implementación, elija el dispositivo principal o el grupo de objetos de destino para la implementación. En la página Especificar el destino, en Destino de la implementación, elija un dispositivo principal o un grupo de objetos y, a continuación, elija Siguiente.

  6. En la página Seleccionar componentes, compruebe que el componente aws.greengrass.SystemsManagerAgent esté seleccionado y elija Siguiente.

  7. En la página Configurar componentes, seleccione aws.greengrass.SystemsManagerAgent y haga lo siguiente:

    1. Seleccione Configurar componente.

    2. En el cuadro Configurar aws.greengrass.SystemsManagerAgent, en Actualización de configuración, en Configuración para combinar, ingrese la siguiente actualización de configuración. Reemplace SSMServiceRole por el nombre del rol de servicio de que creó en Paso 2: Crear un rol de servicio de IAM para Systems Manager.

      { "SSMRegistrationRole": "SSMServiceRole", "SSMOverrideExistingRegistration": false }
      nota

      Si el dispositivo principal ya ejecuta el Agente de Systems Manager registrado con una activación híbrida, cambie SSMOverrideExistingRegistration a true. Este parámetro especifica si el componente agente de Systems Manager registra el dispositivo principal cuando el Agente de Systems Manager ya se está ejecutando en el dispositivo con una activación híbrida.

      También puede especificar etiquetas (SSMResourceTags) para agregarlas al nodo administrado por Systems Manager que el componente agente de Systems Manager crea para el dispositivo principal. Para obtener más información, consulte Configuración del componente agente de Systems Manager.

    3. Elija Confirmar para cerrar el cuadro y, a continuación, elija Siguiente.

  8. En la página Configurar ajustes avanzados, mantenga los ajustes de configuración predeterminados y seleccione Siguiente.

  9. En la página Revisar, elija Implementar.

    La implementación puede tardar hasta un minuto para completarse.

Para implementar el componente agente de Systems Manager, cree un documento de implementación que incluya aws.greengrass.SystemsManagerAgent en el objeto components y especifique la actualización de configuración del componente. Siga las instrucciones en Crear implementaciones para crear una implementación nueva o revisar una implementación existente.

El siguiente ejemplo de documento de implementación parcial especifica el uso de un rol de servicio denominado SSMServiceRole. Reemplace SSMServiceRole por el nombre del rol de servicio de que creó en Paso 2: Crear un rol de servicio de IAM para Systems Manager.

{ ..., "components": { ..., "aws.greengrass.SystemsManagerAgent": { "componentVersion": "1.0.0", "configurationUpdate": { "merge": "{\"SSMRegistrationRole\":\"SSMServiceRole\",\"SSMOverrideExistingRegistration\":false}" } } } }
nota

Si el dispositivo principal ya ejecuta el Agente de Systems Manager registrado con una activación híbrida, cambie SSMOverrideExistingRegistration a true. Este parámetro especifica si el componente agente de Systems Manager registra el dispositivo principal cuando el Agente de Systems Manager ya se está ejecutando en el dispositivo con una activación híbrida.

También puede especificar etiquetas (SSMResourceTags) para agregarlas al nodo administrado por Systems Manager que el componente agente de Systems Manager crea para el dispositivo principal. Para obtener más información, consulte Configuración del componente agente de Systems Manager.

La implementación puede tardar varios minutos en completarse. Puede utilizar el servicio de AWS IoT Greengrass para comprobar el estado de la implementación y comprobar los registros del software AWS IoT Greengrass Core y los registros del componente agente de Systems Manager a fin de verificar que el Agente de Systems Manager se ejecuta correctamente. Para obtener más información, consulte los siguientes temas:

Si la implementación falla o el Agente de Systems Manager no se ejecuta, puede solucionar los problemas de la implementación en cada dispositivo principal. Para obtener más información, consulte los siguientes temas:

Paso 5: Verificar el registro del dispositivo principal en Systems Manager

Cuando se ejecuta el componente agente de Systems Manager, registra el dispositivo principal como nodo administrado en Systems Manager. Puede usar la consola de AWS IoT Greengrass, la consola de Systems Manager y la API de Systems Manager para comprobar que un dispositivo principal esté registrado como nodo administrado. Los nodos administrados también se denominan instancias en partes de la consola de AWS y la API.

  1. En el menú de navegación de la consola de AWS IoT Greengrass, elija Dispositivos principales.

  2. Elija el dispositivo principal que desee verificar.

  3. En la página de detalles del dispositivo principal, busque la propiedad de la Instancia de AWS Systems Manager. Si esta propiedad está presente y muestra un enlace a la consola de Systems Manager, el dispositivo principal está registrado como nodo administrado.

    También puede encontrar la propiedad estado de ping AWS Systems Manager para comprobar el estado del Agente de Systems Manager en el dispositivo principal. Cuando el estado es En línea, puede administrar el dispositivo principal con Systems Manager.

  1. En el menú de navegación de la consola de Systems Manager, seleccione Administrador de flotas.

  2. En Nodos administrados, haga lo siguiente:

    1. Agregue un filtro en el que Tipo de origen sea AWS::IoT::Thing.

    2. Agregue un filtro en el que ID de origen sea el nombre del dispositivo principal que se va a verificar.

  3. Busque el dispositivo principal en la tabla de Nodos administrados. Si el dispositivo principal está en la tabla, está registrado como nodo administrado.

    También puede encontrar la propiedad estado de ping del agente de Systems Manager para comprobar el estado del Agente de Systems Manager en el dispositivo principal. Cuando el estado es En línea, puede administrar el dispositivo principal con Systems Manager.

  • Utilice la operación DescribeInstanceInformation para obtener la lista de nodos administrados que coinciden con un filtro que especifique. Ejecute el siguiente comando para verificar si un dispositivo principal está registrado como nodo administrado. Reemplace MyGreengrassCore por el nombre de su dispositivo principal.

    aws ssm describe-instance-information --filter Key=SourceIds,Values=MyGreengrassCore Key=SourceTypes,Values=AWS::IoT::Thing

    La respuesta contiene la lista de nodos administrados que coinciden con el filtro. Si la lista contiene un nodo administrado, el dispositivo principal se registra como nodo administrado. También puede encontrar más información sobre el nodo administrado del dispositivo principal en la respuesta. Cuando la propiedad PingStatus está Online, puede administrar el dispositivo principal con Systems Manager.

Tras comprobar que un dispositivo principal está registrado como nodo administrado en Systems Manager, puede utilizar la consola y la API de Systems Manager para administrar ese dispositivo principal. Para obtener más información sobre estas capacidades de Systems Manager que puede usar para administrar los dispositivos principales de Greengrass, consulte Capacidades de Systems Manager en la Guía del usuario de AWS Systems Manager.