Autenticación y autorización de dispositivos en AWS IoT Greengrass - 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.

Autenticación y autorización de dispositivos en AWS IoT Greengrass

Los dispositivos en entornos de AWS IoT Greengrass utilizan certificados X.509 para la autenticación y políticas de AWS IoT para la autorización. Los certificados y las políticas permiten que los dispositivos se conecten de forma segura entre sí, con AWS IoT Core y AWS IoT Greengrass.

Los certificados X.509 son certificados digitales que utilizan el estándar de infraestructura de clave pública X.509 para asociar una clave pública a una identidad contenida en un certificado. Una entidad de confianza conocida como entidad de certificación (CA) emite los certificados X.509. La CA administra uno o varios certificados especiales llamados certificados de CA, que utiliza para generar certificados X.509. Solo la entidad de certificación tiene acceso a los certificados de entidad de certificación.

Las políticas de AWS IoT definen el conjunto de operaciones permitidas para los dispositivos de AWS IoT. Específicamente, permiten y deniegan el acceso a operaciones de plano de datos de AWS IoT Core y AWS IoT Greengrass, como la publicación de mensajes MQTT y la recuperación de sombras de dispositivos.

Todos los dispositivos requieren una entrada en el registro de AWS IoT Core y un certificado X.509 activado con una política de AWS IoT asociada. Los dispositivos se dividen en dos categorías:

  • Dispositivos principales de Greengrass

    Los dispositivos principales de Greengrass utilizan certificados y AWS IoT políticas para conectarse AWS IoT Core y. AWS IoT Greengrass Los certificados y las políticas también permiten AWS IoT Greengrass implementar componentes y configuraciones en los dispositivos principales.

  • Dispositivos cliente

    Los dispositivos cliente de MQTT utilizan certificados y políticas para conectarse al AWS IoT Greengrass servicio AWS IoT Core y al mismo. Esto permite a los dispositivos cliente utilizar la detección AWS IoT Greengrass en la nube para buscar y conectarse a un dispositivo principal de Greengrass. Un dispositivo cliente utiliza el mismo certificado para conectarse al servicio AWS IoT Core en la nube y a los dispositivos principales. Los dispositivos de cliente también utilizan información de detección para la autenticación mutua con el dispositivo principal. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

Certificados X.509

La comunicación entre los dispositivos principales y los dispositivos cliente y entre los dispositivos AWS IoT Core y/o AWS IoT Greengrass debe autenticarse. Esta autenticación mutua se basa en certificados de dispositivo X.509 registrados y claves criptográficas.

En un entorno de AWS IoT Greengrass, los dispositivos utilizan certificados con claves públicas y privadas para las siguientes conexiones de Transport Layer Security (TLS):

  • El componente de AWS IoT cliente del dispositivo principal de Greengrass que se conecta a Internet AWS IoT Core y a AWS IoT Greengrass través de ella.

  • Dispositivos cliente que se conectan a AWS IoT Greengrass través de Internet para descubrir los dispositivos principales.

  • El componente intermediario MQTT del núcleo de Greengrass que se conecta a los dispositivos Greengrass del grupo a través de la red local.

AWS IoT Greengrasslos dispositivos principales almacenan los certificados en la carpeta raíz de Greengrass.

Certificados de entidad de certificación (CA)

Los dispositivos principales y los dispositivos cliente de Greengrass descargan un certificado de CA raíz que se utiliza para la autenticación con los servicios AWS IoT Core yAWS IoT Greengrass. Le recomendamos que utilice un certificado de entidad de certificación raíz de Amazon Trust Services (ATS), como Amazon Root CA 1. Para obtener más información, consulte Certificados de CA para autenticación de servidor en la Guía del desarrollador de AWS IoT Core.

Los dispositivos cliente también descargan un certificado de CA para dispositivos principales de Greengrass. Utilizan este certificado para validar el certificado del servidor MQTT en el dispositivo principal durante la autenticación mutua.

Rotación de certificados en el broker MQTT local

