Paso 2: crear un rol de servicio de IAM para dispositivos de borde - AWS Systems Manager

Paso 2: crear un rol de servicio de IAM para dispositivos de borde

Los dispositivos de núcleo de AWS IoT Greengrass requieren un rol de servicio de AWS Identity and Access Management (IAM) para comunicarse con AWS Systems Manager. El rol concede AWS Security Token Service (AWS STS) AssumeRole confianza en el servicio de Systems Manager. Solo tiene que crear un rol de servicio una vez por cada Cuenta de AWS. Especificará este rol para el parámetro RegistrationRole cuando configure e implemente el componente de SSM Agent a los dispositivos de AWS IoT Greengrass. Si ya creó este rol mientras configuraba servidores locales o máquinas virtuales en un entorno híbrido, puede omitir este paso.

nota

A los usuarios de la empresa u organización que van a utilizar Systems Manager en los dispositivos de borde se les debe conceder permiso en IAM para llamar a la API de Systems Manager. Para obtener más información, consulte Crear usuarios y grupos no administradores de IAM para Systems Manager.

Requisito de política de bucket de S3

Si cualquiera de los siguientes casos es correcto, debe crear una política de permiso de IAM personalizada para los buckets de Amazon Simple Storage Service (Amazon S3) antes de completar este procedimiento:

  • Caso 1: está utilizando un punto de conexión de VPC para conectar de forma privada su VPC a Servicios de AWS y servicios de punto de conexión de VPC compatibles gestionados por AWS PrivateLink.

  • Caso 2: tiene previsto utilizar un bucket de Amazon S3 que ha creado como parte de sus operaciones de Systems Manager, como, por ejemplo, para almacenar salidas para comandos de Run Command o sesiones de Session Manager en un bucket de Amazon S3. Antes de continuar, siga los pasos en Creación de una política de bucket de S3 personalizada para un perfil de instancias. La información acerca de las políticas del bucket de S3 que aparece en este tema también se aplica a su rol de servicio.

    nota

    Si los dispositivos están protegidos por un firewall y planea utilizar Patch Manager, el firewall debe permitir el acceso al punto de conexión de la base de referencia de revisiones arn:aws:s3:::patch-baseline-snapshot-region/*.

    region representa el identificador de Región de AWS compatible con AWS Systems Manager, como us-east-2 para la región EE. UU. Este (Ohio). Para ver una lista de los valores de regiones admitidos, consulte la columna Region (Región) en los puntos de enlace de servicio de Systems Manager en la Referencia general de Amazon Web Services.

AWS CLI

Para crear un rol de servicio de IAM para un entorno AWS IoT Greengrass (AWS CLI)

  1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

    Para obtener información, consulte Instalar o actualizar herramientas de línea de comandos de AWS.

  2. En el equipo local, cree un archivo de texto con un nombre como SSMService-Trust.json con la siguiente política de confianza. Asegúrese de guardar el archivo con la extensión .json.

    nota

    Anote el nombre. Lo especificará cuando implemente SSM Agent en los dispositivos de núcleo de AWS IoT Greengrass.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  3. Abra la AWS CLI, y en el directorio en el que creó el archivo JSON, ejecute el comando create-role para crear el rol de servicio. Reemplace cada example resource placeholder por su propia información.

    Linux y macOS

    aws iam create-role \ --role-name SSMServiceRole \ --assume-role-policy-document file://SSMService-Trust.json

    Windows

    aws iam create-role ^ --role-name SSMServiceRole ^ --assume-role-policy-document file://SSMService-Trust.json
  4. Ejecute el comando attach-role-policy de la siguiente forma para permitir que la función de servicio que acaba de crear genere un token de sesión. El token de sesión concede permiso a los dispositivos de borde para ejecutar comandos mediante Systems Manager.

    nota

    Las políticas que agrega a un perfil de servicio para los dispositivos de borde son las mismas políticas que las utilizadas para crear un perfil de instancias en instancias de Amazon Elastic Compute Cloud (Amazon EC2). Para obtener más información acerca de políticas de AWS utilizadas en los siguientes comandos, consulte Crear un perfil de instancias de IAM para Systems Manager.

    (Obligatorio) Ejecute el siguiente comando para permitir que un dispositivo de borde utilice la funcionalidad principal del servicio de AWS Systems Manager.

    Linux y macOS

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    Windows

    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    Si ha creado una política de bucket de S3 personalizada para su rol de servicio, ejecute el siguiente comando para permitir el acceso de AWS Systems Manager Agent (SSM Agent) a los buckets que especificó en la política. Sustituya account_ID y my_bucket_policy_name con el ID de la Cuenta de AWS y el nombre del bucket.

    Linux y macOS

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::account_ID:policy/my_bucket_policy_name

    Windows

    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::account_id:policy/my_bucket_policy_name

    (Opcional) Ejecute el siguiente comando para permitir que SSM Agent acceda a AWS Directory Service en su nombre para las solicitudes de unión al dominio desde los dispositivos de borde. El rol de servicio solo necesita esta política si une los dispositivos de borde a un directorio de Microsoft AD.

    Linux y macOS

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    Windows

    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (Opcional) Ejecute el siguiente comando para permitir que el agente de CloudWatch se ejecute en los dispositivos de borde. Este comando permite la lectura de información en un dispositivo y su escritura en CloudWatch. El rol de servicio solo precisa de esta política si hace uso de servicios, como Amazon EventBridge o Amazon CloudWatch Logs.

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
Tools for PowerShell

Para crear un rol de servicio de IAM para un entorno AWS IoT Greengrass (AWS Tools for Windows PowerShell)

  1. Si aún no lo ha hecho, instale y configure AWS Tools for PowerShell.

    Para obtener información, consulte Instalar o actualizar herramientas de línea de comandos de AWS.

  2. En el equipo local, cree un archivo de texto con un nombre como SSMService-Trust.json con la siguiente política de confianza. Asegúrese de guardar el archivo con la extensión .json.

    nota

    Anote el nombre. Lo especificará cuando implemente SSM Agent en los dispositivos de núcleo de AWS IoT Greengrass.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  3. Abra PowerShell en modo administrativo y, en el directorio en el que creó el archivo JSON, ejecute New-IAMRole como se indica a continuación para crear una función de servicio.

    New-IAMRole ` -RoleName SSMServiceRole ` -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
  4. Utilice Register-IAMRolePolicy de la siguiente forma para permitir que el rol de servicio que ha creado genere un token de sesión. El token de sesión concede permiso a los dispositivos de borde para ejecutar comandos mediante Systems Manager.

    nota

    Las políticas que agrega a un rol de servicio para los dispositivos de borde en un entorno de AWS IoT Greengrass son las mismas políticas que las utilizadas para crear un perfil de instancias en instancias EC2. Para obtener más información acerca de políticas de AWS utilizadas en los siguientes comandos, consulte Crear un perfil de instancias de IAM para Systems Manager.

    (Obligatorio) Ejecute el siguiente comando para permitir que un dispositivo de borde utilice la funcionalidad principal del servicio de AWS Systems Manager.

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    Si ha creado una política de bucket de S3 personalizada para su rol de servicio, ejecute el siguiente comando para permitir el acceso de SSM Agent a los buckets que especificó en la política. Sustituya account_ID y my_bucket_policy_name con el ID de la Cuenta de AWS y el nombre del bucket.

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::account_ID:policy/my_bucket_policy_name

    (Opcional) Ejecute el siguiente comando para permitir que SSM Agent acceda a AWS Directory Service en su nombre para las solicitudes de unión al dominio desde los dispositivos de borde. El rol de servicio solo necesita esta política si une los dispositivos de borde a un directorio de Microsoft AD.

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (Opcional) Ejecute el siguiente comando para permitir que el agente de CloudWatch se ejecute en los dispositivos de borde. Este comando permite la lectura de información en un dispositivo y su escritura en CloudWatch. El rol de servicio solo precisa de esta política si hace uso de servicios, como Amazon EventBridge o Amazon CloudWatch Logs.

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Siga en Paso 3: configurar AWS IoT Greengrass.