

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.

# Identity and Access Management en Step Functions
<a name="auth-and-access-control-sfn"></a>

En las secciones siguientes, se incluye información detallada sobre el uso de [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) y Step Functions para ayudar a proteger sus recursos controlando quién puede acceder a ellos. Por ejemplo, aprenderá a proporcionar credenciales AWS Step Functions con permisos para acceder a los AWS recursos, por ejemplo, a recuperar datos de eventos de otros recursos. AWS 

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 estar *autenticado* (ha iniciado sesión) y *autorizado* (tiene permisos) para utilizar recursos de Step Functions. La IAM es una Servicio de AWS herramienta que puede utilizar sin coste adicional.

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

La forma de usar AWS Identity and Access Management (IAM) varía según la función que desempeñes:
+ **Usuario del servicio:** solicite permisos al administrador si no puede acceder a las características (consulte [Solución de problemas de identidades y accesos en Step Functions](security_iam_troubleshoot.md)).
+ **Administrador del servicio:** determine el acceso de los usuarios y envíe las solicitudes de permiso (consulte [¿Cómo funciona con IAM AWS Step Functions](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 Step Functions](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 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*. 

### Identidad federada
<a name="security_iam_authentication-federated"></a>

Como práctica recomendada, exija a los usuarios humanos que utilicen la federación con un proveedor de identidades para acceder Servicios de AWS mediante credenciales temporales.

Una *identidad federada* es un usuario del directorio empresarial, del proveedor de identidades web o al Directory Service que se accede Servicios de AWS mediante credenciales de una fuente de identidad. Las identidades federadas asumen roles que proporcionan credenciales temporales.

Para una administración de acceso centralizada, se recomienda AWS IAM Identity Center. Para obtener más información, consulte [¿Qué es el Centro de identidades de IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) en la *Guía del usuario de AWS IAM Identity Center *.

### 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>

El acceso se controla AWS creando políticas y adjuntándolas 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.

### 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 que conceden 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*.

## Control de acceso
<a name="access-control-sfn"></a>

Aunque disponga de credenciales válidas para autenticar las solicitudes, si no tiene permisos, no podrá crear recursos de Step Functions ni obtener acceso a ellos. Por ejemplo, debe tener permisos para AWS Lambda invocar los destinos de Amazon Simple Notification Service (Amazon SNS) y Amazon Simple Queue Service (Amazon SQS) asociados a sus reglas de Step Functions.

En las secciones siguientes, se describe cómo administrar los permisos de Step Functions.
+ [Creación de un rol de IAM para su máquina de estado en Step Functions](procedure-create-iam-role.md)
+ [Creación de permisos granulares para usuarios no administradores en Step Functions](concept-create-iam-advanced.md)
+ [Crear puntos de conexión de VPC de Amazon para Step Functions](vpc-endpoints.md)
+ [Generación de políticas de IAM para servicios integrados por Steps Functions](service-integration-iam-templates.md)
+ [Políticas de IAM para usar estados Map Distributed](iam-policies-eg-dist-map.md)

# ¿Cómo funciona con IAM AWS Step Functions
<a name="security_iam_service-with-iam"></a>

Antes de utilizar IAM para administrar el acceso a Step Functions, conozca qué características de IAM se pueden utilizar con Step Functions.

En la siguiente tabla se enumeran las funciones de IAM con las que puede utilizar: AWS Step Functions


| Característica de IAM | Compatibilidad con Step Functions | 
| --- | --- | 
|  [Políticas basadas en identidades](#security_iam_service-with-iam-id-based-policies)  |   Sí  | 
|  [Políticas basadas en recursos](#security_iam_service-with-iam-resource-based-policies)  |   No   | 
|  [Acciones de políticas](#security_iam_service-with-iam-id-based-policies-actions)  |   Sí  | 
|  [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources)  |   Sí  | 
|  [Claves de condición de política (específicas del servicio)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sí  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   No   | 
|  [ABAC (etiquetas en políticas)](#security_iam_service-with-iam-tags)  |   Parcial  | 
|  [Credenciales temporales](#security_iam_service-with-iam-roles-tempcreds)  |   Sí  | 
|  [Permisos de entidades principales](#security_iam_service-with-iam-principal-permissions)  |   Sí  | 
|  [Roles de servicio](#security_iam_service-with-iam-roles-service)  |   Sí  | 
|  [Roles vinculados al servicio](#security_iam_service-with-iam-roles-service-linked)  |   No   | 

Para obtener una visión general de cómo funcionan Step Functions y otros AWS servicios con la mayoría de las funciones de 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 identidades para Step Functions
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Compatibilidad con las políticas basadas en identidad:** sí

Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, 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*.

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. Para obtener más información sobre los elementos que puede utilizar en una política de JSON, consulte [Referencia de los elementos de la política de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

### Ejemplos de políticas basadas en identidades para Step Functions
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

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

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

**Admite políticas basadas en recursos:** no 

Las políticas basadas en recursos son documentos de política JSON que se asocian a un recurso. Los ejemplos de políticas basadas en recursos son 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. Para el recurso al que se asocia la política, la política define qué acciones puede realizar una entidad principal especificada en ese recurso y en qué condiciones. 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. Los directores pueden incluir cuentas, usuarios, roles, usuarios federados o. Servicios de AWS

Para habilitar el acceso entre cuentas, puede especificar toda una cuenta o entidades de IAM de otra cuenta como la entidad principal de una política en función de recursos. 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*.

## Acciones de políticas para Step Functions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatibilidad con las acciones de políticas:** sí

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.

Para ver una lista de las acciones de Step Functions, consulte [Recursos definidos por  AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) en la *Referencia de autorizaciones de servicio*.

Las acciones de políticas de Step Functions utilizan el siguiente prefijo antes de la acción:

```
states
```

Para especificar varias acciones en una única instrucción, sepárelas con comas.

```
"Action": [
          "states:action1",
          "states:action2"
             ]
```

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

## Recursos de políticas para Step Functions
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatibilidad con los recursos de políticas:** sí

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": "*"
```

Para ver una lista de los tipos de recursos de Step Functions y sus tipos ARNs, consulte [Acciones definidas por AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) en la *Referencia de autorización de servicio*. Para obtener información sobre las acciones con las que puede especificar el ARN de cada recurso, consulte [Recursos definidos por AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

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

## Claves de políticas para Step Functions
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatibilidad con claves de condición de políticas específicas del servicio:** sí

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*.

Para ver una lista de las claves de condición de Step Functions, consulte [Claves de condición para AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) en la *Referencia de autorizaciones de servicio*. Para saber con qué acciones y recursos puede utilizar una clave de condición, consulte [Recursos definidos por AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

 Si su política debe depender del nombre de la entidad principal de servicio de Step Functions, le recomendamos que compruebe la existencia o inexistencia de `states.amazonaws.com` en la [clave de contexto multivalor](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys) `aws:PrincipalServiceNamesList`, en lugar de la clave de condición `aws:PrincipalServiceName`. La clave de condición `aws:PrincipalServiceName` solo contiene una entrada de la lista de nombres de entidades principales de servicio y puede que no siempre sea `states.amazonaws.com`. En el siguiente bloque de condiciones se muestra cómo comprobar la existencia de `states.amazonaws.com`. 

```
{
    "Condition": {
        "ForAnyValue:StringEquals": {
            "aws:PrincipalServiceNamesList": "states.amazonaws.com"
        }
    }
}
```

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

## ACLs en Step Functions
<a name="security_iam_service-with-iam-acls"></a>

**Soportes ACLs:** No 

Las listas de control de acceso (ACLs) controlan qué directores (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.

## ABAC con Step Functions
<a name="security_iam_service-with-iam-tags"></a>

**Compatibilidad con ABAC (etiquetas en las políticas):** parcial

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos denominados etiquetas. Puede adjuntar etiquetas a las entidades y AWS los recursos de IAM y, a continuación, diseñar políticas de ABAC para permitir las operaciones cuando la etiqueta del director coincida con la etiqueta del recurso.

Para controlar el acceso en función de 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/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`.

Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es **Sí** para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es **Parcial**.

*Para obtener más información sobre ABAC, consulte [Definición de permisos con la autorización de ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) en la Guía del usuario de IAM*. Para ver un tutorial con los pasos para configurar ABAC, consulte [Uso del control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) en la *Guía del usuario de IAM*.

## Uso de credenciales temporales con Step Functions
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatibilidad con credenciales temporales:** sí

Las credenciales temporales proporcionan acceso a AWS los recursos a corto plazo y se crean automáticamente cuando se utiliza la federación o se cambia de rol. AWS recomienda generar credenciales temporales de forma dinámica en lugar de utilizar claves de acceso a largo plazo. Para obtener más información, consulte [Credenciales de seguridad temporales en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) y [Servicios de AWS 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*.

## Permisos principales entre servicios para Step Functions
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Admite sesiones de acceso directo (FAS):** sí

 Las sesiones de acceso directo (FAS) utilizan los permisos del principal que llama y los que solicitan Servicio de AWS para realizar solicitudes a los servicios descendentes. Servicio de AWS Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte [Sesiones de acceso directo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

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

**Compatible con roles de servicio:** sí

 Un rol de servicio es un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte [Crear un rol para delegar permisos a un Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) en la *Guía del usuario de IAM*. 

**aviso**  
Cambiar los permisos de un rol de servicio podría interrumpir la funcionalidad de Step Functions. Edite los roles de servicio solo cuando Step Functions proporcione orientación para hacerlo.

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

**Compatibilidad con roles vinculados al servicio:** no 

 Un rol vinculado a un servicio es un tipo de rol de servicio que está vinculado a un. Servicio de AWS El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados al servicio aparecen en usted Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios. 

Para más información sobre cómo crear o administrar roles vinculados a servicios, consulta [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Busque un servicio en la tabla que incluya `Yes` en la columna **Rol vinculado a un servicio**. Seleccione el vínculo **Sí** para ver la documentación acerca del rol vinculado a servicios para ese servicio.

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

De forma predeterminada, los usuarios y roles no tienen permiso para crear, ver ni modificar recursos de Step Functions. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan.

Para obtener información acerca de cómo crear una política basada en identidades de IAM mediante el uso de estos documentos de políticas JSON de ejemplo, consulte [Creación de políticas de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las acciones y los tipos de recursos definidos por Step Functions, incluido el ARNs formato de cada uno de los tipos de recursos, consulte [Acciones, recursos y claves de condición AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) en la *Referencia de autorización de servicio*.

**Topics**
+ [Prácticas recomendadas sobre las políticas](#security_iam_service-with-iam-policy-best-practices)
+ [Uso de la consola de Step Functions](#security_iam_id-based-policy-examples-console)
+ [Cómo permitir a los usuarios consultar sus propios permisos](#security_iam_id-based-policy-examples-view-own-permissions)

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

Las políticas basadas en identidades determinan si alguien puede crear, acceder o eliminar los recursos de Step Functions de la cuenta. 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*.

## Uso de la consola de Step Functions
<a name="security_iam_id-based-policy-examples-console"></a>

Para acceder a la AWS Step Functions consola, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle enumerar y ver detalles sobre los recursos de Step Functions en su Cuenta de AWS. Si crea una política basada en identidades que sea más restrictiva que el mínimo de permisos necesarios, la consola no funcionará del modo esperado para las entidades (usuarios o roles) que tengan esa política.

No es necesario que concedas permisos mínimos de consola a los usuarios que solo realicen llamadas a la API AWS CLI o a la AWS API. En su lugar, permita el acceso únicamente a las acciones que coincidan con la operación de API que intentan realizar.

Para garantizar que los usuarios y los roles puedan seguir utilizando la consola de Step Functions, adjunte también las Step Functions `ConsoleAccess` o la política `ReadOnly` AWS gestionada a las entidades. Para obtener más información, consulte [Adición de permisos a un usuario](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) 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 AWS CLI o 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": "*"
        }
    ]
}
```

# AWS políticas gestionadas para AWS Step Functions
<a name="security-iam-awsmanpol"></a>





Una política AWS gestionada 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*.









## AWS política gestionada: AWSStep FunctionsConsoleFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsConsoleFullAccess"></a>

Puede asociar la política [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html) a las identidades de IAM.

Esta política otorga *administrator* permisos que permiten a un usuario acceder para usar la consola Step Functions. Para disfrutar de una experiencia de consola completa, es posible que el usuario también necesite el PassRole permiso iam: para desempeñar otras funciones de IAM que pueda asumir el servicio.

## AWS política gestionada: AWSStep FunctionsReadOnlyAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess"></a>

Puede asociar la política [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html) a las identidades de IAM.

Esta política otorga *read-only* permisos que permiten a un usuario o rol enumerar y describir las máquinas de estado, las actividades, las ejecuciones, las actividades, las etiquetas y los alias y las versiones de las máquinas de estado. MapRuns Esta política también otorga permiso para comprobar la sintaxis de las definiciones de máquinas de estados que proporciones.

## AWS política gestionada: AWSStep FunctionsFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsFullAccess"></a>

Puede asociar la política [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html) a las identidades de IAM.

Esta política otorga *full* permisos a un usuario o rol para usar la API Step Functions. Para obtener un acceso completo, el usuario debe tener *iam:PassRole* permiso para al menos una función de IAM que pueda asumir el servicio.

## Step Functions actualiza las políticas AWS gestionadas
<a name="security-iam-awsmanpol-updates"></a>

Consulta los detalles sobre las actualizaciones de las políticas AWS gestionadas de Step Functions desde que este servicio comenzó a realizar el seguimiento de estos cambios. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS en la página [Historial de documentos](document-history.md) de Step Functions.




| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  [AWSStepFunctionsReadOnlyAccess](#security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess): actualización de una política actual   |  Step Functions ha añadido nuevos permisos que permiten llamar a la acción de la API `states:ValidateStateMachineDefinition` para comprobar la sintaxis de las definiciones de máquinas de estado que usted proporciona.  | 25 de abril de 2024 | 
|  [AWSStepFunctionsReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html): actualización de una política actual  |  Step Functions agregó nuevos permisos para permitir enumerar y leer datos relacionados con: etiquetas (ListTagsForResource), mapas distribuidos (ListMapRuns, DescribeMapRun), versiones y alias (DescribeStateMachineAlias, ListStateMachineAliases, ListStateMachineVersions).   | 2 de abril de 2024 | 
|  Step Functions ha comenzado a realizar un seguimiento de los cambios  |  Step Functions comenzó a realizar un seguimiento de los cambios en sus políticas AWS gestionadas.  | 2 de abril de 2024 | 

# Creación de un rol de IAM para su máquina de estado en Step Functions
<a name="procedure-create-iam-role"></a>

AWS Step Functions puede ejecutar código y acceder a AWS los recursos (como invocar una AWS Lambda función). Para mantener la seguridad, debe conceder a Step Functions acceso a esos recursos mediante un rol de IAM.

Las funciones [Tutoriales para aprender a usar Step Functions](learning-resources.md#tutorials) de IAM de esta guía le permiten aprovechar las funciones de IAM generadas automáticamente y que son válidas para la AWS región en la que creó la máquina de estados. No obstante, puede crear su propio rol de IAM para una máquina de estado.

Al crear una política de IAM para que la utilicen las máquinas de estado, la política debe incluir los permisos que desea que asuman las máquinas de estado. Puede utilizar una política AWS gestionada existente como ejemplo o puede crear una política personalizada desde cero que se adapte a sus necesidades específicas. Para obtener más información, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*

Para crear su propio rol de IAM para una máquina de estado, siga los pasos que se describen en esta sección.

En este ejemplo, se crea un rol de IAM con permiso para invocar una función de Lambda.

## Crear un rol para Step Functions
<a name="create-role-for-step-functions"></a>

1. Inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/home) y, a continuación, elija **Roles**, **Crear rol**.

1. En la página **Seleccionar entidad de confianza**, en **Servicio de AWS **, seleccione **Step Functions** en la lista y haga clic en **Siguiente: Permisos**.

1. En la página **Attached permissions policy**, elija **Next: Review**.

1. En la página **Revisar**, escriba `StepFunctionsLambdaRole` en **Nombre del rol** y, a continuación, elija **Crear rol**.

   El rol de IAM se muestra en la lista de roles.

Para obtener más información sobre los permisos y las políticas de IAM, consulte [Administración de accesos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) en la *Guía del usuario de IAM*.

## Prevención del problema del suplente confuso entre servicios
<a name="prevent-cross-service-confused-deputy"></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 AWS, la suplantación de identidad entre 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*). Este tipo de suplantación puede ocurrir entre cuentas y entre servicios. 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 evitar que los agentes confusos, AWS proporciona herramientas que le ayudan a proteger sus datos para todos los servicios cuyos directores de servicio tienen acceso a los recursos de su cuenta. Esta sección se centra en la prevención específica de los problemas de los diputados confusos entre servicios AWS Step Functions; sin embargo, puede obtener más información sobre este tema en la sección de [problemas de los diputados confusos](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) de la Guía del usuario de la *IAM*.

Se recomienda utilizar las claves de contexto de condición 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 [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) en las políticas de recursos para limitar los permisos que Step Functions concede a otro servicio para el acceso a sus recursos. Utiliza `aws:SourceArn` si desea que solo se asocie un recurso al acceso entre servicios. Utiliza `aws:SourceAccount` si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

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 está especificando varios recursos, utilice la clave de condición de contexto global `aws:SourceArn` con caracteres comodines (`*`) para las partes desconocidas del ARN. Por ejemplo, `arn:aws:states:*:111122223333:*`.

Este es un ejemplo de una *política de confianza* que muestra cómo puede usar `aws:SourceArn` y `aws:SourceAccount` con Step Functions para evitar el problema del suplente confuso.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
     {
        "Effect":"Allow",
        "Principal":{
           "Service":[
              "states.amazonaws.com"
           ]
        },
        "Action":"sts:AssumeRole",
        "Condition":{
           "ArnLike":{
              "aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*"
           },
           "StringEquals":{
              "aws:SourceAccount":"111122223333"
           }
        }
     }
  ]
}
```

## Asociación de una política insertada
<a name="attach-inline-policy"></a>

Step Functions puede controlar otros servicios directamente en un estado de `Task`. Asocie políticas insertadas para permitir el acceso de Step Functions a las acciones de la API de los servicios que necesite controlar.

1. Abra la [consola de IAM](https://console.aws.amazon.com/iam/home), elija **Roles**, busque el rol de Step Functions y selecciónelo.

1. Seleccione **Añadir política insertada**.

1. Utilice el **Editor visual** o la pestaña **JSON** para crear políticas para el rol.

Para obtener más información sobre cómo AWS Step Functions puede controlar otros AWS servicios, consulte. [Integración de servicios con Step Functions](integrate-services.md)

**nota**  
Para ver ejemplos de políticas de IAM creadas por la consola de Step Functions, consulte [Generación de políticas de IAM para servicios integrados por Steps Functions](service-integration-iam-templates.md).

# Creación de permisos granulares para usuarios no administradores en Step Functions
<a name="concept-create-iam-advanced"></a>

Las políticas gestionadas por defecto en IAM, por ejemplo`ReadOnly`, no cubren completamente todos los tipos de AWS Step Functions permisos. En esta sección se describen los distintos tipos de permisos y se facilitan algunas configuraciones de ejemplo. 

Step Functions tiene cuatro categorías de permisos. En función del acceso que desee proporcionar a un usuario, puede controlar el acceso mediante la utilización de permisos en estas categorías. 

[Permisos de nivel de servicio](#concept-create-iam-advanced-service)  
Aplicar a los componentes del API que **no** actúan en un recurso específico.

[Permisos de nivel de máquina de estado](#concept-create-iam-advanced-state)  
Se aplican a todos los componentes de la API que actúan sobre una máquina de estado específica.

[Permisos de nivel de ejecución](#concept-create-iam-advanced-execution)  
Se aplican a todos los componentes de la API que actúan sobre una ejecución específica.

[Permisos de nivel de actividad](#concept-create-iam-advanced-activity)  
Se aplican a todos los componentes de la API que actúan sobre una actividad específica o sobre una instancia concreta de una actividad.

## Permisos de nivel de servicio
<a name="concept-create-iam-advanced-service"></a>

Este nivel de permiso se aplica a todas las acciones del API que **no** actúen en un recurso específico. Incluyen `[CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html)`, `[CreateActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateActivity.html)`, `[ListStateMachines](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListStateMachines.html)`, `[ListActivities](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListActivities.html)` y `[ValidateStateMachineDefinition](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ValidateStateMachineDefinition.html)`. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "states:ListStateMachines",
                "states:ListActivities",
                "states:CreateStateMachine",
                "states:CreateActivity",
                "states:ValidateStateMachineDefinition"
            ],
            "Resource": [
                "arn:aws:states:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/my-execution-role"
            ]
        }
    ]
}
```

## Permisos de nivel de máquina de estado
<a name="concept-create-iam-advanced-state"></a>

Este nivel de permiso se aplica a todas las acciones de la API que actúan sobre una máquina de estado específica. Estas operaciones de la API requieren el Nombre de recurso de Amazon (ARN) de la máquina de estado como parte de la solicitud, como por ejemplo `[DeleteStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteStateMachine.html)`, `[DescribeStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeStateMachine.html)`, `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` y `[ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeStateMachine",
        "states:StartExecution",
        "states:DeleteStateMachine",
        "states:ListExecutions",
        "states:UpdateStateMachine",
        "states:TestState",
        "states:RevealSecrets"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:stateMachine:StateMachinePrefix*" 
      ]
    }
  ]
}
```

## Permisos de nivel de ejecución
<a name="concept-create-iam-advanced-execution"></a>

Este nivel de permiso se aplica a todas las acciones de la API que actúan sobre una ejecución específica. Estas operaciones del API requieren el ARN de la ejecución como parte de la solicitud, por ejemplo `[DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)`, `[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)` y `[StopExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StopExecution.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:DescribeStateMachineForExecution",
        "states:GetExecutionHistory",
        "states:StopExecution"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:execution:*:ExecutionPrefix*"
      ]
    }
  ]
}
```

## Permisos de nivel de actividad
<a name="concept-create-iam-advanced-activity"></a>

Este nivel de permiso se aplica a todas las acciones de la API que actúan sobre una actividad específica o en una instancia particular de la misma. Estas operaciones de la API requieren el ARN de la actividad o el token de la instancia como parte de la solicitud, como por ejemplo `[DeleteActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteActivity.html)`, `[DescribeActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeActivity.html)`, `[GetActivityTask](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetActivityTask.html)` y `[SendTaskHeartbeat](https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskHeartbeat.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeActivity",
        "states:DeleteActivity",
        "states:GetActivityTask",
        "states:SendTaskHeartbeat"
      ],
      "Resource": [
        "arn:aws:states:*:*:activity:ActivityPrefix*"
      ]
    }
  ]
}
```

# Acceder a los recursos en otras funciones de Cuentas de AWS in Step Functions
<a name="concepts-access-cross-acct-resources"></a>

Step Functions proporciona acceso multicuenta a los recursos configurados Cuentas de AWS en diferentes flujos de trabajo. Al utilizar las integraciones de servicios de Step Functions, puede invocar cualquier AWS recurso entre cuentas, incluso si Servicio de AWS no admite políticas basadas en recursos o llamadas entre cuentas.

Por ejemplo, supongamos que posee dos, denominados Desarrollo y Cuentas de AWS Pruebas, al mismo tiempo. Región de AWS Al utilizar el acceso entre cuentas, el flujo de trabajo de la cuenta Desarrollo puede acceder a recursos, como los buckets de Amazon S3, las tablas de Amazon DynamoDB y las funciones de Lambda, que estén disponibles en la cuenta Pruebas.

**importante**  
Los roles de IAM y las políticas basadas en recursos delegan el acceso entre cuentas solo dentro de una única partición. Suponga, por ejemplo, que tiene una cuenta en EE. UU. Oeste (Norte de California) en la partición estándar `aws`. También tiene una cuenta en China (Pekín) en la partición `aws-cn`. No puede utilizar una política de Amazon S3 basada en recursos en su cuenta en China (Pekín) para permitir el acceso a los usuarios de su cuenta `aws` estándar.

Para obtener más información sobre el acceso entre cuentas, consulte [Lógica de evaluación de políticas entre cuentas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) en la *Guía del usuario de IAM*.

Aunque cada una Cuenta de AWS mantiene el control total sobre sus propios recursos, con Step Functions, puede reorganizar, intercambiar, añadir o eliminar pasos de sus flujos de trabajo sin necesidad de personalizar ningún código. Puede hacerlo incluso cuando cambien los procesos o evolucionen las aplicaciones.

También puede invocar ejecuciones de máquinas de estado anidadas para que estén disponibles entre diferentes cuentas. Al hacerlo así, separa y aísla los flujos de trabajo de manera eficiente. Cuando se utiliza el patrón de integración de servicios [`.sync`](connect-to-resource.md#connect-sync) en los flujos de trabajo que acceden a otro flujo de trabajo de Step Functions en una cuenta diferente, Step Functions utiliza un sondeo que consume la cuota asignada. Para obtener más información, consulte [Ejecutar un trabajo (.sync)](connect-to-resource.md#connect-sync).

**nota**  
La integración AWS del SDK entre regiones y el acceso a los AWS recursos entre regiones no están disponibles en Step Functions.

## Conceptos clave de recursos entre cuentas
<a name="key-terms-cross-acct-access"></a>

**[Rol de ejecución](procedure-create-iam-role.md)**  
Una función de IAM que Step Functions utiliza para ejecutar código y acceder a AWS los recursos, como la acción Invoke de la AWS Lambda función.

**[Integración con los servicios](integrate-services.md)**  
Las acciones de la API de integración del AWS SDK a las que se puede llamar desde un `Task` estado de tus flujos de trabajo.

**cuenta de origen**  
Una Cuenta de AWS que es propietaria de la máquina de estados y que ha comenzado su ejecución.

**cuenta de destino**  
Y Cuenta de AWS a la que se hacen llamadas entre cuentas.

**rol de destino**  
Un rol de IAM en la cuenta de destino que la máquina de estado asume para realizar llamadas a recursos de los que es propietaria la cuenta de destino.

**[Ejecutar un trabajo (.sync)](connect-to-resource.md#connect-sync)**  
Un patrón de integración de servicios que se utiliza para llamar a servicios, como AWS Batch. También hace que una máquina de estado de Step Functions espere a que se complete un trabajo antes de pasar al siguiente estado. Para indicar que Step Functions debe esperar, añada el sufijo `.sync` al campo `Resource` de la definición de estado `Task`.

## Invocación de recursos entre cuentas
<a name="invoke-cross-acct-resource"></a>

Para invocar un recurso entre cuentas en los flujos de trabajo, haga lo siguiente:

1. Cree un rol de IAM en la cuenta de destino que contiene el recurso. Esta función otorga a la cuenta de origen, que contiene la máquina de estado, permisos para acceder a los recursos de la cuenta de destino.

1. En la definición del estado `Task`, especifique el rol de IAM de destino que asumirá la máquina de estado antes de invocar el recurso entre cuentas.

1. Modifique la política de confianza del rol de IAM de destino para permitir que la cuenta de origen asuma esta función temporalmente. La política de confianza debe incluir el nombre de recurso de Amazon (ARN) de la máquina de estado definida en la cuenta de origen. Además, defina los permisos adecuados en la función de IAM de destino para llamar al AWS recurso.

1. Actualice el rol de ejecución de la cuenta de origen para incluir el permiso necesario para asumir el rol de IAM de destino.

Consulte [Acceso a AWS recursos multicuenta en Step Functions](tutorial-access-cross-acct-resources.md) en los tutoriales para ver un ejemplo.

**nota**  
Puede configurar la máquina de estado para que asuma un rol de IAM para acceder a los recursos desde varias Cuentas de AWS. No obstante, una máquina de estado solo puede asumir un rol de IAM en un momento dado.

![\[Concepto para acceder a recursos entre cuentas\]](http://docs.aws.amazon.com/es_es/step-functions/latest/dg/images/cross-account-support-concept.png)


## Acceso entre cuentas para el patrón de integración .sync
<a name="concepts-cross-acct-sync-pattern"></a>

Cuando se utilizan los patrones de integración de servicios `.sync` en los flujos de trabajo, Step Functions sondea el recurso entre cuentas invocado para confirmar que la tarea se ha completado. Esto provoca un ligero retraso entre el momento real de finalización de la tarea y el momento en que Step Functions reconoce la tarea como completada. El rol de IAM de destino necesita los permisos necesarios para que una invocación de `.sync` complete este bucle de sondeo. Para ello, el rol de IAM de destino debe tener una política de confianza que permita que la cuenta de origen lo asuma. Además, el rol de IAM de destino necesita los permisos requeridos para completar el bucle de sondeo.

**nota**  
Para flujos de trabajo rápidos anidados, `arn:aws:states:::states:startExecution.sync` no es compatible actualmente. En su lugar, use `arn:aws:states:::aws-sdk:sfn:startSyncExecution`.

### Actualización de la política de confianza para llamadas .sync
<a name="cross-acct-sync-pattern-policy-update"></a>

Actualice la política de confianza del rol de IAM de destino como se muestra en el siguiente ejemplo. El campo `sts:ExternalId` controla, además, quién puede asumir el rol. El nombre de la máquina de estados debe incluir solo los caracteres compatibles con la AWS Security Token Service `AssumeRole` API. Para obtener más información, consulta [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) en la *AWS Security Token Service Referencia de la API de *.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Principal": {
        "AWS": "arn:aws:iam::sourceAccountID:role/InvokeRole",
      },
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "arn:aws:states:us-east-2:sourceAccountID:stateMachine:stateMachineName"
        }
      }
    }
  ]
}
```

### Se requieren permisos para las llamadas .sync
<a name="cross-acct-sync-pattern-perms-update"></a>

Para conceder los permisos necesarios para la máquina de estado, actualice los permisos necesarios para el rol de IAM de destino. Para obtener más información, consulte [Generación de políticas de IAM para servicios integrados por Steps Functions](service-integration-iam-templates.md). Por ejemplo, para iniciar una máquina de estado, añada los siguientes permisos.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:StopExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
      ]
    }
  ]
}
```

# Crear puntos de conexión de VPC de Amazon para Step Functions
<a name="vpc-endpoints"></a>

Si utiliza Amazon Virtual Private Cloud (Amazon VPC) para alojar sus AWS recursos, puede establecer una conexión entre su Amazon VPC y los flujos de trabajo. AWS Step Functions Puede utilizar esta conexión con sus flujos de trabajo de Step Functions sin cruzar la Internet pública. Los puntos de conexión de VPC son compatibles con los flujos de trabajo estándar, los flujos de trabajo rápidos y los flujos de trabajo rápidos sincrónicos. 

Amazon VPC le permite lanzar AWS recursos en una red virtual personalizada. Puede utilizar una VPC para controlar la configuración de red, como el intervalo de direcciones IP, las subredes, las tablas de enrutamiento y las puertas de enlace de red. Para obtener más información VPCs, consulte la Guía del [usuario de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/).

Para conectar su Amazon VPC a Step Functions, primero debe definir un *punto de enlace de VPC* de interfaz, que le permita conectar su VPC a otros servicios. AWS El punto de conexión ofrece conectividad escalable de confianza sin necesidad de utilizar una gateway de Internet, una instancia de conversión de las direcciones de red (NAT) o una conexión de VPN. Para obtener más información, consulte [Puntos de conexión de VPC de la interfaz (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) en la *Guía del usuario de Amazon VPC*.

## Creación del punto de conexión
<a name="vpc-endpoint-create"></a>

Puede crear un AWS Step Functions punto de conexión en su VPC mediante Consola de administración de AWS, el AWS Command Line Interface (AWS CLI), un AWS SDK, la AWS Step Functions API o. CloudFormation

Para obtener información sobre la creación y configuración de un punto de conexión mediante la consola de Amazon VPC o la AWS CLI, consulte [Creación de un punto de conexión de interfaz](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) en la *Guía del usuario de Amazon VPC*.

**nota**  
 Al crear el punto de conexión, especifique que Step Functions es el servicio al que desea que se conecte la VPC. En la consola de Amazon VPC, los nombres de los servicios varían en función de la AWS región. **Por ejemplo, si elige Este de EE. UU. (Norte de Virginia), el nombre de servicio para flujos de trabajo estándar y flujos de trabajo rápidos es **com.amazonaws.us-east-1.states** y el nombre de servicio para flujos de trabajo rápido síncronos es com.amazonaws.us-east-1.sync-states**.

**nota**  
Es posible usar puntos de conexión de VPC sin anular el punto de conexión en el SDK a través [DNS privado.](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html) No obstante, si desea anular el punto de conexión en el SDK para flujos de trabajo rápidos síncronos, debe establecer la configuración `DisableHostPrefixInjection` en `true`. Ejemplo (Java SDK V2):   

```
SfnClient.builder()
  .endpointOverride(URI.create("https://vpce-{vpceId}.sync-states.us-east-1.vpce.amazonaws.com"))
  .overrideConfiguration(ClientOverrideConfiguration.builder()
    .advancedOptions(ImmutableMap.of(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION, true))
    .build())
  .build();
```

Para obtener información sobre cómo crear y configurar un punto final mediante CloudFormation, consulte el VPCEndpoint recurso [AWS: :EC2::](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) en la Guía del *CloudFormation usuario*.

## Políticas de punto de conexión de VPC de Amazon
<a name="vpc-endpoint-policy"></a>

Para controlar el acceso de conectividad a Step Functions, puede adjuntar una política de puntos de conexión AWS Identity and Access Management (IAM) mientras crea un punto de conexión de Amazon VPC. Puede crear reglas de IAM complejas al asociar varias políticas de punto de conexión. Para obtener más información, consulte lo siguiente:
+  [Políticas de punto de conexión de Amazon Virtual Private Cloud para Step Functions](#vpc-iam) 
+  [Creación de permisos granulares para usuarios no administradores en Step Functions](concept-create-iam-advanced.md) 
+  [Control del acceso a los servicios con puntos de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

## Políticas de punto de conexión de Amazon Virtual Private Cloud para Step Functions
<a name="vpc-iam"></a>

Puede crear una política de punto de conexión de Amazon VPC para Step Functions en la que especifique lo siguiente:
+ La entidad principal que puede realizar acciones.
+ Las acciones que se pueden realizar.
+ El recurso en el que se pueden realizar las acciones.

En el ejemplo siguiente se muestra una política de punto de conexión de VPC Amazon que permite a un usuario crear máquinas de estado y deniega a todos los demás usuarios el permiso para eliminar máquinas de estado. La política de ejemplo también concede permiso de ejecución a todos los usuarios de .

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
              "states:ListExecutions", "states:StartExecution", "states:StopExecution", "states:DescribeExecution"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Principal": "*"
        },
        {
            "Action": "states:CreateStateMachine",
            "Resource": "*",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::123456789012:user/MyUser"
            }
        },
        {
            "Action": "states:DeleteStateMachine",
            "Resource": "*",
            "Effect": "Deny",
            "Principal": "*"
        }
    ]
}
```

Para obtener más información acerca de la creación de políticas de punto de enlace, consulte lo siguiente: 
+  [Creación de permisos granulares para usuarios no administradores en Step Functions](concept-create-iam-advanced.md) 
+  [Control del acceso a los servicios con puntos de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

# Generación de políticas de IAM para servicios integrados por Steps Functions
<a name="service-integration-iam-templates"></a>

Al crear una máquina de estados en la AWS Step Functions consola, Step Functions genera una política AWS Identity and Access Management (IAM) basada en los recursos utilizados en la definición de la máquina de estados, de la siguiente manera: 
+ Para las **integraciones optimizadas**, Step Functions creará una política con todos los permisos y roles necesarios para la máquina de estado.

  Consejo: Puede ver ejemplos de políticas en cada una de las páginas de servicio que aparecen en [Integración de los servicios optimizados](integrate-optimized.md). 
+ Para las **integraciones estándar**, Step Functions creará un rol de IAM con permisos parciales.

  Debe añadir las políticas de rol que falten y que su máquina de estado necesite para interactuar con el servicio.

## Recursos dinámicos y estáticos
<a name="connect-iam-dynamic-static"></a>

Los *recursos estáticos* se definen **directamente** en el estado de la tarea de la máquina de estado. Cuando se incluye la información sobre los recursos a los que se llama directamente en los estados de la tarea, Step Functions puede crear un rol de IAM exclusivo para esos recursos. 

Los *recursos dinámicos* se **transfieren** como entrada al iniciar la máquina de estados, o como entrada a un estado individual, y se accede a ellos mediante JSONata o un JSONPath. Cuando pasa recursos dinámicos a su tarea, Step Functions no puede reducir automáticamente el alcance de los permisos, por lo que Step Functions creará una política más permisiva que especifica: `"Resource": "*"`.

## Permisos adicionales para las tareas que utilizan .sync
<a name="connect-iam-sync-async"></a>

Las tareas que utilizan el patrón [Ejecutar un trabajo (.sync)](connect-to-resource.md#connect-sync) necesitan permisos adicionales para supervisar y recibir una respuesta de la API de los servicios conectados.

Step Functions utiliza dos enfoques para supervisar el estado de un trabajo cuando se ejecuta en un servicio conectado: **sondeos** y **eventos**. 

El sondeo requiere permiso para las acciones de la API `Describe` o `Get`. Por ejemplo, para Amazon ECS, la máquina de estado debe tener permiso de permiso para`ecs:DescribeTasks`, ya que AWS Glue la máquina de estado requiere permisos de permiso para`glue:GetJobRun`. Si el rol no tiene los permisos necesarios, es posible que Step Functions no pueda determinar el estado de su trabajo. Uno de los motivos por los que se utiliza el método de sondeo es que algunas integraciones de servicios no admiten EventBridge eventos y algunos servicios solo envían los eventos si hacen el mejor esfuerzo posible. 

Como alternativa, puedes usar los eventos enviados desde AWS los servicios a Amazon EventBridge. Los eventos se redirigen a Step Functions EventBridge mediante una regla gestionada, por lo que el rol requiere permisos para `events:PutTargets``events:PutRule`, y`events:DescribeRule`. Si no tiene estos permisos en el rol, es posible que se produzca un retraso antes de que Step Functions tenga conocimiento de que ha completado el trabajo. Para obtener más información sobre EventBridge los eventos, consulte [Eventos de los AWS servicios](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html). 

## Solución de problemas con los flujos de trabajo de .sync atascados
<a name="polling-events-troubleshooting"></a>

En el caso de las tareas de Ejecutar un trabajo (.sync) que admiten **tanto** sondeos como eventos, es posible que la tarea se complete correctamente mediante eventos, incluso cuando el rol carezca de los permisos necesarios para realizar sondeos.

En el escenario anterior, es posible que no note que los permisos de sondeo faltan o son incorrectos. En el improbable caso de que Step Functions no entregue o procese el evento, la ejecución podría bloquearse. 

 Para comprobar que sus permisos de sondeo están configurados correctamente, puede ejecutar una ejecución en un entorno sin EventBridge eventos de las siguientes maneras 
+  Elimine la regla gestionada EventBridge que se encarga de reenviar los eventos a Step Functions. 
**nota**  
 Puesto que todas las máquinas de estado comparten reglas administradas en su cuenta, debe utilizar una cuenta de prueba o de desarrollo para evitar cualquier impacto involuntario en otras máquinas de estado. 
+ Puede identificar la regla administrada específica que desea eliminar inspeccionando el campo `Resource` utilizado para `events:PutRule` en la plantilla de política del servicio de destino. La regla administrada se volverá a crear la próxima vez que cree o actualice una máquina de estado que utilice esa integración de servicios. 
+  Para obtener más información sobre la eliminación de EventBridge reglas, consulte [Desactivar o eliminar una](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html) regla. 

## Permisos para cancelar los flujos de trabajo
<a name="iam-cancel-tasks"></a>

Si se detiene una tarea que utiliza el patrón de ejecución de trabajo (.sync), Step Functions hará todo lo posible por cancelar la tarea.

La cancelación de una tarea requiere permiso para las acciones de la API `Cancel`, `Stop`, `Terminate` o `Delete`, como `batch:TerminateJob` o `eks:DeleteCluster`. Si la función no tiene estos permisos, Step Functions no podrá cancelar la tarea y podrían acumularse cargos adicionales mientras siga ejecutándose. Para obtener más información, consulte [Ejecución de un trabajo](connect-to-resource.md#connect-sync).

**Más información sobre los patrones de integración**  
 Para obtener más información sobre las tareas síncronas, consulte [Descubrimiento de los patrones de integración de servicios en Step Functions](connect-to-resource.md).

## Políticas de IAM para máquinas de estado Step Functions exclusivas para actividades
<a name="activities-iam"></a>

En una máquina de estado donde únicamente haya tareas de `Activity` o no haya ninguna, utilice una política de IAM que deniegue el acceso a todas las acciones y recursos.

****  

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

Para obtener más información acerca del uso de tareas de ` Activity `, consulte [Más información sobre las actividades de Step Functions](concepts-activities.md).

# Políticas de IAM para usar estados Map Distributed
<a name="iam-policies-eg-dist-map"></a>

Al crear flujos de trabajo con la consola de Step Functions, Step Functions puede generar automáticamente políticas de IAM basadas en los recursos de la definición de flujo de trabajo. Las políticas generadas incluyen los privilegios mínimos necesarios para permitir que la función de máquina de estado invoque la acción de la `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API para los AWS recursos de *estado y acceso del mapa distribuido*, como los buckets y objetos de Amazon S3 y las funciones de Lambda.

Le recomendamos que incluya únicamente los permisos necesarios en las políticas de IAM. Por ejemplo, si el flujo de trabajo incluye un estado `Map` en modo Distribuido, aplique las políticas al bucket y a la carpeta de Amazon S3 específicos que contengan los datos.

**importante**  
Si especifica un bucket y un objeto de Amazon S3, o un prefijo, con una [ruta de referencia](amazon-states-language-paths.md#amazon-states-language-reference-paths) a un par clave-valor existente en la entrada del *estado Map Distributed*, no olvide actualizar las políticas de IAM para el flujo de trabajo. Limite las políticas hasta los nombres de objeto y bucket a los que se dirige la ruta en tiempo de ejecución.

## Ejemplo de política de IAM para ejecutar un estado Map Distributed
<a name="iam-policy-run-dist-map"></a>

Cuando se incluye un *estado Map Distributed* en los flujos de trabajo, Step Functions necesita los permisos adecuados para permitir que el rol de la máquina de estado invoque la acción de la API `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` para el *estado Map Distributed*.

El siguiente ejemplo de política de IAM otorga los privilegios mínimos necesarios al rol de la máquina de estado para ejecutar el *estado Map Distributed*.

**nota**  
No olvide reemplazar `stateMachineName` por el nombre de la máquina de estado en la que está utilizando el *estado Map Distributed*. Por ejemplo, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
    }
  ]
}
```

## Ejemplo de política de IAM para redriving de estado Map Distributed
<a name="iam-policy-redrive-dist-map"></a>

Puede reiniciar las ejecuciones fallidas de flujos de trabajo secundarios en un flujo de trabajo basado en Map Run mediante [redriving](redrive-executions.md) del [flujo de trabajo principal](state-map-distributed.md#dist-map-orchestrate-parallel-workloads-key-terms). Un flujo de trabajo principal redriven redrives todos los estados fallidos, incluido el estado Map Distributed. Asegúrese de que la función de ejecución tenga los privilegios mínimos necesarios para poder invocar la acción de la API `[RedriveExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_RedriveExecution.html)` en el flujo de trabajo principal.

El siguiente ejemplo de política de IAM otorga los privilegios mínimos necesarios para el rol de la máquina de estado para redriving de un *estado Map Distributed*.

**nota**  
No olvide reemplazar `stateMachineName` por el nombre de la máquina de estado en la que está utilizando el *estado Map Distributed*. Por ejemplo, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:RedriveExecution"
      ],
      "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachineName/myMapRunLabel:*"
    }
  ]
}
```

## Ejemplos de políticas de IAM para leer datos desde conjuntos de datos de Amazon S3
<a name="iam-policy-eg-item-reader"></a>

Los siguientes ejemplos muestran técnicas para conceder los privilegios mínimos necesarios para acceder a sus conjuntos de datos de Amazon S3 mediante la [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) y las acciones de la [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API.

**Example condición que usa un objeto de Amazon S3 como conjunto de datos**  
La siguiente condición otorga privilegios mínimos para acceder a los objetos de una carpeta `processImages` de un bucket de Amazon S3.  

```
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": { 
      "s3:prefix": [ "processImages" ]
   }
}
```

**Example uso de un archivo CSV como conjunto de datos**  
En el siguiente ejemplo se muestran las acciones necesarias para acceder a un archivo CSV denominado `ratings.csv`.  

```
"Action": [ "s3:GetObject" ],
"Resource": [
   "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv"
   ]
```

**Example uso de un inventario de Amazon S3 como conjunto de datos**  
A continuación, se muestran ejemplos de recursos para un manifiesto de inventario y archivos de datos de Amazon S3.  

```
"Resource": [
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json",
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*"
   ]
```

**Example usar ListObjects V2 para restringirlo a un prefijo de carpeta**  
Al usar [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), se generarán dos políticas. Una es necesaria para poder **mostrar** el contenido del bucket (`ListBucket`) y otra política permitirá **recuperar los objetos** del bucket (`GetObject`).   
A continuación, se muestran ejemplos de acciones, recursos y una condición:  

```
"Action": [ "s3:ListBucket" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": {
      "s3:prefix": [ "/path/to/your/json/" ]
   }
}
```

```
"Action": [ "s3:GetObject" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]
```
Tenga en cuenta que `GetObject` no se limitará al ámbito y utilizará un comodín (`*`) para el objeto.

## Ejemplo de política de IAM para escribir datos en un bucket de Amazon S3
<a name="iam-policy-eg-result-writer"></a>

El siguiente ejemplo de política de IAM otorga los privilegios mínimos necesarios para escribir los resultados de la ejecución del flujo de trabajo secundario en una carpeta nombrada *csvJobs* en un bucket de Amazon S3 mediante la acción de `[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)` API.

****  

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

### Permisos de IAM para un bucket de Amazon S3 AWS KMS key cifrado
<a name="multiupload-dmap-result-policy"></a>

El *estado Map Distributed* utiliza cargas multiparte para escribir los resultados de ejecución del flujo de trabajo secundario en un bucket de Amazon S3. Si el bucket se cifra con una clave AWS Key Management Service (AWS KMS), también debe incluir los permisos en la política IAM para realizar las acciones `kms:Decrypt`, `kms:Encrypt` y `kms:GenerateDataKey` sobre la clave Estos permisos son necesarios, ya que Amazon S3 debe descifrar y leer datos de las partes de archivos cifrados antes de finalizar la carga multiparte.

El siguiente ejemplo de política de IAM concede permisos a las acciones `kms:Decrypt`, `kms:Encrypt` y `kms:GenerateDataKey` sobre la clave utilizada para cifrar el bucket de Amazon S3.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:Encrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}
```

Para obtener más información, consulte [Cargar un archivo grande en Amazon S3 con cifrado mediante AWS KMS key](https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/) en el *AWS Centro de conocimientos*.

Si su usuario o rol de IAM es el Cuenta de AWS mismo que elKMS key, debe tener estos permisos en la política clave. Si el usuario o rol de IAM pertenecen a una cuenta distinta que la KMS key, debe tener los permisos tanto en la política de claves como en el usuario o rol de IAM.

# Creación de políticas de IAM basado en etiquetas en Step Functions
<a name="tag-based-policies"></a>

Step Functions admite políticas basadas en etiquetas. Por ejemplo, puede restringir el acceso a todos los recursos de Step Functions que incluyan una etiqueta con la clave `environment` y el valor `production`.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "states:TagResource",
                "states:UntagResource",
                "states:DeleteActivity",
                "states:DeleteStateMachine",
                "states:StopExecution"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/environment": "production"}
            }
        }
    ]
}
```

Esta política denegará (`Deny`) la posibilidad de eliminar máquinas de estado o actividades, detener ejecuciones y añadir o eliminar nuevas etiquetas para todos los recursos que se han etiquetado como `environment/production`.

En el caso de la autorización basada en etiquetas, los recursos de ejecución de máquinas de estado, como se muestra en el siguiente ejemplo, heredan las etiquetas asociadas a una máquina de estado.

```
arn:partition:states:region:account-id:execution:<StateMachineName>:<ExecutionId>
```

Cuando llamas [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)o cuando especificas el ARN del recurso de ejecución, Step Functions utiliza las etiquetas asociadas a la máquina de estados para aceptar o denegar la solicitud mientras realiza la autorización basada en etiquetas. APIs Esto ayuda a permitir o denegar el acceso a las ejecuciones de máquina de estado en el nivel de las máquinas de estado.

Para obtener más información sobre el etiquetado, consulte lo siguiente:
+ [Etiquetado de máquinas de estado y actividades en Step Functions](sfn-best-practices.md#concepts-tagging)
+ [Control del acceso mediante etiquetas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)

# Solución de problemas de identidades y accesos en Step Functions
<a name="security_iam_troubleshoot"></a>

Utilice la siguiente información para diagnosticar y solucionar los problemas comunes que puedan surgir cuando trabaje con Step Functions e IAM.

**Topics**
+ [No tengo autorización para realizar una acción en Step Functions](#security_iam_troubleshoot-no-permissions)
+ [No estoy autorizado a realizar tareas como: PassRole](#security_iam_troubleshoot-passrole)
+ [Quiero permitir que personas ajenas a mí accedan Cuenta de AWS a mis recursos de Step Functions](#security_iam_troubleshoot-cross-account-access)

## No tengo autorización para realizar una acción en Step Functions
<a name="security_iam_troubleshoot-no-permissions"></a>

Si recibe un error que indica que no tiene autorización para realizar una acción, las políticas se deben actualizar para permitirle realizar la acción.

En el siguiente ejemplo, el error se produce cuando el usuario `mateojackson` intenta utilizar la consola para consultar los detalles acerca de un recurso ficticio `my-example-widget`, pero no tiene los permisos ficticios `states:GetWidget`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: states:GetWidget on resource: my-example-widget
```