Al habilitar la compatibilidad con dispositivos cliente, los dispositivos principales de Greengrass generan un certificado de servidor MQTT local que los dispositivos cliente utilizan para la autenticación mutua. Este certificado está firmado por el certificado CA del dispositivo principal, que el dispositivo principal almacena en la AWS IoT Greengrass nube. Los dispositivos cliente recuperan el certificado de CA del dispositivo principal cuando descubren el dispositivo principal. Utilizan el certificado de CA del dispositivo principal para verificar el certificado del servidor MQTT del dispositivo principal cuando se conectan al dispositivo principal. El certificado de CA del dispositivo principal caduca a los 5 años.

El certificado del servidor MQTT caduca cada 7 días de forma predeterminada, y puede configurar esta duración entre 2 y 10 días. Este período limitado se basa en las prácticas recomendadas de seguridad. Esta rotación ayuda a mitigar la amenaza de que un atacante robe el certificado del servidor MQTT y la clave privada para hacerse pasar por el dispositivo principal de Greengrass.

El dispositivo principal de Greengrass rota el certificado del servidor MQTT 24 horas antes de que caduque. El dispositivo principal de Greengrass genera un nuevo certificado y reinicia el broker MQTT local. Cuando esto ocurre, todos los dispositivos cliente conectados al dispositivo principal de Greengrass se desconectan. Los dispositivos cliente pueden volver a conectarse al dispositivo principal de Greengrass después de un breve período de tiempo.

Políticas de AWS IoT para operaciones de plano de datos

Utilice AWS IoT políticas para autorizar el acceso a los planos de AWS IoT Greengrass datos AWS IoT Core y a los mismos. El plano de AWS IoT Core datos proporciona operaciones para dispositivos, usuarios y aplicaciones. Estas operaciones incluyen la posibilidad de conectarse a los temas AWS IoT Core y suscribirse a ellos. El plano AWS IoT Greengrass de datos proporciona operaciones para los dispositivos Greengrass. Para obtener más información, consulte Acciones de política de AWS IoT Greengrass V2. Estas operaciones incluyen la capacidad de resolver las dependencias de los componentes y descargar artefactos de componentes públicos.

Una política de AWS IoT es un documento JSON que es similar a una política de IAM. Contiene una o varias instrucciones de política que especifican las siguientes propiedades:

  • Effect. El modo de acceso, que puede ser Allow o Deny.

  • Action. La lista de acciones permitidas o denegadas por la política.

  • Resource. La lista de recursos en los que se permite o deniega la acción.

