Acceder a recursos en otros Cuentas de AWS en Step Functions - 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.

Acceder a recursos en otros Cuentas de AWS en Step Functions

Step Functions proporciona acceso multicuenta a los recursos configurados en diferentes Cuentas de AWS en sus flujos de trabajo. Con las integraciones de servicios de Step Functions, puede invocar cualquier cuenta cruzada AWS recurso incluso si ese es Servicio de AWS no admite políticas basadas en recursos ni llamadas entre cuentas.

Por ejemplo, supongamos que tiene dos Cuentas de AWS, denominados Desarrollo y Pruebas, de la misma forma Región de AWS. Al utilizar el acceso multicuenta, el flujo de trabajo de la cuenta de desarrollo puede acceder a los recursos, como los buckets de Amazon S3, las tablas de Amazon DynamoDB y las funciones de Lambda que están disponibles en la cuenta de pruebas.

importante

IAMlas funciones y las políticas basadas en recursos delegan el acceso a las cuentas únicamente 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 la Lógica de evaluación de políticas entre cuentas en la Guía del usuario. 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 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 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

En la actualidad, es multiregional AWS SDKintegración y transregión AWS el acceso a los recursos no está disponible en Step Functions.

Conceptos clave de recursos multicuentas

Rol de ejecución

Un IAM rol que Step Functions usa para ejecutar código y acceder AWS recursos, como el AWS Lambda la acción Invoke de la función.

Integración con los servicios

La AWS SDKAPIacciones de integración a las que se puede invocar desde un Task estado de sus flujos de trabajo.

cuenta de origen

Un registro Cuenta de AWS propietario de la máquina de estados y que ha comenzado su ejecución.

cuenta de destino

Un registro Cuenta de AWS a la que puede realizar llamadas entre cuentas.

rol de destino

Una IAM función en la cuenta de destino que asume la máquina de estado para realizar llamadas a los recursos que son propiedad de 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 estados 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

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

  1. Cree un IAM rol en la cuenta de destino que contenga 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.

  2. En la definición del Task estado, especifique la IAM función de destino que asumirá la máquina de estados antes de invocar el recurso multicuenta.

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

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

Para ver un ejemplo, consulte Acceso a varias cuentas AWS recursos en Step Functions los tutoriales.

nota

Puede configurar su máquina de estados para que asuma una IAM función de acceso a los recursos desde múltiples Cuentas de AWS. Sin embargo, una máquina de estados solo puede asumir una IAM función en un momento dado.

Concepto para acceder a recursos entre cuentas

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 IAM rol de destino necesita los permisos necesarios para que una .sync invocación complete este ciclo de sondeo. Para ello, el IAM rol de destino debe tener una política de confianza que permita a la cuenta de origen asumirlo. Además, el IAM rol de destino necesita los permisos necesarios para completar el ciclo 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 de su IAM rol objetivo 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 que AWS Security Token Service AssumeRoleAPIadmite. Para obtener más información, consulte AssumeRoleen la AWS Security Token Service APIReferencia.

{ "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 su máquina de estado, actualice los permisos necesarios para el IAM rol de destino. Para obtener más información, consulte Cómo Step Functions genera IAM políticas para servicios integrados. No se requieren EventBridge los permisos de Amazon 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:*" ] } ] }