

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.

# Administración de identidad y acceso para AWS IoT Greengrass
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) es una herramienta Servicio de AWS que ayuda al administrador a controlar de forma segura el acceso a los AWS recursos. Los administradores de IAM controlan quién puede *autenticarse (iniciar* sesión) y quién puede *autorizarse* (tener permisos) para usar los recursos. AWS IoT Greengrass La IAM es una Servicio de AWS opción que puede utilizar sin coste adicional.

**nota**  
En este tema se describen conceptos y características de IAM. Para obtener información sobre las funciones de IAM compatibles con AWS IoT Greengrass, consulte. [Cómo AWS IoT Greengrass funciona con IAM](security_iam_service-with-iam.md)

## Público
<a name="security_iam_audience"></a>

La forma de utilizar AWS Identity and Access Management (IAM) varía en función de la función que desempeñe:
+ **Usuario del servicio:** solicite permisos al administrador si no puede acceder a las características (consulte [Solución de problemas de identidad y acceso para AWS IoT Greengrass](security_iam_troubleshoot.md)).
+ **Administrador del servicio:** determine el acceso de los usuarios y envíe las solicitudes de permiso (consulte [Cómo AWS IoT Greengrass funciona con IAM](security_iam_service-with-iam.md)).
+ **Administrador de IAM**: escribe las políticas para administrar el acceso (consulte [Ejemplos de políticas basadas en la identidad para AWS IoT Greengrass](security_iam_id-based-policy-examples.md)).

## Autenticación con identidades
<a name="security_iam_authentication"></a>

La autenticación es la forma en que inicias sesión AWS con tus credenciales de identidad. Debe autenticarse como usuario de Usuario raíz de la cuenta de AWS IAM o asumir una función de IAM.

Puede iniciar sesión como una identidad federada con las credenciales de una fuente de identidad, como AWS IAM Identity Center (IAM Identity Center), la autenticación de inicio de sesión único o las credenciales. Google/Facebook Para obtener más información sobre el inicio de sesión, consulte [Cómo iniciar sesión en la Cuenta de AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) en la *Guía del usuario de AWS Sign-In *.

Para el acceso programático, AWS proporciona un SDK y una CLI para firmar criptográficamente las solicitudes. Para obtener más información, consulte [AWS Signature Version 4 para solicitudes de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) en la *Guía del usuario de IAM*.

### Cuenta de AWS usuario root
<a name="security_iam_authentication-rootuser"></a>

 Al crear un Cuenta de AWS, se comienza con una identidad de inicio de sesión denominada *usuario Cuenta de AWS raíz* que tiene acceso completo a todos Servicios de AWS los recursos. Se recomiendaencarecidamente que no utilice el usuario raíz para las tareas diarias. Para ver la lista completa de las tareas que requieren credenciales de usuario raíz, consulte [Tareas que requieren credenciales de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) en la *Guía del usuario de IAM*. 

### Usuarios y grupos de IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* es una identidad con permisos específicos para una sola persona o aplicación. Recomendamos el uso de credenciales temporales en lugar de usuarios de IAM con credenciales de larga duración. Para obtener más información, consulte [Exigir a los usuarios humanos que utilicen la federación con un proveedor de identidad para acceder AWS mediante credenciales temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) en la Guía del *usuario de IAM*.

Un [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica un conjunto de usuarios de IAM y facilita la administración de los permisos para grupos grandes de usuarios. Para obtener más información, consulte [Casos de uso para usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) en la *Guía del usuario de IAM*.

### Roles de IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[Rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* es una identidad con permisos específicos que proporciona credenciales temporales. Puede asumir un rol [cambiando de un rol de usuario a uno de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) o llamando a una AWS CLI operación de AWS API. Para obtener más información, consulte [Métodos para asumir un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) en la *Guía del usuario de IAM*.

Los roles de IAM son útiles para el acceso de usuario federado, los permisos de usuario de IAM temporales, el acceso entre cuentas, el acceso entre servicios y las aplicaciones que se ejecutan en Amazon EC2. Para obtener más información, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

## Administración del acceso con políticas
<a name="security_iam_access-manage"></a>

 AWS Para controlar el acceso, puede crear políticas y adjuntarlas a AWS identidades o recursos. Una política define los permisos cuando están asociados a una identidad o un recurso. AWS evalúa estas políticas cuando un director hace una solicitud. La mayoría de las políticas se almacenan AWS como documentos JSON. Para obtener más información sobre los documentos de políticas de JSON, consulte [Información general de políticas de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) en la *Guía del usuario de IAM*.

Mediante las políticas, los administradores especifican quién tiene acceso a qué, definiendo qué **entidad principal** puede realizar **acciones** sobre qué **recursos** y en qué **condiciones**.

De forma predeterminada, los usuarios y los roles no tienen permisos. Un administrador de IAM crea políticas de IAM y las agrega a roles, que los usuarios pueden asumir posteriormente. Las políticas de IAM definen permisos independientemente del método que se utilice para realizar la operación.

### Políticas basadas en identidades
<a name="security_iam_access-manage-id-based-policies"></a>

Las políticas basadas en identidad son documentos de política de permisos JSON que asocia a una identidad (usuario, grupo o rol). Estas políticas controlan qué acciones pueden realizar las identidades, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Las políticas basadas en identidad pueden ser *políticas insertadas* (incrustadas directamente en una sola identidad) o *políticas administradas* (políticas independientes asociadas a varias identidades). Para obtener información sobre cómo elegir entre políticas administradas e insertadas, consulte [Selección entre políticas administradas y políticas insertadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) en la *Guía del usuario de IAM*.

### Políticas basadas en recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Las políticas basadas en recursos son documentos de políticas JSON que se asocian a un recurso. Los ejemplos incluyen las *Políticas de confianza de roles* de IAM y las *Políticas de bucket* de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Debe [especificar una entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en una política basada en recursos.

Las políticas basadas en recursos son políticas insertadas que se encuentran en ese servicio. No puedes usar políticas AWS gestionadas de IAM en una política basada en recursos.

### Listas de control de acceso () ACLs
<a name="security_iam_access-manage-acl"></a>

Las listas de control de acceso (ACLs) controlan qué responsables (miembros de la cuenta, usuarios o roles) tienen permisos para acceder a un recurso. ACLs son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

Amazon S3 y Amazon VPC son ejemplos de servicios compatibles. AWS WAF ACLs Para obtener más información ACLs, consulte la [descripción general de la lista de control de acceso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) en la *Guía para desarrolladores de Amazon Simple Storage Service*.

### Otros tipos de políticas
<a name="security_iam_access-manage-other-policies"></a>

AWS admite tipos de políticas adicionales que pueden establecer los permisos máximos otorgados por los tipos de políticas más comunes:
+ **Límites de permisos:** establecen los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM. Para obtener más información, consulte [Límites de permisos para las entidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) en la *Guía del usuario de IAM*.
+ **Políticas de control de servicios (SCPs)**: especifican los permisos máximos para una organización o unidad organizativa en AWS Organizations. Para obtener más información, consulte [Políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) en la *Guía del usuario de AWS Organizations *.
+ **Políticas de control de recursos (RCPs)**: establece los permisos máximos disponibles para los recursos de tus cuentas. Para obtener más información, consulte [Políticas de control de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) en la *Guía del AWS Organizations usuario*.
+ **Políticas de sesión:** políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal para un rol o un usuario federado. Para obtener más información, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) en la *Guía del usuario de IAM*.

