Création d'un rôle IAM pour votre machine d'état - 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.

Création d'un rôle IAM pour votre machine d'état

AWS Step Functions peut exécuter du code et accéder à AWS des ressources (par exemple en invoquant une AWS Lambda fonction). Pour maintenir la sécurité, vous devez accorder à Step Functions l'accès à ces ressources en utilisant un rôle IAM.

Ce guide vous permet de tirer parti des rôles IAM générés automatiquement qui sont valides pour la AWS région dans laquelle vous créez la machine à états. Tutoriels pour Step Functions Cependant, vous pouvez créer votre propre rôle IAM pour une machine à états.

Lorsque vous créez une politique IAM à utiliser par vos machines d'état, la politique doit inclure les autorisations que vous souhaitez que les machines d'état assument. Vous pouvez utiliser une politique AWS gérée existante comme exemple ou vous pouvez créer une politique personnalisée à partir de zéro qui répond à vos besoins spécifiques. Pour plus d'informations, consultez la section Création de politiques IAM dans le Guide de l'utilisateur IAM

Pour créer votre propre rôle IAM pour une machine à états, suivez les étapes décrites dans cette section.

Dans cet exemple, vous créez un rôle IAM autorisé à appeler une fonction Lambda.

Création d'un rôle pour Step Functions

  1. Connectez-vous à la console IAM, puis sélectionnez Rôles, Créer un rôle.

  2. Sur la page Select trusted entity, sous AWS service, sélectionnez Step Functions dans la liste, puis choisissez Next : Permissions.

  3. Dans la page Stratégie d'autorisations attachée, choisissez Suivant : Révision.

  4. Sur la page Review (Révision), entrez StepFunctionsLambdaRole pour Role Name (Nom du rôle), puis choisissez Create role (Créer un rôle).

    Le rôle IAM apparaît dans la liste des rôles.

Pour plus d'informations sur les autorisations et les politiques IAM, consultez la section Gestion des accès dans le guide de l'utilisateur IAM.

Prévenir le problème des adjoints confus entre les services

Le problème de député confus est un problème de sécurité dans lequel une entité qui n’est pas autorisée à effectuer une action peut contraindre une entité plus privilégiée à le faire. En AWS, l'usurpation d'identité interservices peut entraîner un problème de confusion chez les adjoints. L’usurpation d’identité entre services peut se produire lorsqu’un service (le service appelant) appelle un autre service (le service appelé). Ce type d’usurpation d’identité peut se produire entre comptes et entre services. Le service appelant peut être manipulé et ses autorisations utilisées pour agir sur les ressources d’un autre client auxquelles on ne serait pas autorisé d’accéder autrement.

Pour éviter toute confusion chez les adjoints, AWS fournit des outils qui vous aident à protéger vos données pour tous les services, les responsables de service ayant accès aux ressources de votre compte. Cette section se concentre sur la prévention de la confusion entre les services, en particulier à AWS Step Functions ; toutefois, vous pouvez en savoir plus à ce sujet dans la section du guide de l'utilisateur de l'IAM consacrée au problème de confusion chez les adjoints.

Nous recommandons d'utiliser les clés contextuelles de condition aws:SourceAccountglobale aws:SourceArnet les clés contextuelles dans les politiques de ressources afin de limiter les Step Functions autorisations accordées à un autre service pour accéder à vos ressources. Utilisez aws:SourceArn si vous souhaitez qu’une seule ressource soit associée à l’accès entre services. Utilisez aws:SourceAccount si vous souhaitez autoriser l’association d’une ressource de ce compte à l’utilisation interservices.

Le moyen le plus efficace de se protéger contre le problème de député confus consiste à utiliser la clé de contexte de condition globale aws:SourceArn avec l’ARN complet de la ressource. Si vous ne connaissez pas l'ARN complet de la ressource, ou si vous spécifiez plusieurs ressources, utilisez la clé de condition contextuelle aws:SourceArn globale avec des caractères génériques (*) pour les parties inconnues de l'ARN. Par exemple, arn:aws:states:*:111122223333:*.

Voici un exemple de politique fiable qui montre comment utiliser aws:SourceArn et aws:SourceAccount avec Step Functions pour éviter la confusion liée aux adjoints.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "states.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*" }, "StringEquals":{ "aws:SourceAccount":"111122223333" } } } ] }

Attacher une stratégie en ligne

Step Functions peut contrôler d'autres services directement dans un Task état. Ajoutez des politiques intégrées pour permettre à Step Functions d'accéder aux actions d'API des services que vous devez contrôler.

  1. Ouvrez la console IAM, choisissez Roles, recherchez votre rôle Step Functions, puis sélectionnez ce rôle.

  2. Sélectionnez Add inline policy (Ajouter une stratégie en ligne).

  3. Utilisez l'Éditeur visuel dans l'onglet JSON pour créer des stratégies pour votre rôle.

Pour plus d'informations sur la manière de AWS Step Functions contrôler d'autres AWS services, consultezUtilisation AWS Step Functions avec d'autres services.

Note

Pour des exemples de politiques IAM créées par la console Step Functions, consultezPolitiques IAM pour les services intégrés.