En este caso, la política de Mateo se debe actualizar para permitirle acceder al recurso `my-example-widget` mediante la acción `states:GetWidget`.

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.

## No estoy autorizado a realizar tareas como: 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`, se deben actualizar las políticas a fin de permitirle pasar un rol a Step Functions.

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 Step Functions. 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.

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

Se puede crear un rol que los usuarios de otras cuentas o las personas externas a la organización puedan utilizar para acceder a sus recursos. Se puede especificar una persona de confianza para que asuma el rol. En el caso de los servicios que respaldan políticas basadas en recursos o listas de control de acceso (ACLs), puede usar esas políticas para permitir que las personas accedan a sus recursos.

Para obtener más información, consulte lo siguiente:
+ Para obtener información acerca de si Step Functions admite estas características, consulte [¿Cómo funciona con IAM AWS Step Functions](security_iam_service-with-iam.md).
+ Para obtener información sobre cómo proporcionar acceso a los recursos de su Cuentas de AWS propiedad, consulte [Proporcionar acceso a un usuario de IAM en otro de su propiedad en la Cuenta de AWS Guía del usuario](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) de *IAM*.
+ Para obtener información sobre cómo proporcionar acceso a tus recursos a terceros Cuentas de AWS, consulta Cómo [proporcionar acceso a recursos que Cuentas de AWS son 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*.
+ Para obtener información sobre cómo proporcionar acceso mediante una federación de identidades, consulte [Proporcionar acceso a usuarios autenticados externamente (identidad federada)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) en la *Guía del usuario de IAM*.
+ Para conocer sobre la diferencia entre las políticas basadas en roles y en recursos para el acceso entre cuentas, 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*.