Las políticas de AWS IoT admiten * como caracteres comodín y tratan los caracteres comodín MQTT (+ y #) como cadenas literales. Para obtener más información sobre el comodín *, consulte Uso del comodín en los ARN de los recursos en la Guía del usuario de AWS Identity and Access Management.

Para obtener más información, consulte Políticas de AWS IoT y Acciones de política de AWS IoT en la Guía del desarrollador de AWS IoT Core.

importante

Las variables de política de cosas (iot:Connection.Thing.*) no se admiten en las AWS IoT políticas de dispositivos principales ni en las operaciones del plano de datos de Greengrass. En su lugar, puede utilizar un comodín que haga coincidir varios dispositivos con nombres similares. Por ejemplo, puede MyGreengrassDevice* especificar que coincida MyGreengrassDevice1MyGreengrassDevice2, etc.

nota

AWS IoT Core permite adjuntar políticas de AWS IoT a grupos de objetos a fin de definir los permisos para grupos de dispositivos. Las políticas de grupos de objetos no permiten el acceso a las operaciones del plano de datos de AWS IoT Greengrass. Para permitir que una objeto acceda a una operación del plano de datos de AWS IoT Greengrass, añada el permiso a una política de AWS IoT que adjunta al certificado del objeto.

Acciones de política de AWS IoT Greengrass V2

AWS IoT Greengrass V2define las siguientes acciones políticas que los dispositivos principales y los dispositivos cliente de Greengrass pueden usar en AWS IoT las políticas. Para especificar un recurso para una acción política, utilice el nombre de recurso de Amazon (ARN) del recurso.

Acciones principales del dispositivo
greengrass:GetComponentVersionArtifact

Otorga permiso para obtener una URL prefirmada para descargar un artefacto de componente público o un artefacto de componente Lambda.

Este permiso se evalúa cuando un dispositivo principal recibe una implementación que especifica un componente público o una Lambda que tiene artefactos. Si el dispositivo principal ya tiene el artefacto, no lo volverá a descargar.

Tipo de recurso: componentVersion

Formato ARN del recurso: arn:aws:greengrass:region:account-id:components:component-name:versions:component-version

greengrass:ResolveComponentCandidates

Otorga permiso para identificar una lista de componentes que cumplen con los requisitos de componentes, versiones y plataformas para una implementación. Si los requisitos entran en conflicto o no existe ningún componente que los cumpla, esta operación devuelve un error y la implementación falla en el dispositivo.

Este permiso se evalúa cuando un dispositivo principal recibe una implementación que especifica los componentes.

Tipo de recurso: ninguno

Formato ARN del recurso: *

greengrass:GetDeploymentConfiguration

Otorga permiso para obtener una URL prefirmada para descargar un documento de implementación de gran tamaño.

Este permiso se evalúa cuando un dispositivo principal recibe una implementación que especifica un documento de implementación de más de 7 KB (si la implementación se dirige a un grupo de cosas) o 31 KB (si la implementación está dirigida a un grupo de cosas). El documento de despliegue incluye las configuraciones de los componentes, las políticas de despliegue y los metadatos de despliegue. Para obtener más información, consulte Implemente AWS IoT Greengrass componentes en los dispositivos.

Esta función está disponible para la versión 2.3.0 y versiones posteriores del componente núcleo de Greengrass.

Tipo de recurso: ninguno

Formato ARN del recurso: *

greengrass:ListThingGroupsForCoreDevice

Otorga permiso para obtener la jerarquía de grupos de cosas de un dispositivo principal.

Este permiso se comprueba cuando un dispositivo principal recibe una implementación desdeAWS IoT Greengrass. El dispositivo principal utiliza esta acción para identificar si se ha eliminado de un grupo de cosas desde la última implementación. Si el dispositivo principal se eliminó de un grupo de cosas y ese grupo de cosas es el objetivo de una implementación en el dispositivo principal, el dispositivo principal elimina los componentes instalados por esa implementación.

Esta función la utilizan la versión 2.5.0 y versiones posteriores del componente núcleo de Greengrass.

Tipo de recurso: thing (dispositivo principal)

Formato ARN del recurso: arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:VerifyClientDeviceIdentity

Otorga permiso para verificar la identidad de un dispositivo cliente que se conecta a un dispositivo principal.

Este permiso se evalúa cuando un dispositivo principal ejecuta el componente de autenticación del dispositivo cliente y recibe una conexión MQTT desde un dispositivo cliente. El dispositivo cliente presenta su certificado de AWS IoT dispositivo. A continuación, el dispositivo principal envía el certificado del dispositivo al servicio AWS IoT Greengrass en la nube para verificar la identidad del dispositivo cliente. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

Tipo de recurso: ninguno

Formato ARN del recurso: *

greengrass:VerifyClientDeviceIoTCertificateAssociation

Otorga permiso para comprobar si un dispositivo cliente está asociado a un AWS IoT certificado.

Este permiso se evalúa cuando un dispositivo principal ejecuta el componente de autenticación del dispositivo cliente y autoriza a un dispositivo cliente a conectarse a través de MQTT. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

nota

Para que un dispositivo principal utilice esta operación, la función de servicio Greengrass debe estar asociada a usted Cuenta de AWS y permitir el iot:DescribeCertificate permiso.

Tipo de recurso: thing (dispositivo cliente)

Formato ARN del recurso: arn:aws:iot:region:account-id:thing/client-device-thing-name

greengrass:PutCertificateAuthorities

Otorga permiso para cargar certificados de la autoridad de certificación (CA) que los dispositivos cliente pueden descargar para verificar el dispositivo principal.

Este permiso se evalúa cuando un dispositivo principal instala y ejecuta el componente de autenticación del dispositivo cliente. Este componente crea una entidad emisora de certificados local y utiliza esta operación para cargar sus certificados de CA. Los dispositivos cliente descargan estos certificados de CA cuando utilizan la operación Discover para encontrar los dispositivos principales a los que pueden conectarse. Cuando los dispositivos cliente se conectan a un intermediario MQTT en un dispositivo principal, utilizan estos certificados de CA para verificar la identidad del dispositivo principal. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

Tipo de recurso: ninguno

Formato ARN: *

greengrass:GetConnectivityInfo

Otorga permiso para obtener información de conectividad de un dispositivo principal. Esta información describe cómo los dispositivos cliente se pueden conectar al dispositivo principal.

Este permiso se evalúa cuando un dispositivo principal instala y ejecuta el componente de autenticación del dispositivo cliente. Este componente utiliza la información de conectividad para generar certificados de CA válidos para cargarlos en el servicio AWS IoT Greengrass en la nube junto con la PutCertificateAuthoriesoperación. Los dispositivos cliente utilizan estos certificados de CA para verificar la identidad del dispositivo principal. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

También puede utilizar esta operación en el plano de AWS IoT Greengrass control para ver la información de conectividad de un dispositivo principal. Para obtener más información, consulte GetConnectivityInfo en la Referencia de la API de AWS IoT Greengrass V1.

Tipo de recurso: thing (dispositivo principal)

Formato ARN del recurso: arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:UpdateConnectivityInfo

Otorga permiso para actualizar la información de conectividad de un dispositivo principal. Esta información describe cómo los dispositivos cliente se pueden conectar al dispositivo principal.

Este permiso se evalúa cuando un dispositivo principal ejecuta el componente detector de IP. Este componente identifica la información que los dispositivos cliente necesitan para conectarse al dispositivo principal de la red local. A continuación, este componente utiliza esta operación para cargar la información de conectividad en el servicio AWS IoT Greengrass en la nube, de modo que los dispositivos cliente puedan recuperar esta información con la operación Discover. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

También puede utilizar esta operación en el plano de AWS IoT Greengrass control para actualizar manualmente la información de conectividad de un dispositivo principal. Para obtener más información, consulte UpdateConnectivityInfo en la Referencia de la API de AWS IoT Greengrass V1.

Tipo de recurso: thing (dispositivo principal)

Formato ARN del recurso: arn:aws:iot:region:account-id:thing/core-device-thing-name

Acciones del dispositivo cliente
greengrass:Discover

Otorga permiso para descubrir la información de conectividad de los dispositivos principales a los que se puede conectar un dispositivo cliente. Esta información describe cómo el dispositivo cliente puede conectarse a los dispositivos principales. Un dispositivo cliente solo puede detectar los dispositivos principales a los que esté asociado mediante esta BatchAssociateClientDeviceWithCoreDeviceoperación. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

Tipo de recurso: thing (dispositivo cliente)

Formato ARN del recurso: arn:aws:iot:region:account-id:thing/client-device-thing-name

Actualice la política de un dispositivo principal AWS IoT

Puedes usar las AWS IoT consolas AWS IoT Greengrass y la AWS IoT API para ver y actualizar la AWS IoT política de un dispositivo principal.

nota

Si has utilizado el instalador de software AWS IoT Greengrass principal para aprovisionar recursos, tu dispositivo principal tiene una AWS IoT política que permite el acceso a todas AWS IoT Greengrass las acciones (greengrass:*). Puedes seguir estos pasos para restringir el acceso únicamente a las acciones que utiliza un dispositivo principal.

  1. En el menú de navegación de la AWS IoT Greengrassconsola, selecciona Dispositivos principales.

  2. En la página de dispositivos principales, selecciona el dispositivo principal que deseas actualizar.

  3. En la página de detalles del dispositivo principal, selecciona el enlace al dispositivo principal. Este enlace abre la página de detalles del dispositivo en la AWS IoT consola.

  4. En la página de detalles de la cosa, selecciona Certificados.

  5. En la pestaña Certificados, selecciona el certificado activo del objeto.

  6. En la página de detalles del certificado, selecciona Políticas.

  7. En la pestaña Políticas, elija la AWS IoT política que desee revisar y actualizar. Puede añadir los permisos necesarios a cualquier política que esté asociada al certificado activo del dispositivo principal.

    nota

    Si usó el instalador de software AWS IoT Greengrass Core para aprovisionar recursos, tiene dos AWS IoT políticas. Le recomendamos que elija la política nombrada GreengrassV2IoTThingPolicy, si existe. Los dispositivos principales que cree con el instalador rápido utilizan este nombre de política de forma predeterminada. Si agrega permisos a esta política, también los otorga a otros dispositivos principales que usan esta política.

  8. En la descripción general de la política, selecciona Editar la versión activa.

  9. Revise la política y agregue, elimine o edite los permisos según sea necesario.

  10. Para establecer una nueva versión de la política como la versión activa, en Estado de la versión de la política, seleccione Establecer la versión editada como la versión activa de esta política.

  11. Seleccione Guardar como versión nueva.

  1. Enumere los principios del AWS IoT dispositivo principal. Los elementos principales pueden ser certificados de dispositivo X.509 u otros identificadores. Ejecute el siguiente comando y MyGreengrassCoresustitúyalo por el nombre del dispositivo principal.

    aws iot list-thing-principals --thing-name MyGreengrassCore

    La operación devuelve una respuesta que enumera los elementos principales del dispositivo principal.

    { "principals": [ "arn:aws:iot:us-west-2:123456789012:cert/certificateId" ] }
  2. Identifique el certificado activo del dispositivo principal. Ejecute el siguiente comando y sustituya CertificateID por el ID de cada certificado del paso anterior hasta que encuentre el certificado activo. El identificador del certificado es la cadena hexadecimal situada al final del ARN del certificado. El --query argumento especifica que solo se muestre el estado del certificado.

    aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'

    La operación devuelve el estado del certificado en forma de cadena. Por ejemplo, si el certificado está activo, se genera esta operación"ACTIVE".

  3. Enumere las AWS IoT políticas que se adjuntan al certificado. Ejecute el siguiente comando y sustituya el ARN del certificado por el ARN del certificado.

    aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId

    La operación devuelve una respuesta que enumera las AWS IoT políticas adjuntas al certificado.

    { "policies": [ { "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias" }, { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy" } ] }
  4. Elija la política que desee ver y actualizar.

    nota

    Si ha utilizado el instalador de software AWS IoT Greengrass principal para aprovisionar recursos, tiene dos AWS IoT políticas. Le recomendamos que elija la política nombrada GreengrassV2IoTThingPolicy, si existe. Los dispositivos principales que cree con el instalador rápido utilizan este nombre de política de forma predeterminada. Si agrega permisos a esta política, también los otorga a otros dispositivos principales que usan esta política.

  5. Obtenga el documento de la política. Ejecute el siguiente comando y sustituya GreengrassV2IoT por el nombre ThingPolicy de la política.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy

    La operación devuelve una respuesta que contiene el documento de la política y otra información sobre la política. El documento de política es un objeto JSON serializado como una cadena.

    { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\"iot:Connect\\",\ \\"iot:Publish\\",\ \\"iot:Subscribe\\",\ \\"iot:Receive\\",\ \\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "defaultVersionId": "1", "creationDate": "2021-02-05T16:03:14.098000-08:00", "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00", "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f" }
  6. Utilice un conversor en línea u otra herramienta para convertir la cadena del documento de política en un objeto JSON y, a continuación, guárdela en un archivo denominadoiot-policy.json.

    Por ejemplo, si tiene instalada la herramienta jq, puede ejecutar el siguiente comando para obtener el documento de política, convertirlo en un objeto JSON y guardar el documento de política como un objeto JSON.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
  7. Revise el documento de política y añada, elimine o edite los permisos según sea necesario.

    Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano y abrir el archivo.

    nano iot-policy.json

    Cuando haya terminado, el documento de política podría tener un aspecto similar a la AWS IoTpolítica mínima para los dispositivos principales.

  8. Guarda los cambios como una nueva versión de la política. Ejecute el siguiente comando y sustituya GreengrassV2IoT por el nombre ThingPolicy de la política.

    aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default

    La operación devuelve una respuesta similar a la del siguiente ejemplo si tiene éxito.

    { "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\t\\t\\"iot:Connect\\",\ \\t\\t\\"iot:Publish\\",\ \\t\\t\\"iot:Subscribe\\",\ \\t\\t\\"iot:Receive\\",\ \\t\\t\\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "policyVersionId": "2", "isDefaultVersion": true }

AWS IoTPolítica mínima para los dispositivos AWS IoT Greengrass V2 principales

importante

Las versiones posteriores del componente núcleo de Greengrass requieren permisos adicionales en la política mínimaAWS IoT. Es posible que tengas que actualizar las AWS IoT políticas de tus dispositivos principales para conceder permisos adicionales.

  • Los dispositivos principales que ejecutan Greengrass nucleus v2.5.0 y versiones posteriores utilizan el greengrass:ListThingGroupsForCoreDevice permiso para desinstalar componentes al eliminar un dispositivo principal de un grupo de cosas.

  • Los dispositivos principales que ejecutan Greengrass nucleus v2.3.0 y versiones posteriores utilizan el greengrass:GetDeploymentConfiguration permiso para admitir documentos de configuración de despliegue de gran tamaño.

La siguiente política de ejemplo incluye un conjunto mínimo de acciones necesario para respaldar la funcionalidad básica de Greengrass para su dispositivo del núcleo.

  • La Connect política incluye un * comodín después del nombre del dispositivo principal (por ejemplo,). core-device-thing-name* El dispositivo principal utiliza el mismo certificado de dispositivo para realizar varias suscripciones simultáneasAWS IoT Core, pero es posible que el ID de cliente de una conexión no coincida exactamente con el nombre del dispositivo principal. Después de las primeras 50 suscripciones, el dispositivo principal se utiliza core-device-thing-name#number como identificador de cliente, que se number incrementa por cada 50 suscripciones adicionales. Por ejemplo, cuando un dispositivo principal denominado MyCoreDevice crea 150 suscripciones simultáneas, utiliza los siguientes ID de cliente:

    • Suscripciones del 1 al 50: MyCoreDevice

    • Suscripciones del 51 al 100: MyCoreDevice#2

    • Suscripciones 101 a 150: MyCoreDevice#3

    El comodín permite que el dispositivo principal se conecte cuando utiliza estos ID de cliente que tienen un sufijo.

  • La política muestra los temas de MQTT y los filtros de tema en los que el dispositivo del núcleo puede publicar mensajes, suscribirse y recibir mensajes, incluidos temas utilizados para estado de sombra. Para permitir el intercambio de mensajes entre AWS IoT Core los componentes de Greengrass y los dispositivos cliente, especifique los temas y los filtros de temas que desee permitir. Para obtener más información, consulte Ejemplos de política de publicación/suscripción en la Guía del desarrollador de AWS IoT Core.

  • La política concede permiso para publicar datos de telemetría en el siguiente tema.

    $aws/things/core-device-thing-name/greengrass/health/json

    Puede eliminar este permiso en los dispositivos principales en los que se deshabilita la telemetría. Para obtener más información, consulte Recopile datos de telemetría del estado del sistema de los dispositivos principales AWS IoT Greengrass.

  • La política concede permiso para asumir una función de IAM mediante un AWS IoT alias de función. El dispositivo principal utiliza esta función, denominada función de intercambio de fichas, para adquirir AWS credenciales que puede utilizar para autenticar las solicitudes. AWS Para obtener más información, consulte Autorizar a los dispositivos principales a interactuar con AWS los servicios.

    Al instalar el software AWS IoT Greengrass principal, se crea y se adjunta una segunda AWS IoT política que incluye solo este permiso. Si incluye este permiso en la AWS IoT política principal de su dispositivo principal, puede separar y eliminar la otra AWS IoT política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "arn:aws:iot:region:account-id:client/core-device-thing-name*" }, { "Effect": "Allow", "Action": [ "iot:Receive", "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrass/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrassv2/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:region:account-id:rolealias/token-exchange-role-alias-name" }, { "Effect": "Allow", "Action": [ "greengrass:GetComponentVersionArtifact", "greengrass:ResolveComponentCandidates", "greengrass:GetDeploymentConfiguration", "greengrass:ListThingGroupsForCoreDevice" ], "Resource": "*" } ] }

AWS IoTPolítica mínima de compatibilidad con los dispositivos cliente

El siguiente ejemplo de política incluye el conjunto mínimo de acciones necesarias para permitir la interacción con los dispositivos cliente en un dispositivo principal. Para ser compatible con los dispositivos cliente, un dispositivo principal debe tener los permisos de esta AWS IoT política además de la AWS IoTpolítica mínima para su funcionamiento básico.

  • La política permite que el dispositivo principal actualice su propia información de conectividad. Este permiso (greengrass:UpdateConnectivityInfo) solo es necesario si se implementa el componente del detector de IP en el dispositivo principal.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "greengrass:PutCertificateAuthorities", "greengrass:VerifyClientDeviceIdentity" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "greengrass:VerifyClientDeviceIoTCertificateAssociation" ], "Resource": "arn:aws:iot:region:account-id:thing/*" }, { "Effect": "Allow", "Action": [ "greengrass:GetConnectivityInfo", "greengrass:UpdateConnectivityInfo" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-device-thing-name" ] } ] }

AWS IoTPolítica mínima para los dispositivos cliente

El siguiente ejemplo de política incluye el conjunto mínimo de acciones necesarias para que un dispositivo cliente detecte los dispositivos principales a los que se conecta y se comunica a través de MQTT. La AWS IoT política del dispositivo cliente debe incluir la greengrass:Discover acción que permita al dispositivo descubrir la información de conectividad de sus dispositivos principales Greengrass asociados. En la Resource sección, especifique el nombre de recurso de Amazon (ARN) del dispositivo cliente, no el ARN del dispositivo principal de Greengrass.

  • La política permite la comunicación sobre todos los temas de MQTT. Para seguir las mejores prácticas de seguridad, restrinja los iot:Publish iot:Receive permisos y los permisos al conjunto mínimo de temas que un dispositivo cliente requiera para su caso de uso. iot:Subscribe

  • La política permite que el dispositivo descubra los dispositivos principales para AWS IoT todo tipo de aplicaciones. Para seguir las mejores prácticas de seguridad, restrinja el greengrass:Discover permiso al dispositivo cliente o AWS IoT a un comodín que coincida con un conjunto de AWS IoT elementos.

    importante

    Las variables de política de cosas (iot:Connection.Thing.*) no se admiten en las AWS IoT políticas de dispositivos principales ni en las operaciones del plano de datos de Greengrass. En su lugar, puede utilizar un comodín que haga coincidir varios dispositivos con nombres similares. Por ejemplo, puede MyGreengrassDevice* especificar que coincida MyGreengrassDevice1MyGreengrassDevice2, etc.

  • La AWS IoT política de un dispositivo cliente no suele requerir permisos ni iot:DeleteThingShadow acciones iot:GetThingShadowiot:UpdateThingShadow, ya que el dispositivo principal de Greengrass gestiona las operaciones de sincronización oculta para los dispositivos cliente. Para permitir que el dispositivo principal gestione las sombras de los dispositivos cliente, compruebe que la AWS IoT política del dispositivo principal permita estas acciones y que la Resource sección incluya los ARN de los dispositivos cliente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/*" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "greengrass:Discover" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] } ] }