Cómo AWS IoT Greengrass funciona con IAM - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.

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.

Cómo AWS IoT Greengrass funciona con IAM

Antes de administrar el acceso a AWS IoT Greengrass, debe comprender las IAM funciones con las que puede utilizarlas AWS IoT Greengrass. IAM

Para obtener una visión general de cómo funcionan otros AWS serviciosIAM, consulte AWS los servicios con los que funcionan IAM en la Guía del IAM usuario.

Políticas basadas en la identidad para AWS IoT Greengrass

Con las políticas IAM basadas en la identidad, puede especificar las acciones y los recursos permitidos o denegados y las condiciones en las que se permiten o deniegan las acciones. AWS IoT Greengrass admite claves de condiciones, recursos y acciones específicas. Para obtener información sobre todos los elementos que se utilizan en una política, consulte la referencia a los elementos de la IAM JSON política en la Guía del IAM usuario.

Acciones

Los administradores pueden usar AWS JSON políticas para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El Action elemento de una JSON política describe las acciones que puede utilizar para permitir o denegar el acceso en una política. Las acciones de política suelen tener el mismo nombre que la AWS API operación asociada. Hay algunas excepciones, como las acciones que solo permiten permisos y que no tienen una operación coincidente. API También hay algunas operaciones que requieren varias acciones en una política. Estas acciones adicionales se denominan acciones dependientes.

Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.

Acciones políticas para AWS IoT Greengrass usar el greengrass: prefijo antes de la acción. Por ejemplo, para permitir que alguien utilice la ListGroups API operación para enumerar sus grupos Cuenta de AWS, debes incluir la greengrass:ListGroups acción en su política. Las instrucciones de política deben incluir un elemento Action o NotAction. AWS IoT Greengrass define su propio conjunto de acciones que describen las tareas que se pueden realizar con este servicio.

Para especificar varias acciones en una misma instrucción, inclúyalas entre corchetes ([ ]) y sepárelas por comas, tal y como se indica a continuación:

"Action": [ "greengrass:action1", "greengrass:action2", "greengrass:action3" ]

Puede utilizar comodines (*) para especificar varias acciones. Por ejemplo, para especificar todas las acciones que comiencen con la palabra List, incluya la siguiente acción:

"Action": "greengrass:List*"
nota

Se recomienda evitar el uso de comodines para especificar todas las acciones disponibles para un servicio. Como práctica recomendada, debe conceder permisos de mínimo privilegio y acotar el alcance de los permisos en una política. Para obtener más información, consulte Conceda los mínimos permisos posibles.

Para ver la lista completa de AWS IoT Greengrass acciones, consulte las acciones definidas por AWS IoT Greengrass en la Guía del IAM usuario.

Recursos

Los administradores pueden usar AWS JSON políticas para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Resource JSON de política especifica el objeto o los objetos a los que se aplica la acción. Las instrucciones deben contener un elemento Resource o NotResource. Como práctica recomendada, especifique un recurso mediante su nombre de recurso de Amazon (ARN). Puede hacerlo para acciones que admitan un tipo de recurso específico, conocido como permisos de nivel de recurso.

Para las acciones que no admiten permisos de nivel de recurso, como las operaciones de descripción, utilice un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.

"Resource": "*"

La siguiente tabla contiene el AWS IoT Greengrass recurso ARNs que se puede utilizar como Resource elemento de una declaración de política. Para ver un mapeo de los permisos a nivel de recursos admitidos para AWS IoT Greengrass las acciones, consulte las acciones definidas por AWS IoT Greengrass en la Guía del IAMusuario.

Recurso ARN
Group arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}
GroupVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}
CertificateAuthority arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId}
Deployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}
BulkDeployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId}
ConnectorDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}
ConnectorDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId}
CoreDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}
CoreDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId}
DeviceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}
DeviceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId}
FunctionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}
FunctionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId}
LoggerDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}
LoggerDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId}
ResourceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}
ResourceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId}
SubscriptionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}
SubscriptionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}
ConnectivityInfo arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo

El siguiente Resource elemento de ejemplo especifica el ARN número de un grupo en la región EE.UU. Oeste (Oregón) en: Cuenta de AWS 123456789012

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