### Varios tipos de políticas
<a name="security_iam_access-manage-multiple-policies"></a>

Cuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicados de entender. Para saber cómo se AWS determina si se debe permitir una solicitud cuando se trata de varios tipos de políticas, consulte la [lógica de evaluación de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) en la *Guía del usuario de IAM*.

## Véase también
<a name="security_iam_service-see-also"></a>
+ [Cómo AWS IoT Greengrass funciona con IAM](security_iam_service-with-iam.md)
+ [Ejemplos de políticas basadas en la identidad para AWS IoT Greengrass](security_iam_id-based-policy-examples.md)
+ [Solución de problemas de identidad y acceso para AWS IoT Greengrass](security_iam_troubleshoot.md)

# Cómo AWS IoT Greengrass funciona con IAM
<a name="security_iam_service-with-iam"></a>

Antes de usar IAM para administrar el acceso AWS IoT Greengrass, debe comprender las funciones de IAM que puede utilizar. AWS IoT Greengrass


| Característica de IAM | ¿Compatible con Greengrass? | 
| --- | --- | 
| [Políticas basadas en identidad con permisos de nivel de recursos](#security_iam_service-with-iam-id-based-policies) | Sí | 
| [Políticas basadas en recursos](#security_iam_service-with-iam-resource-based-policies) | No | 
| [Listas de control de acceso () ACLs](#security_iam_service-with-iam-acls) | No | 
| [Autorización basada en etiquetas](#security_iam_service-with-iam-tags) | Sí | 
| [Credenciales temporales](#security_iam_service-with-iam-roles-tempcreds) | Sí | 
| [Roles vinculados al servicio](#security_iam_service-with-iam-roles-service-linked) | No | 
| [Roles de servicio](#security_iam_service-with-iam-roles-service-linked) | Sí | 

Para obtener una visión general de cómo funcionan otros AWS servicios con IAM, consulte [AWS los servicios que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la Guía del usuario de *IAM*.

## Políticas basadas en la identidad para AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies"></a>

Con las políticas de 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 acciones, recursos y claves de condición 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

### Acciones
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Los administradores pueden usar las políticas de AWS JSON 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. 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 operación de la `ListCoreDevices` API para enumerar sus dispositivos principales Cuenta de AWS, debes incluir la `greengrass:ListCoreDevices` acción en su política. Las declaraciones de política deben incluir un `NotAction` elemento `Action` o. AWS IoT Greengrass define su propio conjunto de acciones que describen las tareas que puede 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](security-best-practices.md#least-privilege).

Para ver la lista completa de AWS IoT Greengrass acciones, consulte [las acciones definidas por AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) en la *Guía del usuario de IAM*.

### Recursos
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Los administradores pueden usar las políticas de AWS JSON 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. Como práctica recomendada, especifique un recurso utilizando el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). En el caso de las acciones que no admiten permisos por recurso, utilice un carácter comodín (\$1) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) en la Guía del usuario de *IAM*.

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 formatos ARN, consulte Nombres de [recursos de Amazon (ARNs) y espacios de nombres AWS de servicios](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) en. *Referencia general de Amazon Web Services*

### Claves de condición
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Los administradores pueden usar las políticas de AWS JSON 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` especifica cuándo se ejecutan las instrucciones en función de criterios definidos. Puede crear expresiones condicionales que utilizan [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud. Para ver todas las claves de condición AWS globales, consulte las claves de [contexto de condición AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

### Ejemplos
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para ver ejemplos de políticas AWS IoT Greengrass basadas en la identidad, consulte. [Ejemplos de políticas basadas en la identidad para AWS IoT Greengrass](security_iam_id-based-policy-examples.md)

## Políticas basadas en recursos para AWS IoT Greengrass
<a name="security_iam_service-with-iam-resource-based-policies"></a>

AWS IoT Greengrass no admite políticas basadas en [recursos](security-iam.md#security_iam_access-manage-resource-based-policies).

## Listas de control de acceso () ACLs
<a name="security_iam_service-with-iam-acls"></a>

AWS IoT Greengrass no admite [ACLs](security-iam.md#security_iam_access-manage-acl).

## Autorización basada en AWS IoT Greengrass etiquetas
<a name="security_iam_service-with-iam-tags"></a>

Puede adjuntar etiquetas a AWS IoT Greengrass los recursos compatibles o pasarlas 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) 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 [Etiquete sus AWS IoT Greengrass Version 2 recursos](tag-resources.md).

## Funciones de IAM para AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles"></a>

Un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) es una entidad de la Cuenta de AWS que dispone de permisos específicos.

### Usar credenciales temporales con AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

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](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) o [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html).

En el núcleo de Greengrass, las credenciales temporales para el [rol de dispositivo](device-service-role.md) están disponibles para los componentes de Greengrass. Si sus componentes usan el AWS SDK, no necesita agregar lógica para obtener las credenciales, ya que el AWS SDK lo hace por usted.

### Roles vinculados a servicios
<a name="security_iam_service-with-iam-roles-service-linked"></a>

AWS IoT Greengrass no admite funciones [vinculadas a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).

### Roles de servicio
<a name="security_iam_service-with-iam-roles-service"></a>

Esta característica permite que un servicio asuma un [rol de servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) 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 los dispositivos principales utilizan una función de servicio para permitir que los componentes de Greengrass y las funciones de Lambda accedan a algunos de sus AWS recursos en su nombre. Para obtener más información, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

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](greengrass-service-role.md).

# Ejemplos de políticas basadas en la identidad para AWS IoT Greengrass
<a name="security_iam_id-based-policy-examples"></a>

De forma predeterminada, los usuarios y los roles de IAM no tienen permiso para crear, ver ni modificar recursos de AWS IoT Greengrass . Tampoco pueden realizar tareas con la API Consola de administración de AWS AWS CLI, o AWS . Un administrador de IAM debe crear políticas de IAM que concedan permisos a los usuarios y a los roles para realizar operaciones de la API concretas en los recursos especificados que necesiten. El administrador debe asociar esas políticas a los usuarios o grupos de IAM que necesiten esos permisos.

## Prácticas recomendadas sobre las políticas
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Las políticas basadas en la identidad determinan si alguien puede crear AWS IoT Greengrass recursos de tu cuenta, acceder a ellos o eliminarlos. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
+ **Comience con las políticas AWS administradas y avance hacia los permisos con privilegios mínimos: para empezar a conceder permisos** a sus usuarios y cargas de trabajo, utilice las *políticas AWS administradas* que otorgan permisos para muchos casos de uso comunes. Están disponibles en su. Cuenta de AWS Le recomendamos que reduzca aún más los permisos definiendo políticas administradas por el AWS cliente que sean específicas para sus casos de uso. Con el fin de obtener más información, consulte las [políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o las [políticas administradas por AWS para funciones de tarea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía de usuario de IAM*.
+ **Aplique permisos de privilegio mínimo**: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como *permisos de privilegios mínimos*. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.
+ **Utilice condiciones en las políticas de IAM para restringir aún más el acceso**: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puedes usar condiciones para conceder el acceso a las acciones del servicio si se utilizan a través de una acción específica Servicio de AWS, por ejemplo CloudFormation. Para obtener más información, consulte [Elementos de la política de JSON de IAM: Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en la *Guía del usuario de IAM*.
+ **Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos**: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte [Validación de políticas con el Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) en la *Guía del usuario de IAM*.
+ **Requerir autenticación multifactor (MFA**): si tiene un escenario que requiere usuarios de IAM o un usuario raíz en Cuenta de AWS su cuenta, active la MFA para mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte [Acceso seguro a la API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las prácticas recomendadas de IAM, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

## Ejemplos de políticas
<a name="security_iam_id-based-policy-examples-list"></a>

En el ejemplo siguiente, las políticas definidas por el cliente conceden permisos para situaciones comunes.

**Topics**
+ [Cómo permitir a los usuarios consultar sus propios permisos](#security_iam_id-based-policy-examples-view-own-permissions)

Para obtener más información acerca de cómo crear una política basada en identidad de IAM con estos documentos de políticas de JSON de ejemplo, consulte [Creación de políticas en la pestaña JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) en la *Guía del usuario de IAM*.

### Cómo permitir a los usuarios consultar sus propios permisos
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

En este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver las políticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluye permisos para completar esta acción en la consola o mediante programación mediante la API o. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Autorizar a los dispositivos principales a interactuar con AWS los servicios
<a name="device-service-role"></a>

AWS IoT Greengrass los dispositivos principales utilizan el proveedor de AWS IoT Core credenciales para autorizar las llamadas a AWS los servicios. El proveedor de AWS IoT Core credenciales permite a los dispositivos utilizar sus certificados X.509 como identidad única del dispositivo para autenticar las solicitudes. AWS Esto elimina la necesidad de almacenar un identificador de clave de AWS acceso y una clave de acceso secreta en los dispositivos AWS IoT Greengrass principales. Para obtener más información, consulte [Autorizar llamadas directas a AWS los servicios](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) en la *Guía para AWS IoT Core desarrolladores*.

Al ejecutar el software AWS IoT Greengrass principal, puede optar por aprovisionar los AWS recursos que requiere el dispositivo principal. Esto incluye la función AWS Identity and Access Management (IAM) que asume su dispositivo principal a través del proveedor de AWS IoT Core credenciales. Utilice el `--provision true` argumento para configurar una función y políticas que permitan al dispositivo principal obtener AWS credenciales temporales. Este argumento también configura un alias de AWS IoT rol que apunta a este rol de IAM. Puede especificar el nombre del rol de IAM y el alias del rol que se van a AWS IoT utilizar. Si especifica `--provision true` sin estos otros parámetros de nombre, el dispositivo principal de Greengrass crea y utiliza los siguientes recursos predeterminados:
+ Rol de IAM: `GreengrassV2TokenExchangeRole`

  Este rol tiene una política denominada `GreengrassV2TokenExchangeRoleAccess` y una relación de confianza que permite a `credentials.iot.amazonaws.com` asumir el rol. La política incluye los permisos mínimos para el dispositivo principal.
**importante**  
Esta política no incluye el acceso a los archivos en los buckets de S3. Debe agregar permisos al rol para permitir que los dispositivos principales recuperen los artefactos de los componentes de los buckets de S3. Para obtener más información, consulte [Cómo permitir el acceso a los buckets de S3 para los artefactos del componente](#device-service-role-access-s3-bucket).
+ AWS IoT alias del rol: `GreengrassV2TokenExchangeRoleAlias`

  Este alias del rol hace referencia al rol de IAM.

Para obtener más información, consulte [Paso 3: Instalar el software AWS IoT Greengrass principal](install-greengrass-v2.md).

También puede establecer el alias del rol para un dispositivo principal existente. Para ello, configure el parámetro de configuración `iotRoleAlias` del [componente del núcleo de Greengrass](greengrass-nucleus-component.md).

Puede adquirir AWS credenciales temporales para este rol de IAM a fin de realizar AWS operaciones en sus componentes personalizados. Para obtener más información, consulte [Interacción con servicios de AWS](interact-with-aws-services.md).

**Topics**
+ [Permisos de rol de servicio para dispositivos principales](#device-service-role-permissions)
+ [Cómo permitir el acceso a los buckets de S3 para los artefactos del componente](#device-service-role-access-s3-bucket)

## Permisos de rol de servicio para dispositivos principales
<a name="device-service-role-permissions"></a>

El rol permite que el siguiente servicio asuma el rol:
+ `credentials.iot.amazonaws.com`

Si utilizas el software AWS IoT Greengrass Core para crear este rol, este utilizará la siguiente política de permisos para permitir que los dispositivos principales se conecten y envíen registros a AWS ellos. El nombre de la política se establece de forma predeterminada en el nombre del rol de IAM que termina en `Access`. Por ejemplo, si usa el nombre de rol de IAM predeterminado, el nombre de esta política es `GreengrassV2TokenExchangeRoleAccess`.

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ v2.4.x ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ Earlier than v2.4.0 ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------

## Cómo permitir el acceso a los buckets de S3 para los artefactos del componente
<a name="device-service-role-access-s3-bucket"></a>

El rol de dispositivo principal predeterminado no permite que los dispositivos principales accedan a los buckets de S3. Para implementar componentes que tienen artefactos en buckets de S3, debe agregar el permiso `s3:GetObject` que permita a los dispositivos principales descargar artefactos del componente. Puede agregar una nueva política al rol de dispositivo principal para conceder este permiso.

**Adición de una política que permita el acceso a los artefactos del componente en Amazon S3**

1. Cree un archivo llamado `component-artifact-policy.json` y copie el siguiente JSON en el archivo. Esta política permite el acceso a todos los archivos en un bucket de S3. Reemplace amzn-s3-demo-bucket por el nombre del bucket de S3 para permitir el acceso del dispositivo principal.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Ejecute el siguiente comando para crear la política del documento de política en `component-artifact-policy.json`.

------
#### [ Linux or Unix ]

   ```
   aws iam create-policy \
     --policy-name MyGreengrassV2ComponentArtifactPolicy \
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-policy ^
     --policy-name MyGreengrassV2ComponentArtifactPolicy ^
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-policy `
     --policy-name MyGreengrassV2ComponentArtifactPolicy `
     --policy-document file://component-artifact-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.

1. Ejecute el siguiente comando para asociar la política al rol del dispositivo principal. *GreengrassV2TokenExchangeRole*Sustitúyalo por el nombre del rol que especificó al ejecutar el software AWS IoT Greengrass Core. Luego, 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/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam attach-role-policy ^
     --role-name GreengrassV2TokenExchangeRole ^
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ PowerShell ]

   ```
   aws iam attach-role-policy `
     --role-name GreengrassV2TokenExchangeRole `
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------

   Si el comando no tiene ningún resultado, se ha realizado correctamente y su dispositivo principal puede acceder a los artefactos que cargue en este bucket de S3.

# Política de IAM mínima para que el instalador aprovisione recursos
<a name="provision-minimal-iam-policy"></a>

Al instalar el software AWS IoT Greengrass Core, puede aprovisionar AWS los recursos necesarios, como una AWS IoT cosa y una función de IAM para su dispositivo. También puede implementar herramientas de desarrollo local en el dispositivo. El instalador necesita AWS credenciales para poder realizar estas acciones en su ordenador Cuenta de AWS. Para obtener más información, consulte [Instalación del software AWS IoT Greengrass Core](install-greengrass-core-v2.md).

El siguiente ejemplo de política incluye el conjunto mínimo de acciones que el instalador necesita para aprovisionar estos recursos. Estos permisos son necesarios si se especifica el argumento `--provision` del instalador. *account-id*Sustitúyala por tu Cuenta de AWS ID y *GreengrassV2TokenExchangeRole* sustitúyela por el nombre de la función de intercambio de fichas que especifiques con el [argumento del `--tes-role-name` instalador](configure-installer.md).

**nota**  
La declaración de la política `DeployDevTools` solo es necesaria si se especifica el argumento del instalador `--deploy-dev-tools`.

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ Earlier than v2.5.0 ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
            "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
    "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

# Rol de servicio de Greengrass
<a name="greengrass-service-role"></a>

<a name="greengrass-service-role-intro"></a>La función de servicio de Greengrass es una función de servicio AWS Identity and Access Management (IAM) que autoriza el acceso AWS IoT Greengrass a los recursos de los AWS servicios en su nombre. Esta función permite verificar la identidad de AWS IoT Greengrass los dispositivos cliente y administrar la información de conectividad principal de los dispositivos.

**nota**  
AWS IoT Greengrass V1 también utiliza esta función para realizar tareas esenciales. Para obtener más información, consulte [Rol de servicio de Greengrass](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) en la *Guía para desarrolladores de AWS IoT Greengrass V1 *.

Para permitir el acceso AWS IoT Greengrass a sus recursos, la función de servicio de Greengrass debe estar asociada a la suya Cuenta de AWS y especificarse AWS IoT Greengrass como entidad de confianza. El rol debe incluir la política [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy)administrada o una política personalizada que defina permisos equivalentes para las AWS IoT Greengrass funciones que utilice. AWS mantiene esta política, que define el conjunto de permisos que se AWS IoT Greengrass utilizan para acceder a AWS los recursos. Para obtener más información, consulte [AWS política gestionada: AWSGreengrass ResourceAccessRolePolicy](security-iam-aws-managed-policies.md#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy).

Puedes reutilizar la misma función de servicio de Greengrass en todas partes Regiones de AWS, pero debes asociarla a tu cuenta en todos los Región de AWS lugares donde la utilices. AWS IoT Greengrass Si la función de servicio no está configurada en la versión actual Región de AWS, los dispositivos principales no pueden verificar los dispositivos cliente ni actualizar la información de conectividad.

En las siguientes secciones se describe cómo crear y administrar el rol de servicio de Greengrass con o. Consola de administración de AWS AWS CLI

**Topics**
+ [Administración del rol de servicio de Greengrass (consola)](#manage-greengrass-service-role-console)
+ [Administración del rol de servicio de Greengrass (CLI)](#manage-service-role-cli)
+ [Véase también](#service-role-see-also)

**nota**  
Además del rol de servicio que autoriza el acceso de nivel de servicio, puede asignar un *rol de intercambio de tokens* a los dispositivos principales de Greengrass. La función de intercambio de fichas es una función de IAM independiente que controla la forma en que los componentes de Greengrass y las funciones de Lambda del dispositivo principal pueden acceder a los servicios. AWS Para obtener más información, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

## Administración del rol de servicio de Greengrass (consola)
<a name="manage-greengrass-service-role-console"></a>

La AWS IoT consola facilita la administración de su función de servicio de Greengrass. Por ejemplo, al configurar la detección de dispositivos de cliente para un dispositivo principal, la consola comprueba si su Cuenta de AWS está asociada a un rol de servicio de Greengrass en la Región de AWS actual. De lo contrario, la consola puede crear y configurar un rol de servicio por usted. Para obtener más información, consulte [Creación del rol de servicio de Greengrass (consola)](#create-greengrass-service-role-console).

Puede utilizar la consola de para las siguientes tareas de administración de roles:

**Topics**
+ [Buscar el rol de servicio de Greengrass (consola)](#get-greengrass-service-role-console)
+ [Creación del rol de servicio de Greengrass (consola)](#create-greengrass-service-role-console)
+ [Cambiar el rol de servicio de Greengrass (consola)](#update-greengrass-service-role-console)
+ [Desasociar el rol de servicio de Greengrass (consola)](#remove-greengrass-service-role-console)

**nota**  
El usuario que ha iniciado sesión en la consola debe tener permisos para ver, crear o cambiar el rol de servicio.

### Buscar el rol de servicio de Greengrass (consola)
<a name="get-greengrass-service-role-console"></a>

Siga los siguientes pasos para encontrar el rol de servicio que AWS IoT Greengrass utiliza en el actual Región de AWS.

1. <a name="open-iot-console"></a>Vaya a la [consola de AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>En el panel de navegación, seleccione **Configuración**.

1. Desplácese hasta la sección **Greengrass service role (Rol de servicio de Greengrass)** para ver el rol de servicio y sus políticas.

   Si no ve ningún rol de servicio, la consola puede crear o configurar uno por usted. Para obtener más información, consulte [Creación del rol de servicio de Greengrass](#create-greengrass-service-role-console).

### Creación del rol de servicio de Greengrass (consola)
<a name="create-greengrass-service-role-console"></a>

La consola puede crear y configurar un rol de servicio de Greengrass predeterminado por usted. Este rol incluye las siguientes propiedades.


| Propiedad | Valor | 
| --- | --- | 
| Name | Greengrass\$1ServiceRole | 
| Entidad de confianza | AWS service: greengrass | 
| Política | [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**nota**  
Si crea este rol con el [script de configuración del dispositivo de AWS IoT Greengrass V1](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html), el nombre del rol es `GreengrassServiceRole_random-string`.

Al configurar la detección de dispositivos cliente para un dispositivo principal, la consola comprueba si una función de servicio de Greengrass está asociada a la suya Cuenta de AWS en la versión actual. Región de AWS De lo contrario, la consola le solicitará que permita AWS IoT Greengrass leer y escribir en AWS los servicios en su nombre.

Si concede permiso, la consola comprueba si existe un rol denominado `Greengrass_ServiceRole` en su Cuenta de AWS.
+ Si la función existe, la consola le asigna la función de servicio a la suya Cuenta de AWS en la actual. Región de AWS
+ Si el rol no existe, la consola crea un rol de servicio de Greengrass predeterminado y lo adjunta al tuyo Cuenta de AWS en el actual. Región de AWS

**nota**  
Si desea crear un rol de servicio con políticas de rol personalizadas, utilice la consola de IAM para crear o modificar el rol. Para obtener más información, consulte [Crear un rol para delegar permisos a un AWS servicio o Modificar un](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) [rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) en la Guía del usuario de *IAM*. Asegúrese de que el rol concede permisos equivalentes a la política administrada de `AWSGreengrassResourceAccessRolePolicy` para las características y recursos que utiliza. Le recomendamos que incluya también las claves de contexto de condición global `aws:SourceArn` y `aws:SourceAccount` en su política de confianza para ayudar a prevenir el problema de seguridad del *suplente confuso*. Las claves de contexto de condición restringen el acceso para permitir solo las solicitudes que provienen de la cuenta especificada y del espacio de trabajo de Greengrass. Para obtener más información sobre el problema del suplente confuso, consulte [Prevención de la sustitución confusa entre servicios](cross-service-confused-deputy-prevention.md).  
Si crea un rol de servicio, vuelva a la AWS IoT consola y asocie el rol al suyo Cuenta de AWS. Puede hacerlo en el **rol de servicio de Greengrass** en la página **Configuración**.

### Cambiar el rol de servicio de Greengrass (consola)
<a name="update-greengrass-service-role-console"></a>

Utilice el siguiente procedimiento para elegir una función de servicio de Greengrass diferente y asociarla a la suya Cuenta de AWS en la que esté seleccionada Región de AWS actualmente en la consola.

1. <a name="open-iot-console"></a>Vaya a la [consola de AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>En el panel de navegación, seleccione **Configuración**.

1. En **Rol de servicio de Greengrass**, seleccione **Elegir un rol diferente**.

   Se abre el cuadro de diálogo **Actualizar el rol de servicio de Greengrass** y muestra los roles de IAM Cuenta de AWS que se definen AWS IoT Greengrass como una entidad de confianza.

1. Elija el rol de servicio de Greengrass que desee asignar.

1. Elija **Adjuntar rol**.

### Desasociar el rol de servicio de Greengrass (consola)
<a name="remove-greengrass-service-role-console"></a>

Utilice el siguiente procedimiento para separar el rol de servicio de Greengrass de AWS su cuenta actual. Región de AWS Esto revoca los permisos de acceso AWS IoT Greengrass a AWS los servicios actuales. Región de AWS

**importante**  
La desasociación del rol de servicio podría interrumpir las operaciones activas.

1. <a name="open-iot-console"></a>Vaya a la [consola de AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>En el panel de navegación, seleccione **Configuración**.

1. En **Rol de servicio de Greengras**, seleccione **Desasociar rol**.

1. En el cuadro de diálogo de confirmación, elija **Desconectar**.

**nota**  
Si ya no necesita el rol, puede eliminarlo en la consola de IAM. Para obtener más información, consulte [Eliminación de roles o perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) en la *Guía del usuario de IAM*.  
Es posible que otras funciones te permitan acceder AWS IoT Greengrass a tus recursos. Para buscar todos los roles que permiten que AWS IoT Greengrass asuma los permisos en su nombre, en la consola de IAM, en la página **Roles**, busque los roles que incluyan **AWS service: greengrass** en la columna **Entidades de confianza**.

## Administración del rol de servicio de Greengrass (CLI)
<a name="manage-service-role-cli"></a>

En los siguientes procedimientos, asumimos que AWS Command Line Interface está instalado y configurado para usar su Cuenta de AWS. Para obtener más información, consulte [Instalar, actualizar y desinstalar la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) y [Configurar la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) en la *Guía del usuario de AWS Command Line Interface *.

Puede usarlo AWS CLI para las siguientes tareas de administración de roles:

**Topics**
+ [Obtener el rol de servicio de Greengrass (CLI)](#get-service-role)
+ [Creación del rol de servicio de Greengrass (CLI)](#create-service-role)
+ [Eliminar el rol de servicio de Greengrass (CLI)](#remove-service-role)

### Obtener el rol de servicio de Greengrass (CLI)
<a name="get-service-role"></a>

Utilice el procedimiento siguiente para descubrir si un rol de servicio de Greengrass está asociado a su Cuenta de AWS en una Región de AWS.
+ Obtenga el rol de servicio. *region*Reemplácelo por su Región de AWS (por ejemplo,`us-west-2`).

  ```
  aws greengrassv2 get-service-role-for-account --region region
  ```

  Si ya hay un rol de servicio de Greengrass asociado a su cuenta, la solicitud devuelve los siguientes metadatos de rol.

  ```
  {
    "associatedAt": "timestamp",
    "roleArn": "arn:aws:iam::account-id:role/path/role-name"
  }
  ```

  Si la solicitud no devuelve ningún metadato de rol, entonces debe crear el rol de servicio (si no existe) y asociarlo a su cuenta en la Región de AWS.

### Creación del rol de servicio de Greengrass (CLI)
<a name="create-service-role"></a>

Siga los pasos que se indican a continuación para crear un rol y asociarlo a su Cuenta de AWS.

**Para crear el rol de servicio mediante IAM**

1. Cree un rol con una política de confianza que AWS IoT Greengrass permita asumir el rol. Este ejemplo crea un rol denominado `Greengrass_ServiceRole`, pero puede utilizar un nombre distinto. Le recomendamos que incluya también las claves de contexto de condición global `aws:SourceArn` y `aws:SourceAccount` en su política de confianza para ayudar a prevenir el problema de seguridad del *suplente confuso*. Las claves de contexto de condición restringen el acceso para permitir solo las solicitudes que provienen de la cuenta especificada y del espacio de trabajo de Greengrass. Para obtener más información sobre el problema del suplente confuso, consulte [Prevención de la sustitución confusa entre servicios](cross-service-confused-deputy-prevention.md).

------
#### [ Linux or Unix ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------

1. Copie el ARN del rol de los metadatos del rol en la salida. Puede utilizar el ARN para asociar el rol a su cuenta.

1. Asocie la política de `AWSGreengrassResourceAccessRolePolicy` al rol.

   ```
   aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
   ```

**Para asociar el rol de servicio a su Cuenta de AWS**
+ Asocie el rol a su cuenta. *role-arn*Sustitúyalo por el ARN del rol de servicio y *region* por el tuyo Región de AWS (por ejemplo,`us-west-2`).

  ```
  aws greengrassv2 associate-service-role-to-account --role-arn role-arn --region region
  ```

  Si se realiza correctamente, la solicitud devuelve la siguiente respuesta.

  ```
  {
    "associatedAt": "timestamp"
  }
  ```

### Eliminar el rol de servicio de Greengrass (CLI)
<a name="remove-service-role"></a>

Utilice los pasos siguientes para desasociar el rol de servicio de Greengrass de su Cuenta de AWS.
+ Desasocie el rol de servicio de su cuenta. *region*Sustitúyalo por su Región de AWS (por ejemplo,`us-west-2`).

  ```
  aws greengrassv2 disassociate-service-role-from-account --region region
  ```

  Si se ejecuta correctamente, se devuelve la siguiente respuesta.

  ```
  {
    "disassociatedAt": "timestamp"
  }
  ```
**nota**  
Deberías eliminar la función de servicio si no la utilizas en ninguna Región de AWS. Use primero [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html) para desasociar la política administrada `AWSGreengrassResourceAccessRolePolicy` del rol y, a continuación, utilice [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html) para eliminar el rol. Para obtener más información, consulte [Eliminación de roles o perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) en la *Guía del usuario de IAM*.

## Véase también
<a name="service-role-see-also"></a>
+ [Crear un rol para delegar permisos a un AWS servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) en la Guía del *usuario de IAM*
+ [Modificación de un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) en la *Guía del usuario de IAM*
+ [Eliminación de roles o perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) en la *Guía del usuario de IAM*
+ AWS IoT Greengrass comandos de la Referencia de *AWS CLI comandos*
  + [associate-service-role-to-cuenta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/associate-service-role-to-account.html)
  + [disassociate-service-role-from-cuenta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/disassociate-service-role-from-account.html)
  + [get-service-role-for-cuenta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/get-service-role-for-account.html)
+ Comandos de IAM en la *Referencia de los comandos de AWS CLI *
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [delete-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html)
  + [delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# AWS políticas gestionadas para AWS IoT Greengrass
<a name="security-iam-aws-managed-policies"></a>

Una política AWS administrada es una política independiente creada y administrada por AWS. AWS Las políticas administradas están diseñadas para proporcionar permisos para muchos casos de uso comunes, de modo que pueda empezar a asignar permisos a usuarios, grupos y funciones.

Ten en cuenta que es posible que las políticas AWS administradas no otorguen permisos con privilegios mínimos para tus casos de uso específicos, ya que están disponibles para que los usen todos los AWS clientes. Se recomienda definir [políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) específicas para sus casos de uso a fin de reducir aún más los permisos.

No puedes cambiar los permisos definidos en AWS las políticas administradas. Si AWS actualiza los permisos definidos en una política AWS administrada, la actualización afecta a todas las identidades principales (usuarios, grupos y roles) a las que está asociada la política. AWS es más probable que actualice una política AWS administrada cuando Servicio de AWS se lance una nueva o cuando estén disponibles nuevas operaciones de API para los servicios existentes.

Para obtener más información, consulte [Políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) en la *Guía del usuario de IAM*.

**Topics**
+ [AWS política gestionada: AWSGreengrass FullAccess](#aws-managed-policies-AWSGreengrassFullAccess)
+ [AWS política gestionada: AWSGreengrass ReadOnlyAccess](#aws-managed-policies-AWSGreengrassReadOnlyAccess)
+ [AWS política gestionada: AWSGreengrass ResourceAccessRolePolicy](#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy)
+ [AWS IoT Greengrass actualizaciones de las políticas AWS gestionadas](#aws-managed-policy-updates)

## AWS política gestionada: AWSGreengrass FullAccess
<a name="aws-managed-policies-AWSGreengrassFullAccess"></a>

Puede asociar la política `AWSGreengrassFullAccess` a las identidades de IAM.

Esta política otorga permisos administrativos que brindan a una entidad principal acceso completo a todas las acciones de AWS IoT Greengrass .

**Detalles de los permisos**

Esta política incluye los permisos siguientes:
+ `greengrass`: permite a las entidades principales obtener acceso completo a todas las acciones de AWS IoT Greengrass .

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS política gestionada: AWSGreengrass ReadOnlyAccess
<a name="aws-managed-policies-AWSGreengrassReadOnlyAccess"></a>

Puede asociar la política `AWSGreengrassReadOnlyAccess` a las identidades de IAM.

Esta política concede permisos de solo lectura que permiten a una entidad principal visualizar, pero no modificar, la información de AWS IoT Greengrass. Por ejemplo, las entidades principales con estos permisos pueden ver la lista de componentes implementados en un dispositivo principal de Greengrass, pero no pueden crear una implementación para cambiar los componentes que se ejecutan en ese dispositivo.

**Detalles de los permisos**

Esta política incluye los permisos siguientes:
+ `greengrass`: permite a las entidades principales realizar acciones que devuelven una lista de elementos o detalles sobre un elemento. Esto incluye las operaciones de la API que comienzan con `List` o `Get`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:List*",
                "greengrass:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS política gestionada: AWSGreengrass ResourceAccessRolePolicy
<a name="aws-managed-policies-AWSGreengrassResourceAccessRolePolicy"></a>

Puede adjuntar la `AWSGreengrassResourceAccessRolePolicy` política a sus entidades de IAM. AWS IoT Greengrass también vincula esta política a un rol de servicio que le permite AWS IoT Greengrass realizar acciones en su nombre. Para obtener más información, consulte [Rol de servicio de Greengrass](greengrass-service-role.md).

Esta política otorga permisos administrativos que permiten AWS IoT Greengrass realizar tareas esenciales, como recuperar las funciones de Lambda, AWS IoT administrar las sombras de los dispositivos y verificar los dispositivos cliente de Greengrass.

**Detalles de los permisos**

Esta política incluye los siguientes permisos.
+ `greengrass`: administrar los recursos de Greengrass.
+ `iot`(`*Shadow`) — Gestione AWS IoT las sombras que tengan los siguientes identificadores especiales en sus nombres. Estos permisos son necesarios para que AWS IoT Greengrass pueda comunicarse con los dispositivos principales.
  + `*-gci`— AWS IoT Greengrass utiliza esta sombra para almacenar la información de conectividad de los dispositivos principales, de modo que los dispositivos cliente puedan detectar los dispositivos principales y conectarse a ellos.
  + `*-gcm`— AWS IoT Greengrass V1 usa esta sombra para notificar al dispositivo principal que el certificado de la autoridad de certificación (CA) del grupo Greengrass ha rotado.
  + `*-gda`— AWS IoT Greengrass V1 usa esta sombra para notificar al dispositivo principal acerca de una implementación.
  + `GG_*`: no se usa.
+ `iot`(`DescribeThing`y`DescribeCertificate`) — Recupera información sobre AWS IoT cosas y certificados. Estos permisos son necesarios para AWS IoT Greengrass poder verificar los dispositivos cliente que se conectan a un dispositivo principal. Para obtener más información, consulte [Interacción con dispositivos IoT locales](interact-with-local-iot-devices.md).
+ `lambda`— Recuperar información sobre AWS Lambda las funciones. Este permiso es necesario para que AWS IoT Greengrass V1 pueda implementar funciones Lambda en los núcleos de Greengrass. Para obtener más información, consulte [Ejecutar la función Lambda en el AWS IoT Greengrass núcleo de la Guía](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-functions.html) para *desarrolladores de la AWS IoT Greengrass V1*.
+ `secretsmanager`— Recupera el valor de AWS Secrets Manager los secretos cuyos nombres comiencen por. `greengrass-` Este permiso es necesario para que la AWS IoT Greengrass versión 1 pueda implementar los secretos de Secrets Manager en los núcleos de Greengrass. Para obtener más información, consulte [Implementar secretos en el AWS IoT Greengrass núcleo en la](https://docs.aws.amazon.com/greengrass/v1/developerguide/secrets.html) *Guía para desarrolladores de AWS IoT Greengrass la versión 1*.
+ `s3`: recupera archivos y objetos de buckets de S3 cuyos nombres contengan `greengrass` o `sagemaker`. Estos permisos son necesarios para que la AWS IoT Greengrass versión 1 pueda implementar los recursos de aprendizaje automático que almacene en los depósitos de S3. Para obtener más información, consulte [los recursos de aprendizaje automático](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html#ml-resources) en la *Guía para desarrolladores de AWS IoT Greengrass la versión 1*.
+ `sagemaker`— Recuperar información sobre los modelos de inferencia de aprendizaje automático de Amazon SageMaker AI. Este permiso es necesario para que la AWS IoT Greengrass versión 1 pueda implementar modelos de aprendizaje automático en los núcleos de Greengrass. Para obtener más información, consulte [Realizar inferencias de aprendizaje automático en la Guía](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html) para *desarrolladores de la AWS IoT Greengrass versión 1*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGreengrassAccessToShadows",
            "Action": [
                "iot:DeleteThingShadow",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:*:*:thing/GG_*",
                "arn:aws:iot:*:*:thing/*-gcm",
                "arn:aws:iot:*:*:thing/*-gda",
                "arn:aws:iot:*:*:thing/*-gci"
            ]
        },
        {
            "Sid": "AllowGreengrassToDescribeThings",
            "Action": [
                "iot:DescribeThing"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:thing/*"
        },
        {
            "Sid": "AllowGreengrassToDescribeCertificates",
            "Action": [
                "iot:DescribeCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:cert/*"
        },
        {
            "Sid": "AllowGreengrassToCallGreengrassServices",
            "Action": [
                "greengrass:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetLambdaFunctions",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetGreengrassSecrets",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:*:*:secret:greengrass-*"
        },
        {
            "Sid": "AllowGreengrassAccessToS3Objects",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*Greengrass*",
                "arn:aws:s3:::*GreenGrass*",
                "arn:aws:s3:::*greengrass*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Sid": "AllowGreengrassAccessToS3BucketLocation",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassAccessToSageMakerTrainingJobs",
            "Action": [
                "sagemaker:DescribeTrainingJob"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ]
        }
    ]
}
```

------

## AWS IoT Greengrass actualizaciones de las políticas AWS gestionadas
<a name="aws-managed-policy-updates"></a>

Puede ver los detalles sobre las actualizaciones de las políticas AWS administradas AWS IoT Greengrass desde el momento en que este servicio comenzó a rastrear estos cambios. Para recibir alertas automáticas sobre los cambios en esta página, suscríbase a la fuente RSS de la [página de historial AWS IoT Greengrass de documentos](document-history.md) de la versión 2.


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  AWS IoT Greengrass comenzó a rastrear los cambios  |  AWS IoT Greengrass comenzó a realizar un seguimiento de los cambios de sus políticas AWS gestionadas.  |  2 de julio de 2021  | 

# Prevención de la sustitución confusa entre servicios
<a name="cross-service-confused-deputy-prevention"></a>

El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En este caso AWS, la suplantación de identidad entre varios servicios puede provocar el confuso problema de un diputado. La suplantación entre servicios puede producirse cuando un servicio (el *servicio que lleva a cabo las llamadas*) llama a otro servicio (el *servicio al que se llama*). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta. 

Se recomienda utilizar las claves de contexto de condición [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)y las claves de contexto en las políticas de recursos para limitar los permisos que se AWS IoT Greengrass otorgan a otro servicio al recurso. Si se utilizan ambas claves contextuales de condición global, el valor `aws:SourceAccount` y la cuenta del valor `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utilicen en la misma declaración de política.

El valor de `aws:SourceArn` debe ser el recurso de cliente de Greengrass asociado a la solicitud `sts:AssumeRole`.

La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de `aws:SourceArn` con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si especifica varios recursos, utiliza la clave de condición de contexto global `aws:SourceArn` con comodines (`*`) para las partes desconocidas del ARN. Por ejemplo, `arn:aws:greengrass::account-id:*`. 

Para ver un ejemplo de una política que usa las claves de contexto de condición global `aws:SourceArn` y `aws:SourceAccount`, consulte [Creación del rol de servicio de Greengrass](greengrass-service-role.md#create-service-role).

# Solución de problemas de identidad y acceso para AWS IoT Greengrass
<a name="security_iam_troubleshoot"></a>

Utilice la siguiente información como ayuda para diagnosticar y solucionar los problemas más comunes que pueden surgir al trabajar con un AWS IoT Greengrass IAM.

**Topics**
+ [No estoy autorizado a realizar ninguna acción en AWS IoT Greengrass](#security_iam_troubleshoot-no-permissions)
+ [No estoy autorizado a realizar lo siguiente: PassRole](#security_iam_troubleshoot-passrole)
+ [Soy administrador y quiero permitir el acceso de otras personas AWS IoT Greengrass](#security_iam_troubleshoot-admin-delegate)
+ [Quiero permitir que personas ajenas a mí accedan Cuenta de AWS a mis AWS IoT Greengrass recursos](#security_iam_troubleshoot-cross-account-access)

Para obtener ayuda general de solución de problemas, consulte [Solución de problemas AWS IoT Greengrass V2](troubleshooting.md).

## No estoy autorizado a realizar ninguna acción en AWS IoT Greengrass
<a name="security_iam_troubleshoot-no-permissions"></a>

Si recibe un error que indica que no está autorizado para llevar a cabo una acción, debe ponerse en contacto con su administrador para recibir ayuda. Su administrador es la persona que le facilitó su nombre de usuario y contraseña.

En el siguiente ejemplo, el error se produce cuando el usuario de IAM `mateojackson` intenta ver detalles sobre un dispositivo núcleo, pero no tiene permisos `greengrass:GetCoreDevice`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDevice on resource: arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore
```

En este caso, Mateo pide a su administrador que actualice sus políticas de forma que pueda obtener acceso al recurso `arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore` mediante la acción `greengrass:GetCoreDevice`.

A continuación se indican problemas de IAM generales que puede encontrar al trabajar con AWS IoT Greengrass.

## No estoy autorizado a realizar lo siguiente: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si recibe un error que indica que no tiene autorización para realizar la acción `iam:PassRole`, las políticas deben actualizarse a fin de permitirle pasar un rol a AWS IoT Greengrass.

Algunas Servicios de AWS permiten transferir una función existente a ese servicio en lugar de crear una nueva función de servicio o una función vinculada a un servicio. Para ello, debe tener permisos para transferir la función al servicio.

En el siguiente ejemplo, el error se produce cuando un usuario de IAM denominado `marymajor` intenta utilizar la consola para realizar una acción en AWS IoT Greengrass. Sin embargo, la acción requiere que el servicio cuente con permisos que otorguen un rol de servicio. Mary no tiene permisos para transferir el rol al servicio.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

En este caso, las políticas de Mary se deben actualizar para permitirle realizar la acción `iam:PassRole`.

Si necesita ayuda, póngase en contacto con su AWS administrador. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

## Soy administrador y quiero permitir el acceso de otras personas AWS IoT Greengrass
<a name="security_iam_troubleshoot-admin-delegate"></a>

Para permitir el acceso de otras personas AWS IoT Greengrass, debes conceder permiso a las personas o aplicaciones que necesitan acceso. Si usa AWS IAM Identity Center para administrar las personas y las aplicaciones, debe asignar conjuntos de permisos a los usuarios o grupos para definir su nivel de acceso. Los conjuntos de permisos crean políticas de IAM y las asignan a los roles de IAM asociados a la persona o aplicación de forma automática. Para obtener más información, consulte la sección [Conjuntos de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) en la *Guía del usuario de AWS IAM Identity Center *.

Si no utiliza IAM Identity Center, debe crear entidades de IAM (usuarios o roles) para las personas o aplicaciones que necesitan acceso. A continuación, debe asociar una política a la entidad que le conceda los permisos correctos en AWS IoT Greengrass. Una vez concedidos los permisos, proporcione las credenciales al usuario o al desarrollador de la aplicación. Utilizarán esas credenciales para acceder a AWS. Para obtener más información sobre la creación de usuarios, grupos, políticas y permisos de IAM, consulte [Identidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) y [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.

## Quiero permitir que personas ajenas a mí accedan Cuenta de AWS a mis AWS IoT Greengrass recursos
<a name="security_iam_troubleshoot-cross-account-access"></a>

Puede crear una función de IAM que los usuarios de otras cuentas o personas ajenas a su organización puedan utilizar para acceder a sus AWS recursos. Puede especificar una persona de confianza para que asuma el rol. Para obtener más información, consulte [Proporcionar acceso a un usuario de IAM en otro Cuenta de AWS que sea de su](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) propiedad y [Proporcionar acceso a Cuenta de AWS un usuario de IAM que sea propiedad de terceros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) en la Guía del usuario de *IAM*.

AWS IoT Greengrass no admite el acceso entre cuentas en función de políticas basadas en recursos o listas de control de acceso (). ACLs