Accès à des ressources dans d'autres Comptes AWS dans Step Functions - AWS Step Functions

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès à des ressources dans d'autres Comptes AWS dans Step Functions

Step Functions fournit un accès entre comptes à des ressources configurées dans différents Comptes AWS dans vos flux de travail. Grâce aux intégrations de services Step Functions, vous pouvez invoquer n'importe quel compte croisé AWS ressource même si c'est Service AWS ne prend pas en charge les politiques basées sur les ressources ni les appels entre comptes.

Supposons, par exemple, que vous en possédiez deux Comptes AWS, appelé Development and Testing, dans le même Région AWS. Grâce à l'accès entre comptes, votre flux de travail dans le compte de développement peut accéder à des ressources, telles que les compartiments Amazon S3, les tables Amazon DynamoDB et les fonctions Lambda disponibles dans le compte de test.

Important

IAMles rôles et les politiques basées sur les ressources délèguent l'accès entre les comptes uniquement au sein d'une même partition. Par exemple, supposons que vous avez un compte dans la région USA Ouest (Californie du Nord) sur la partition aws standard. Vous avez également un compte dans la région Chine (Beijing) sur la partition aws-cn. Vous ne pouvez pas utiliser une politique basée sur les ressources d’Amazon S3 dans votre compte en Chine (Beijing) pour autoriser l'accès aux utilisateurs de votre compte aws standard.

Pour plus d'informations sur l'accès entre comptes, consultez la section Logique d'évaluation des politiques entre comptes dans le guide de l'IAMutilisateur.

Bien que chaque Compte AWS conserve un contrôle total sur ses propres ressources. Grâce à Step Functions, vous pouvez réorganiser, échanger, ajouter ou supprimer des étapes dans vos flux de travail sans avoir à personnaliser le moindre code. Vous pouvez le faire même si les processus changent ou que les applications évoluent.

Vous pouvez également invoquer des exécutions de machines à états imbriqués afin qu'elles soient disponibles sur différents comptes. Cela permet de séparer et d'isoler efficacement vos flux de travail. Lorsque vous utilisez le modèle d'intégration des .syncservices dans vos flux de travail qui accèdent à un autre flux de travail Step Functions dans un autre compte, Step Functions utilise un sondage qui consomme le quota qui vous a été assigné. Pour de plus amples informations, veuillez consulter Exécuter une tâche (.sync).

Note

Actuellement, interrégional AWS SDKintégration et interrégional AWS l'accès aux ressources n'est pas disponible dans Step Functions.

Concepts clés en matière de ressources intercomptes

Rôle d'exécution

Un IAM rôle que Step Functions utilise pour exécuter du code et accéder AWS des ressources, telles que AWS Lambda action Invoke de la fonction.

Intégration des services

Le AWS SDKAPIactions d'intégration qui peuvent être appelées depuis un Task état dans vos flux de travail.

compte source

Un Compte AWS qui possède la machine d'État et qui a commencé son exécution.

compte cible

Un Compte AWS vers lequel vous passez des appels entre comptes.

rôle cible

IAMRôle dans le compte cible que la machine d'état assume pour effectuer des appels aux ressources détenues par le compte cible.

Exécuter un Job (.sync)

Un modèle d'intégration de services utilisé pour appeler des services, tels que AWS Batch. Cela oblige également une machine à états Step Functions à attendre la fin d'une tâche avant de passer à l'état suivant. Pour indiquer que Step Functions doit attendre, ajoutez le .sync suffixe dans le Resource champ de votre définition Task d'état.

Invoquer des ressources entre comptes

Pour invoquer une ressource multi-comptes dans vos flux de travail, procédez comme suit :

  1. Créez un IAM rôle dans le compte cible qui contient la ressource. Ce rôle accorde au compte source, contenant la machine d'état, l'autorisation d'accéder aux ressources du compte cible.

  2. Dans la définition de Task l'état, spécifiez le IAM rôle cible à assumer par la machine d'état avant d'appeler la ressource multi-comptes.

  3. Modifiez la politique de confiance dans le IAM rôle cible pour permettre au compte source d'assumer temporairement ce rôle. La politique de confiance doit inclure le nom de ressource Amazon (ARN) de la machine d'état définie dans le compte source. Définissez également les autorisations appropriées dans le IAM rôle cible pour appeler le AWS ressource.

  4. Mettez à jour le rôle d'exécution du compte source pour inclure l'autorisation requise pour assumer le IAM rôle cible.

Pour un exemple, consultez Accès à plusieurs comptes AWS ressources dans Step Functions les didacticiels.

Note

Vous pouvez configurer votre machine d'état pour qu'elle assume un IAM rôle d'accès aux ressources à partir de plusieurs Comptes AWS. Cependant, une machine à états ne peut assumer qu'un seul IAM rôle à la fois.

Concept d'accès aux ressources multicomptes

Accès entre comptes pour le modèle d'intégration .sync

Lorsque vous utilisez les modèles d'intégration des .sync services dans vos flux de travail, Step Functions interroge la ressource inter-comptes invoquée pour confirmer que la tâche est terminée. Cela entraîne un léger décalage entre le moment où la tâche est réellement terminée et le moment où Step Functions reconnaît que la tâche est terminée. Le IAM rôle cible a besoin des autorisations requises pour effectuer un .sync appel afin de terminer cette boucle d'interrogation. Pour ce faire, le IAM rôle cible doit disposer d'une politique de confiance qui autorise le compte source à l'assumer. En outre, le IAM rôle cible a besoin des autorisations requises pour terminer la boucle d'interrogation.

Note

Pour les flux de travail express imbriqués, arn:aws:states:::states:startExecution.sync n'est actuellement pas pris en charge. Utilisez arn:aws:states:::aws-sdk:sfn:startSyncExecution à la place.

Mise à jour de la politique de confiance pour les appels .sync

Mettez à jour la politique de confiance de votre IAM rôle cible comme indiqué dans l'exemple suivant. Le sts:ExternalId champ contrôle également qui peut assumer le rôle. Le nom de la machine à états ne doit inclure que des caractères indiquant AWS Security Token Service AssumeRoleAPIsoutient. Pour plus d'informations, consultez AssumeRolele AWS Security Token Service APIRéférence.

{ "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" } } } ] }

Autorisations requises pour les appels .sync

Pour accorder les autorisations requises pour votre machine d'état, mettez à jour les autorisations requises pour le IAM rôle cible. Pour de plus amples informations, veuillez consulter Comment Step Functions génère IAM des politiques pour les services intégrés. Les EventBridge autorisations Amazon indiquées dans les exemples de politiques ne sont pas requises. Par exemple, pour démarrer une machine à états, ajoutez les autorisations suivantes.

{ "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:*" ] } ] }