Políticas de IAM para servicios integrados - AWS Step Functions

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.

Políticas de IAM para servicios integrados

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:

  • Si su máquina de estados usa una de las integraciones optimizadas, Step Functions creará una política con los permisos y roles necesarios para su máquina de estados. (Excepción: MediaConvert la integración requiere que configure los permisos manualmente; consultePolíticas de IAM para AWS Elemental MediaConvert)

  • Si su máquina de estado usa una de las integraciones del AWS SDK, se creará un rol de IAM con permisos parciales. Después, puede utilizar la consola de IAM para añadir cualquier política de rol que falte.

En los siguientes ejemplos se muestra cómo Step Functions genera una política de IAM en función de la definición de la máquina de estado. Los elementos del código de ejemplo como [[resourceName]] se sustituyen por los recursos estáticos incluidos en la definición de la máquina de estado. Si tiene varios recursos estáticos, habrá una entrada para cada uno en el rol de IAM.

Recursos dinámicos frente a recursos estáticos

Los recursos estáticos se definen directamente en la 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 crea un rol de IAM exclusivo para esos recursos.

Los recursos dinámicos son los que se transfieren a la entrada del estado y se puede acceder a ellos mediante una ruta (consulte Rutas). Si pasa recursos dinámicos a una tarea, Step Functions creará una política más privilegiada que especifica: "Resource": "*".

Permisos adicionales para las tareas que utilizan el patrón de ejecución de un trabajo

Para las tareas que utilizan el patrón de ejecución de un trabajo (las que terminan en .sync), se necesitan permisos adicionales para monitorizar y recibir una respuesta de las acciones de la API de los servicios conectados. Las políticas relacionadas incluyen más permisos que las tareas que utilizan los patrones de solicitud de respuesta o espera de devolución de llamada. Consulte Patrones de integración de servicios para obtener información acerca de las tareas síncronas.

nota

Debe proporcionar permisos adicionales para las integraciones de servicios que admitan el patrón Run a Job (.sync).

Step Functions utiliza dos métodos 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, como ecs:DescribeTasks o glue:GetJobRun. Si el rol no tiene estos permisos, es posible que Step Functions no pueda determinar el estado del trabajo. Esto se debe a que algunas integraciones del servicio Run a Job (.sync) no admiten EventBridge eventos y algunos servicios solo envían eventos según el mejor esfuerzo.

Los eventos enviados desde AWS los servicios a Amazon EventBridge se dirigen a Step Functions mediante una regla gestionada y requieren permisos para events:PutTargetsevents:PutRule, yevents: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 AWS los servicios.

nota

En el caso de las tareas de ejecución de un trabajo (.sync) que admiten sondeos y eventos, es posible que la tarea se complete correctamente mediante eventos. Esto puede ocurrir incluso si el rol carece de los permisos necesarios para realizar sondeos En este caso, es posible que no se dé cuenta inmediatamente de que los permisos de sondeos faltan o son incorrectos. En la instancia infrecuente 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 de EventBridge, que es responsable de reenviar los eventos a Step Functions. Todas las máquinas de estado de la cuenta comparten esta regla gestionada, por lo que debe realizar esta acción únicamente en 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 regla.

  • Realice pruebas con Step Functions Local, que no admite el uso de eventos para completar las tareas de ejecución de trabajo (.sync). Para usar Step Functions Local, asuma el rol de IAM que utilice la máquina de estado. Es posible que deba editar la Relación de confianza. Defina las variables de entorno AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_SESSION_TOKEN en los valores del rol asumido y, a continuación, inicie Step Functions Local usando java -jar StepFunctionsLocal.jar. Por último, utilice el --endpoint-url parámetro AWS CLI with para crear una máquina de estados, iniciar una ejecución y obtener el historial de ejecuciones. Para obtener más información, consulte Probar máquinas de estado de forma local.

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

Plantillas de políticas utilizadas para crear roles de IAM

En los temas siguientes se incluyen las plantillas de políticas que se utilizarán cuando decida que Step Functions cree un nuevo rol por usted.

nota

Revisa estas plantillas para entender cómo Step Functions crea tus políticas de IAM y como ejemplo de cómo crear manualmente políticas de IAM para Step Functions cuando trabajas con otros AWS servicios. Para obtener más información sobre las integraciones de servicios de Step Functions, consulte Uso AWS Step Functions con otros servicios.