O bien, para especificar todos los grupos que pertenecen a un Cuenta de AWS grupo específico Región de AWS, utilice el comodín en lugar del identificador del grupo:

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/*"

Algunas AWS IoT Greengrass acciones (por ejemplo, algunas operaciones de lista) no se pueden realizar en un recurso específico. En dichos casos, debe utilizar solo el carácter comodín.

"Resource": "*"

Para especificar varios recursos ARNs en una sentencia, enumérelos entre corchetes ([]) y sepárelos con comas, de la siguiente manera:

"Resource": [ "resource-arn1", "resource-arn2", "resource-arn3" ]

Para obtener más información sobre los ARN formatos, consulte Nombres de recursos de Amazon (ARNs) y espacios AWS de nombres de servicios en. Referencia general de Amazon Web Services

Claves de condición

Los administradores pueden usar AWS JSON políticas para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Condition (o bloque de Condition) permite especificar condiciones en las que entra en vigor una instrucción. El elemento Condition es opcional. Puede crear expresiones condicionales que utilicen operadores de condición, tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud.

Si especifica varios elementos de Condition en una instrucción o varias claves en un único elemento de Condition, AWS las evalúa mediante una operación AND lógica. Si especifica varios valores para una única clave de condición, AWS evalúa la condición mediante una OR operación lógica. Se deben cumplir todas las condiciones antes de que se concedan los permisos de la instrucción.

También puede utilizar variables de marcador de posición al especificar condiciones. Por ejemplo, puede conceder a un IAM usuario permiso para acceder a un recurso solo si está etiquetado con su nombre de IAM usuario. Para obtener más información, consulte los elementos de IAM política: variables y etiquetas en la Guía del IAM usuario.

AWS admite claves de condición globales y claves de condición específicas del servicio. Para ver todas las claves de condición AWS globales, consulte las claves de contexto de condición AWS globales en la Guía del IAMusuario.

AWS IoT Greengrass admite las siguientes claves de condición globales.

Clave Descripción
aws:CurrentTime Filtra el acceso al comprobar las condiciones de fecha y hora de la fecha y hora actual.
aws:EpochTime Filtra el acceso al comprobar las condiciones de fecha y hora de la fecha y hora actual en formato de hora Unix.
aws:MultiFactorAuthAge Filtra el acceso comprobando con cuánto tiempo (en segundos) se emitieron las credenciales de seguridad validadas mediante la autenticación multifactorial (MFA) en la solicitud. MFA
aws:MultiFactorAuthPresent Filtra el acceso comprobando si se utilizó la autenticación multifactorial (MFA) para validar las credenciales de seguridad temporales que hicieron la solicitud actual.
aws:RequestTag/${TagKey} Filtra las solicitudes de creación en función del conjunto de valores permitidos para cada una de las etiquetas obligatorias.
aws:ResourceTag/${TagKey} Filtra acciones en función del valor de la etiqueta asociado con el recurso.
aws:SecureTransport Filtra el acceso comprobando si la solicitud se envió utilizandoSSL.
aws:TagKeys Filtra las solicitudes de creación en función de la presencia de etiquetas obligatorias en la solicitud.
aws:UserAgent Filtra el acceso por aplicación cliente del solicitante.

Para obtener más información, consulte las claves de contexto de las condiciones AWS globales en la Guía del IAM usuario.

Ejemplos

Para ver ejemplos de políticas AWS IoT Greengrass basadas en la identidad, consulte. Ejemplos de políticas basadas en identidades de AWS IoT Greengrass

Políticas basadas en recursos para AWS IoT Greengrass

AWS IoT Greengrass no admite políticas basadas en recursos.

Listas de control de acceso () ACLs

AWS IoT Greengrass no es compatible ACLs.

Autorización basada en etiquetas de AWS IoT Greengrass

Puedes adjuntar etiquetas a AWS IoT Greengrass los recursos compatibles o pasarles etiquetas en una solicitud AWS IoT Greengrass. Para controlar el acceso utilizando etiquetas, debe proporcionar información de las etiquetas en el elemento de condición de una política utilizando las claves de condición aws:ResourceTag/${TagKey}, aws:RequestTag/${TagKey} o aws:TagKeys. Para obtener más información, consulte Etiquetar los recursos de AWS IoT Greengrass.

IAMroles para AWS IoT Greengrass

Un IAMrol es una entidad dentro de usted Cuenta de AWS que tiene permisos específicos.

Utilizar credenciales temporales con AWS IoT Greengrass

Las credenciales temporales se utilizan para iniciar sesión con la federación, asumir un IAM rol o asumir un rol multicuenta. Las credenciales de seguridad temporales se obtienen llamando a AWS STS API operaciones como AssumeRoleo GetFederationToken.

En el núcleo de Greengrass, las credenciales temporales para el rol de grupo están disponibles para las funciones de Lambda y conectores definidos por el usuario. Si sus funciones Lambda utilizan AWS SDK, no necesita añadir lógica para obtener las credenciales, ya que AWS SDK lo hace por usted.

Roles vinculados al servicio

AWS IoT Greengrass no admite funciones vinculadas a servicios.

Roles de servicio

Esta característica permite que un servicio asuma un rol de servicio en su nombre. Este rol permite que el servicio obtenga acceso a los recursos de otros servicios para completar una acción en su nombre. Los roles de servicio aparecen en su IAM cuenta y son propiedad de la cuenta. Esto significa que un IAM administrador puede cambiar los permisos de este rol. Sin embargo, hacerlo podría deteriorar la funcionalidad del servicio.

AWS IoT Greengrass utiliza un rol de servicio para acceder a algunos de sus AWS recursos en su nombre. Para obtener más información, consulte Rol de servicio de Greengrass.

Elegir un IAM rol en la AWS IoT Greengrass consola

En la AWS IoT Greengrass consola, puede que tengas que elegir un rol de servicio de Greengrass o un rol de grupo de Greengrass de una lista de IAM roles de tu cuenta.

  • El rol de servicio de Greengrass le permite acceder AWS IoT Greengrass a sus AWS recursos en otros servicios en su nombre. Normalmente, no es necesario elegir el rol de servicio porque la consola puede crearlo y configurarlo automáticamente. Para obtener más información, consulte Rol de servicio de Greengrass.

  • El rol de grupo de Greengrass se usa para permitir que las funciones y los conectores de Greengrass Lambda del grupo accedan a sus recursos. AWS También puede conceder AWS IoT Greengrass permisos para exportar flujos a AWS servicios y escribir registros. CloudWatch Para obtener más información, consulte Rol de grupo de Greengrass.