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 funciona AWS IoT Greengrass con IAM
Antes de utilizar IAM para administrar el acceso a AWS IoT Greengrass, debe comprender las características de IAM con las que puede utilizar AWS IoT Greengrass.
Característica de IAM |
¿Compatible con Greengrass? |
---|---|
Políticas basadas en identidad con permisos de nivel de recursos |
Sí |
No | |
No | |
Sí | |
Sí | |
No | |
Sí |
Para obtener una perspectiva general de cómo funcionan otros servicios de AWS con IAM, consulte los servicios de AWS que funcionan con IAM en la Guía del usuario de IAM.
Políticas de AWS IoT Greengrass basadas en identidades
Con las políticas basadas en identidades de IAM, 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 acciones, claves de condiciones y recursos específicos. Para obtener más información acerca de los elementos que utiliza en una política, consulte Referencia de los elementos de las políticas de JSON de IAM en la Guía del usuario de IAM.
Acciones
Los administradores pueden utilizar las políticas JSON de AWS 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 Action
de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Las acciones de la política generalmente tienen el mismo nombre que la operación de API de AWS asociada. Hay algunas excepciones, como acciones de solo permiso que no tienen una operación de API coincidente. 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.
Las acciones de políticas en AWS IoT Greengrass utilizan el prefijo greengrass:
antes de la acción. Por ejemplo, para permitir que alguien utilice la operación de la API de ListGroups
para enumerar los grupos en su Cuenta de AWS, debe incluir la acción greengrass:ListGroups
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 una lista completa de las acciones de AWS IoT Greengrass, consulte Acciones definidas por AWS IoT Greengrass en la Guía del usuario de IAM.
Recursos
Los administradores pueden utilizar las políticas JSON de AWS 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
de la política JSON especifica el objeto u 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 utilizando el 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 tabla siguiente contiene los ARN de recursos de AWS IoT Greengrass que se pueden utilizar en el elemento Resource
de una declaración de política. Para un mapeo de los permisos a nivel de recursos soportados para acciones de AWS IoT Greengrass, consulte Acciones definidas por AWS IoT Greengrass en la Guía del usuario de IAM.
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 elemento de ejemplo de Resource
especifica el ARN de un grupo de la región Oeste de EE. UU. (Oregón) en el 123456789012
de la Cuenta de AWS:
"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 una Cuenta de AWS en una Región de AWS específica, utilice el comodín en lugar del ID de grupo:
"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/*"
Algunas acciones de AWS IoT Greengrass (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 ARN de recursos en una instrucción, muéstrelos entre corchetes ([
]
) y sepárelos por comas, como se indica a continuación:
"Resource": [ "
resource-arn1
", "resource-arn2
", "resource-arn3
" ]
Para obtener más información sobre los formatos de ARN, consulte este artículo sobre los nombres de recursos de Amazon (ARN) y los espacios de nombres de servicio de AWS en la Referencia general de Amazon Web Services.
Claves de condición
Los administradores pueden utilizar las políticas JSON de AWS 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 con una operación lógica OR
. 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 un permiso de usuario de IAM para acceder a un recurso solo si está etiquetado con su nombre de usuario de IAM. Para más información, consulte Elementos de la política de IAM: variables y etiquetas en la Guía del usuario de IAM.
AWS admite claves de condición globales y claves de condición específicas del servicio. Para ver todas las claves de condición globales de AWS, consulte Claves de contexto de condición globales de AWSen la Guía del usuario de IAM.
AWS IoT Greengrass admite las siguientes claves de condición global.
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 cuánto tiempo (en segundos) ha transcurrido desde que se emitieron mediante MFA las credenciales de seguridad validadas por autenticación multifactor (MFA) en la solicitud. |
aws:MultiFactorAuthPresent |
Filtra el acceso comprobando si se utilizó la autenticación multifactor (MFA) para validar las credenciales de seguridad temporales que realizaron 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ó mediante SSL. |
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 Claves de contexto de condición globales de AWS en la Guía del usuario de IAM.
Ejemplos
Para ver ejemplos de políticas basadas en identidad de AWS IoT Greengrass, consulte Ejemplos de políticas basadas en identidades de AWS IoT Greengrass.
Políticas de AWS IoT Greengrass basadas en recursos
AWS IoT Greengrass no admite políticas basadas en recursos.
Listas de control de acceso (ACL)
AWS IoT Greengrass no es compatible con los ACL.
Autorización basada en etiquetas de AWS IoT Greengrass
Puede asociar etiquetas a los recursos de AWS IoT Greengrass admitidos o transferirlas en una solicitud a 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.
Roles de IAM para AWS IoT Greengrass
Un rol de IAM es una entidad de la Cuenta de AWS que dispone de permisos específicos.
Uso de credenciales temporales con AWS IoT Greengrass
Las credenciales temporales se utilizan para iniciar sesión con federación, adoptar un rol de IAM o adoptar un rol de acceso entre cuentas. Las credenciales de seguridad temporales se obtienen mediante una llamada a operaciones de la API de AWS STS, como AssumeRole o 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 de Lambda utilizan el SDK de AWS, no necesita agregar lógica para obtener las credenciales porque el SDK de AWS lo hace automáticamente.
Roles vinculados al servicio
AWS IoT Greengrass no admite roles vinculados 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 cuenta de IAM y son propiedad de la cuenta. Esto significa que un administrador de IAM 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 los recursos de AWS en su nombre. Para obtener más información, consulte Rol de servicio de Greengrass.
Elección de un rol de IAM en la consola de AWS IoT Greengrass
En la consola de AWS IoT Greengrass, es posible que deba elegir un rol de servicio de Greengrass o un rol de grupo de Greengrass de una lista de roles de IAM en su cuenta.
-
El rol de servicio Greengrass permite a AWS IoT Greengrass acceder a sus recursos de AWS 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 utiliza para permitir que las funciones de Lambda de Greengrass y los conectores del grupo tengan acceso a los recursos de AWS. También puede otorgar permisos a AWS IoT Greengrass para exportar flujos a servicios de AWS y escribir registros de CloudWatch. Para obtener más información, consulte Rol de grupo de Greengrass.