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.
Generación de políticas de IAM para servicios integrados por Steps Functions
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 optimizar las integraciones, Step Functions creará una política con todos los permisos y funciones necesarios para su máquina de estados.
Consejo: Puedes ver ejemplos de políticas en cada una de las páginas de servicio que aparecen a continuación. Integración de los servicios optimizados
-
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 estatal necesite para interactuar con el servicio.
Recursos dinámicos y estáticos
Los recursos estáticos se definen directamente en el estado de la tarea de su máquina de estados. Si incluye la información sobre los recursos a los que desea llamar directamente en los estados de sus tareas, Step Functions puede crear un rol de IAM solo 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 transfiere recursos dinámicos a su tarea, Step Functions no puede reducir automáticamente los permisos, por lo que Step Functions creará una política más permisiva que especifique:. "Resource": "*"
Permisos adicionales para las tareas que utilizan .sync
Las tareas que utilizan el patrón Run a Job (.sync) requieren 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 Describe
o acciones Get
de API. Por ejemplo, para Amazon ECS, la máquina de estado debe tener permiso de permiso paraecs:DescribeTasks
, ya que AWS Glue la máquina de estado requiere permisos de permiso paraglue: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 se hace 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
, yevents:DescribeRule
. Si el rol no tiene estos permisos, es posible que se produzca un retraso antes de que Step Functions sepa que ha completado su trabajo. Para obtener más información sobre EventBridge los eventos, consulte Eventos de AWS los servicios.
Solución de problemas con los flujos de trabajo de .sync
En el caso de las tareas de Run a Job (.sync) que admiten tanto el sondeo como los eventos, la tarea puede completarse correctamente mediante eventos, incluso cuando el rol no tenga los permisos necesarios para el sondeo.
En el escenario anterior, es posible que no note que los permisos de sondeo faltan o son incorrectos. En el raro caso de que Step Functions no entregue o procese un 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
Como todas las máquinas de estado de su cuenta comparten las reglas gestionadas, debe utilizar una cuenta de prueba o de desarrollo para evitar que se vean afectadas de forma involuntaria otras máquinas de estado.
-
Puede identificar la regla administrada específica que desea eliminar inspeccionando el campo
Resource
utilizado paraevents: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, consulta Cómo deshabilitar o eliminar una regla.
Permisos para cancelar flujos de trabajo
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 paraCancel
, Stop
Terminate
, o acciones de la Delete
API, 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.
Más información sobre los patrones de integración
Para obtener más información sobre las tareas sincrónicas, consulteDescubrimiento de los patrones de integración de servicios en Step Functions.