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 estado en laAWS Step Functionsconsola, Step Functions produce unAWS Identity and Access ManagementPolítica de (IAM) basada en los recursos utilizados en la definición de la máquina de estado, como se indica a continuación:

  • Si su equipo de estado utiliza una de las integraciones optimizadas, creará una política con los permisos y roles necesarios para su equipo de estado.

  • Si su equipo de estado utiliza uno de losAWSIntegraciones de SDK, se creará un rol de IAM con permisos parciales. A continuación, puede utilizar la consola de IAM para agregar políticas de rol que falten.

En los siguientes ejemplos se muestra cómo Step Functions genera una política de IAM basada en 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 y 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 las acciones de la API que se llaman directamente en los estados de la tarea, Step Functions crea un rol de IAM únicamente 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 tareas mediante el patrón Ejecutar un Job

Para tareas que utilizan elCómo ejecutar un trabajopatrón (los 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 para las tareas que utilizan los patrones de respuesta de solicitud o espera de devolución de llamada. ConsultePatrones de integración de serviciospara obtener información sobre las tareas síncronas.

Step Functions utiliza dos métodos para supervisar el estado de un trabajo cuando un trabajo se ejecuta en un servicio conectado, sondeos y eventos.

Las encuestas requieren permiso paraDescribeoGetAcciones de la API de, comoecs:DescribeTasksoglue:GetJobRun. Si faltan estos permisos en tu rol, es posible que Step Functions no pueda determinar el estado de tu trabajo. Esto se debe a que algunas integraciones de servicios Run a Job (.sync) no admiten eventos de EventBridge y algunos servicios solo envían eventos sobre la base del mejor esfuerzo.

Eventos enviados desdeAWSservicios a Amazon EventBridge se dirigen a Step Functions mediante una regla administrada y requieren permisos paraevents:PutTargets,events:PutRule, yevents:DescribeRule. Si faltan estos permisos en su rol, es posible que se produzca un retraso antes de que Step Functions tenga conocimiento de la finalización de su trabajo. Para obtener más información acerca de EventBridge eventos, consulteEventos deAWSServicios de.

nota

En las tareas Ejecutar un Job (.sync) que admiten sondeos y eventos, es posible que la tarea se complete correctamente mediante eventos. Esto puede ocurrir incluso si su rol carece de los permisos necesarios para realizar encuestas. En este caso, es posible que no note de inmediato que los permisos de votación son incorrectos o faltan. En el caso raro de que Step Functions no se entregue o procese el evento, la ejecución podría quedarse atascada. Para comprobar que los permisos de sondeo están configurados correctamente, puede ejecutar una ejecución en un entorno sin EventBridge eventos de las siguientes formas:

  • Elimine la regla administrada de EventBridge, que se encarga de reenviar eventos a Step Functions. Todas las máquinas de estado de su cuenta comparten esta regla administrada, por lo que debe realizar esta acción solo en una cuenta de prueba o desarrollo para evitar cualquier impacto involuntario en otros equipos de estado. Puede identificar la regla administrada específica que se va a eliminar inspeccionando laResourcecampo utilizado paraevents:PutRuleen la plantilla de política del servicio de destino. La regla administrada se volverá a crear la próxima vez que cree o actualice un equipo de estado que utilice esa integración de servicios. Para obtener más información sobre la eliminación de EventBridge reglas, consulteDeshabilitación o eliminación de una regla.

  • Prueba con Step Functions Local, que no admite el uso de eventos para completar tareas Ejecutar un Job (.sync). Para utilizar Step Functions Local, asuma el rol de IAM utilizado por la máquina de estado. Es posible que tengas que editar la relación de confianza. Establecimiento de la propiedad deAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, yAWS_SESSION_TOKENvariables de entorno a los valores del rol asumido y, a continuación, inicie Step Functions Local mediantejava -jar StepFunctionsLocal.jar. Por último, usa elAWS CLIcon--endpoint-urlpara crear una máquina de estado, iniciar una ejecución y obtener el historial de ejecución. Para obtener más información, consulte Funciones de pasos de prueba de máquinas de estado localmente.

Si se detiene una tarea que utiliza el patrón Ejecutar un Job (.sync), Step Functions hará el mejor esfuerzo para cancelar la tarea. Esto requiere permiso paraCancel,Stop,Terminate, o bienDeleteAcciones de la API de, comobatch:TerminateJoboeks:DeleteCluster. Si faltan estos permisos en su rol, Step Functions no podrá cancelar la tarea y puede acumular cargos adicionales mientras continúa ejecutándose. Para obtener más información sobre cómo detener las tareas de, consulte.Cómo ejecutar un trabajo.

Plantillas de políticas utilizadas para crear roles de IAM

En los temas siguientes se incluyen las plantillas de política que se utilizan cuando elige que Step Functions cree un nuevo rol de automáticamente.

nota

Revise estas plantillas para comprender cómo Step Functions crea sus políticas de IAM y como un ejemplo de cómo crear manualmente políticas de IAM para Step Functions cuando trabaje con otrosAWSServicios de . Para obtener más información sobre las integraciones de servicios de Step Functions, consulteUtilización de AWS Step Functions con otros servicios.