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.
Acceso a los recursos en otras funciones de Cuentas de AWS in Step Functions
Step Functions proporciona acceso entre cuentas a recursos configurados en diferentes Cuentas de AWS en los flujos de trabajo. Con las integraciones de servicios de Step Functions, puede invocar cualquier recurso de AWS entre cuentas aunque Servicio de AWS no sea compatible con políticas basadas en recursos o llamadas entre cuentas.
Por ejemplo, supongamos que posee dos Cuentas de AWS, llamadas Desarrollo y Pruebas, en la misma 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 en la Guía del usuario de IAM.
Aunque cada Cuenta de AWS mantiene el control total sobre sus propios recursos, con Step Functions puede reorganizar, intercambiar, añadir o eliminar pasos de los 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 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).
nota
Actualmente, la integración del SDK de AWS entre regiones y el acceso a los recursos de AWS entre regiones no están disponibles en Step Functions.
Conceptos clave de recursos entre cuentas
- Rol de ejecución
-
Un rol de IAM que Step Functions utiliza para ejecutar código y acceder a recursos de AWS, como la acción Invoke de la función AWS Lambda.
- Integración con los servicios
-
Las acciones de la API de integración del SDK de AWS a las que se puede llamar desde un estado
Task
en los flujos de trabajo. - cuenta de origen
Una Cuenta de AWS que es propietaria de la máquina de estado y que ha comenzado su ejecución.
- cuenta de destino
Una 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)
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 campoResource
de la definición de estadoTask
.
Invocación de recursos entre cuentas
Para invocar un recurso entre cuentas en los flujos de trabajo, haga lo siguiente:
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.
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.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 el rol de IAM de destino para llamar al recurso de AWS.
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 recursos entre cuentas de AWS en Step Functions 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.

Acceso entre cuentas para el patrón de integración .sync
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
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 caracteres compatibles con la API AssumeRole
de AWS Security Token Service. Para obtener más información, consulte AssumeRole en la Referencia de la API de AWS Security Token Service.
{ "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
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 Cómo Step Functions genera políticas de IAM para servicios integrados. No se requieren los permisos de Amazon EventBridge de las políticas de ejemplo. 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:
region
:accountID
:stateMachine:stateMachineName
" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:region
:accountID
:execution:stateMachineName
:*" ] } ] }