

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.

# Identity and Access Management dans Step Functions
<a name="auth-and-access-control-sfn"></a>

Les sections suivantes fournissent des détails sur la façon dont vous pouvez utiliser [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) et Step Functions pour sécuriser vos ressources en contrôlant qui peut y accéder. Par exemple, vous apprendrez à fournir des informations d'identification AWS Step Functions avec des autorisations d'accès aux AWS ressources, telles que la récupération de données d'événements à partir d'autres AWS ressources.

Gestion des identités et des accès AWS (IAM) est un outil Service AWS qui permet à un administrateur de contrôler en toute sécurité l'accès aux AWS ressources. Les administrateurs IAM contrôlent qui peut être *authentifié* (connecté) et *autorisé (autorisé*) à utiliser les ressources Step Functions. IAM est un Service AWS outil que vous pouvez utiliser sans frais supplémentaires.

## Public ciblé
<a name="security_iam_audience"></a>

La façon dont vous utilisez Gestion des identités et des accès AWS (IAM) varie en fonction de votre rôle :
+ **Utilisateur du service** : demandez des autorisations à votre administrateur si vous ne pouvez pas accéder aux fonctionnalités (voir [Résolution des problèmes d'identité et d'accès dans Step Functions](security_iam_troubleshoot.md))
+ **Administrateur du service** : déterminez l’accès des utilisateurs et soumettez les demandes d’autorisation (voir [Comment AWS Step Functions fonctionne avec IAM](security_iam_service-with-iam.md))
+ **Administrateur IAM** : rédigez des politiques pour gérer l’accès (voir [Exemples de politiques basées sur l'identité pour AWS Step Functions](security_iam_id-based-policy-examples.md))

## Authentification par des identités
<a name="security_iam_authentication"></a>

L'authentification est la façon dont vous vous connectez à AWS l'aide de vos informations d'identification. Vous devez être authentifié en tant qu'utilisateur IAM ou en assumant un rôle IAM. Utilisateur racine d'un compte AWS

Vous pouvez vous connecter en tant qu'identité fédérée à l'aide d'informations d'identification provenant d'une source d'identité telle que AWS IAM Identity Center (IAM Identity Center), d'une authentification unique ou d'informations d'identification. Google/Facebook Pour plus d’informations sur la connexion, consultez [Connexion à votre Compte AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dans le *Guide de l’utilisateur Connexion à AWS *.

Pour l'accès par programmation, AWS fournit un SDK et une CLI pour signer les demandes de manière cryptographique. Pour plus d’informations, consultez [Signature AWS Version 4 pour les demandes d’API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dans le *Guide de l’utilisateur IAM*.

### Compte AWS utilisateur root
<a name="security_iam_authentication-rootuser"></a>

 Lorsque vous créez un Compte AWS, vous commencez par une seule identité de connexion appelée *utilisateur Compte AWS root* qui dispose d'un accès complet à toutes Services AWS les ressources. Il est vivement déconseillé d’utiliser l’utilisateur racine pour vos tâches quotidiennes. Pour les tâches qui requièrent des informations d’identification de l’utilisateur racine, consultez [Tâches qui requièrent les informations d’identification de l’utilisateur racine](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dans le *Guide de l’utilisateur IAM*. 

### Identité fédérée
<a name="security_iam_authentication-federated"></a>

Il est recommandé d'obliger les utilisateurs humains à utiliser la fédération avec un fournisseur d'identité pour accéder à Services AWS l'aide d'informations d'identification temporaires.

Une *identité fédérée* est un utilisateur provenant de l'annuaire de votre entreprise, de votre fournisseur d'identité Web ou Directory Service qui y accède à Services AWS l'aide d'informations d'identification provenant d'une source d'identité. Les identités fédérées assument des rôles qui fournissent des informations d’identification temporaires.

Pour une gestion des accès centralisée, nous vous recommandons d’utiliser AWS IAM Identity Center. Pour plus d’informations, consultez [Qu’est-ce que IAM Identity Center ?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

### Utilisateurs et groupes IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* est une identité qui dispose d’autorisations spécifiques pour une seule personne ou application. Nous vous recommandons d’utiliser ces informations d’identification temporaires au lieu des utilisateurs IAM avec des informations d’identification à long terme. Pour plus d'informations, voir [Exiger des utilisateurs humains qu'ils utilisent la fédération avec un fournisseur d'identité pour accéder à AWS l'aide d'informations d'identification temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) dans le *guide de l'utilisateur IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spécifient une collection d’utilisateurs IAM et permettent de gérer plus facilement les autorisations pour de grands ensembles d’utilisateurs. Pour plus d’informations, consultez [Cas d’utilisation pour les utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dans le *Guide de l’utilisateur IAM*.

### Rôles IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* est une identité dotée d’autorisations spécifiques qui fournit des informations d’identification temporaires. Vous pouvez assumer un rôle en [passant d'un rôle d'utilisateur à un rôle IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou en appelant une opération d' AWS API AWS CLI ou d'API. Pour plus d’informations, consultez [Méthodes pour endosser un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le *Guide de l’utilisateur IAM*.

Les rôles IAM sont utiles pour l’accès des utilisateurs fédérés, les autorisations temporaires des utilisateurs IAM, les accès intercompte, les accès entre services et les applications exécutées sur Amazon EC2. Pour plus d’informations, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.

## Gestion de l’accès à l’aide de politiques
<a name="security_iam_access-manage"></a>

Vous contrôlez l'accès en AWS créant des politiques et en les associant à AWS des identités ou à des ressources. Une politique définit les autorisations lorsqu'elles sont associées à une identité ou à une ressource. AWS évalue ces politiques lorsqu'un directeur fait une demande. La plupart des politiques sont stockées AWS sous forme de documents JSON. Pour plus d’informations les documents de politique JSON, consultez [Vue d’ensemble des politiques JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dans le *Guide de l’utilisateur IAM*.

À l’aide de politiques, les administrateurs précisent qui a accès à quoi en définissant quel **principal** peut effectuer des **actions** sur quelles **ressources** et dans quelles **conditions**.

Par défaut, les utilisateurs et les rôles ne disposent d’aucune autorisation. Un administrateur IAM crée des politiques IAM et les ajoute aux rôles, que les utilisateurs peuvent ensuite assumer. Les politiques IAM définissent les autorisations quelle que soit la méthode que vous utilisez pour exécuter l’opération.

### Politiques basées sur l’identité
<a name="security_iam_access-manage-id-based-policies"></a>

Les stratégies basées sur l’identité sont des documents de stratégie d’autorisations JSON que vous attachez à une identité (utilisateur, groupe ou rôle). Ces politiques contrôlent les actions que peuvent exécuter ces identités, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l’identité, consultez [Définition d’autorisations IAM personnalisées avec des politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le *Guide de l’utilisateur IAM*.

Les politiques basées sur l’identité peuvent être des *politiques intégrées* (intégrées directement dans une seule identité) ou des *politiques gérées (politiques* autonomes associées à plusieurs identités). Pour découvrir comment choisir entre des politiques gérées et en ligne, consultez [Choix entre les politiques gérées et les politiques en ligne](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dans le *Guide de l’utilisateur IAM*.

### Politiques basées sur les ressources
<a name="security_iam_access-manage-resource-based-policies"></a>

Les politiques basées sur les ressources sont des documents de politique JSON que vous attachez à une ressource. Les exemples incluent *les politiques de confiance de rôle* IAM et les *stratégies de compartiment* Amazon S3. Dans les services qui sont compatibles avec les politiques basées sur les ressources, les administrateurs de service peuvent les utiliser pour contrôler l’accès à une ressource spécifique. Vous devez [spécifier un principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dans une politique basée sur les ressources.

Les politiques basées sur les ressources sont des politiques en ligne situées dans ce service. Vous ne pouvez pas utiliser les politiques AWS gérées par IAM dans une stratégie basée sur les ressources.

### Autres types de politique
<a name="security_iam_access-manage-other-policies"></a>

AWS prend en charge des types de politiques supplémentaires qui peuvent définir les autorisations maximales accordées par les types de politiques les plus courants :
+ **Limites d’autorisations** : une limite des autorisations définit le nombre maximum d’autorisations qu’une politique basée sur l’identité peut accorder à une entité IAM. Pour plus d’informations, consultez [Limites d’autorisations pour des entités IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dans le *Guide de l’utilisateur IAM*.
+ **Politiques de contrôle des services (SCPs)** — Spécifiez les autorisations maximales pour une organisation ou une unité organisationnelle dans AWS Organizations. Pour plus d’informations, consultez [Politiques de contrôle de service](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans le *Guide de l’utilisateur AWS Organizations *.
+ **Politiques de contrôle des ressources (RCPs)** : définissez le maximum d'autorisations disponibles pour les ressources de vos comptes. Pour plus d'informations, voir [Politiques de contrôle des ressources (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) dans le *guide de AWS Organizations l'utilisateur*.
+ **Politiques de session** : politiques avancées que vous passez en tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur fédéré. Pour plus d’informations, consultez [Politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dans le *Guide de l’utilisateur IAM*.

### Plusieurs types de politique
<a name="security_iam_access-manage-multiple-policies"></a>

Lorsque plusieurs types de politiques s’appliquent à la requête, les autorisations en résultant sont plus compliquées à comprendre. Pour savoir comment AWS déterminer s'il faut autoriser une demande lorsque plusieurs types de politiques sont impliqués, consultez la section [Logique d'évaluation des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) dans le *guide de l'utilisateur IAM*.

## Contrôle d’accès
<a name="access-control-sfn"></a>

Vous pouvez disposer d'informations d'identification valides pour authentifier vos demandes, mais vous ne pouvez pas créer de ressources Step Functions ou y accéder sans autorisation. Par exemple, vous devez être autorisé à invoquer AWS Lambda les cibles Amazon Simple Notification Service (Amazon SNS) et Amazon Simple Queue Service (Amazon SQS) associées à vos règles Step Functions.

Les sections suivantes décrivent comment gérer les autorisations pour Step Functions.
+ [Création d'un rôle IAM pour votre machine à états dans Step Functions](procedure-create-iam-role.md)
+ [Création d'autorisations granulaires pour les utilisateurs non administrateurs dans Step Functions](concept-create-iam-advanced.md)
+ [Création de points de terminaison Amazon VPC pour Step Functions](vpc-endpoints.md)
+ [Comment Step Functions génère des politiques IAM pour les services intégrés](service-integration-iam-templates.md)
+ [Politiques IAM pour l'utilisation des états cartographiques distribués](iam-policies-eg-dist-map.md)

# Comment AWS Step Functions fonctionne avec IAM
<a name="security_iam_service-with-iam"></a>

Avant d'utiliser IAM pour gérer l'accès à Step Functions, découvrez quelles fonctionnalités IAM peuvent être utilisées avec Step Functions.

Le tableau suivant répertorie les fonctionnalités IAM que vous pouvez utiliser avec AWS Step Functions :


| Fonctionnalité IAM | Support de Step Functions | 
| --- | --- | 
|  [Politiques basées sur l’identité](#security_iam_service-with-iam-id-based-policies)  |   Oui  | 
|  [Politiques basées sur les ressources](#security_iam_service-with-iam-resource-based-policies)  |   Non   | 
|  [Actions de politique](#security_iam_service-with-iam-id-based-policies-actions)  |   Oui  | 
|  [Ressources de politique](#security_iam_service-with-iam-id-based-policies-resources)  |   Oui  | 
|  [Clés de condition de politique (spécifiques au service)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Oui  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   Non   | 
|  [ABAC (identifications dans les politiques)](#security_iam_service-with-iam-tags)  |   Partielle  | 
|  [Informations d’identification temporaires](#security_iam_service-with-iam-roles-tempcreds)  |   Oui  | 
|  [Autorisations de principal](#security_iam_service-with-iam-principal-permissions)  |   Oui  | 
|  [Rôles de service](#security_iam_service-with-iam-roles-service)  |   Oui  | 
|  [Rôles liés à un service](#security_iam_service-with-iam-roles-service-linked)  |   Non   | 

Pour obtenir une vue d'ensemble de la façon dont Step Functions et les autres AWS services fonctionnent avec la plupart des fonctionnalités IAM, consultez les [AWS services compatibles avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dans le guide de l'utilisateur *IAM*.

## Politiques basées sur l'identité pour Step Functions
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Prend en charge les politiques basées sur l’identité :** oui

Les politiques basées sur l’identité sont des documents de politique d’autorisations JSON que vous pouvez attacher à une identité telle qu’un utilisateur, un groupe d’utilisateurs ou un rôle IAM. Ces politiques contrôlent quel type d’actions des utilisateurs et des rôles peuvent exécuter, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l’identité, consultez [Définition d’autorisations IAM personnalisées avec des politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le *Guide de l’utilisateur IAM*.

Avec les politiques IAM basées sur l’identité, vous pouvez spécifier des actions et ressources autorisées ou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. Pour découvrir tous les éléments que vous utilisez dans une politique JSON, consultez [Références des éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dans le *Guide de l’utilisateur IAM*.

### Exemples de politiques basées sur l'identité pour Step Functions
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Pour consulter des exemples de politiques basées sur l'identité de Step Functions, consultez. [Exemples de politiques basées sur l'identité pour AWS Step Functions](security_iam_id-based-policy-examples.md)

## Politiques basées sur les ressources au sein de Step Functions
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Prend en charge les politiques basées sur les ressources :** non 

Les politiques basées sur les ressources sont des documents de politique JSON que vous attachez à une ressource. Par exemple, les *politiques de confiance de rôle* IAM et les *politiques de compartiment* Amazon S3 sont des politiques basées sur les ressources. Dans les services qui sont compatibles avec les politiques basées sur les ressources, les administrateurs de service peuvent les utiliser pour contrôler l’accès à une ressource spécifique. Pour la ressource dans laquelle se trouve la politique, cette dernière définit quel type d’actions un principal spécifié peut effectuer sur cette ressource et dans quelles conditions. Vous devez [spécifier un principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dans une politique basée sur les ressources. Les principaux peuvent inclure des comptes, des utilisateurs, des rôles, des utilisateurs fédérés ou. Services AWS

Pour permettre un accès intercompte, vous pouvez spécifier un compte entier ou des entités IAM dans un autre compte en tant que principal dans une politique basée sur les ressources. Pour plus d’informations, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.

## Actions politiques pour Step Functions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Prend en charge les actions de politique :** oui

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément `Action` d’une politique JSON décrit les actions que vous pouvez utiliser pour autoriser ou refuser l’accès à une politique. Intégration d’actions dans une politique afin d’accorder l’autorisation d’exécuter les opérations associées.

Pour consulter la liste des actions de Step Functions, voir [Resources Defined by AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) dans le *Service Authorization Reference*.

Les actions de politique dans Step Functions utilisent le préfixe suivant avant l'action :

```
states
```

Pour indiquer plusieurs actions dans une seule déclaration, séparez-les par des virgules.

```
"Action": [
          "states:action1",
          "states:action2"
             ]
```

Pour consulter des exemples de politiques basées sur l'identité de Step Functions, consultez. [Exemples de politiques basées sur l'identité pour AWS Step Functions](security_iam_id-based-policy-examples.md)

## Ressources relatives aux politiques pour Step Functions
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Prend en charge les ressources de politique :** oui

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément de politique JSON `Resource` indique le ou les objets auxquels l’action s’applique. Il est recommandé de définir une ressource à l’aide de son [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, utilisez un caractère générique (\$1) afin d’indiquer que l’instruction s’applique à toutes les ressources.

```
"Resource": "*"
```

Pour consulter la liste des types de ressources Step Functions et leurs caractéristiques ARNs, reportez-vous à la section [Actions définies par AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) dans le *Service Authorization Reference*. Pour savoir avec quelles actions vous pouvez spécifier l'ARN de chaque ressource, voir [Ressources définies par AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

Pour consulter des exemples de politiques basées sur l'identité de Step Functions, consultez. [Exemples de politiques basées sur l'identité pour AWS Step Functions](security_iam_id-based-policy-examples.md)

## Clés de conditions de politique pour Step Functions
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Prend en charge les clés de condition de politique spécifiques au service :** oui

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément `Condition` indique à quel moment les instructions s’exécutent en fonction de critères définis. Vous pouvez créer des expressions conditionnelles qui utilisent des [opérateurs de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande. Pour voir toutes les clés de condition AWS globales, voir les clés de [contexte de condition AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *guide de l'utilisateur IAM*.

Pour consulter la liste des clés de condition de Step Functions, reportez-vous à la section [Clés de condition AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) correspondantes dans la *référence d'autorisation du service*. Pour savoir avec quelles actions et ressources vous pouvez utiliser une clé de condition, voir [Ressources définies par AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

 Si votre politique doit dépendre du nom principal du service Step Functions, nous vous recommandons de vérifier l'existence ou l'inexistence de ce nom `states.amazonaws.com` dans la clé de [contexte à `aws:PrincipalServiceNamesList` plusieurs valeurs, plutôt que dans la clé](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys) de `aws:PrincipalServiceName` condition. La clé de `aws:PrincipalServiceName` condition ne contient qu'une seule entrée de la liste des noms principaux de service et ce n'est pas toujours le cas`states.amazonaws.com`. Le bloc de condition suivant montre comment vérifier l'existence de`states.amazonaws.com`. 

```
{
    "Condition": {
        "ForAnyValue:StringEquals": {
            "aws:PrincipalServiceNamesList": "states.amazonaws.com"
        }
    }
}
```

Pour consulter des exemples de politiques basées sur l'identité de Step Functions, consultez. [Exemples de politiques basées sur l'identité pour AWS Step Functions](security_iam_id-based-policy-examples.md)

## ACLs dans Step Functions
<a name="security_iam_service-with-iam-acls"></a>

**Supports ACLs :** Non 

Les listes de contrôle d'accès (ACLs) contrôlent les principaux (membres du compte, utilisateurs ou rôles) autorisés à accéder à une ressource. ACLs sont similaires aux politiques basées sur les ressources, bien qu'elles n'utilisent pas le format de document de politique JSON.

## ABAC avec Step Functions
<a name="security_iam_service-with-iam-tags"></a>

**Prend en charge ABAC (identifications dans les politiques) :** partiellement

Le contrôle d’accès par attributs (ABAC) est une stratégie d’autorisation qui définit les autorisations en fonction des attributs nommés balise. Vous pouvez associer des balises aux entités et aux AWS ressources IAM, puis concevoir des politiques ABAC pour autoriser les opérations lorsque la balise du principal correspond à la balise de la ressource.

Pour contrôler l’accès basé sur des étiquettes, vous devez fournir les informations d’étiquette dans l’[élément de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) d’une politique utilisant les clés de condition `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` ou `aws:TagKeys`.

Si un service prend en charge les trois clés de condition pour tous les types de ressources, alors la valeur pour ce service est **Oui**. Si un service prend en charge les trois clés de condition pour certains types de ressources uniquement, la valeur est **Partielle**.

Pour plus d’informations sur ABAC, consultez [Définition d’autorisations avec l’autorisation ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) dans le *Guide de l’utilisateur IAM*. Pour accéder à un didacticiel décrivant les étapes de configuration de l’ABAC, consultez [Utilisation du contrôle d’accès par attributs (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) dans le *Guide de l’utilisateur IAM*.

## Utilisation d'informations d'identification temporaires avec Step Functions
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Prend en charge les informations d’identification temporaires :** oui

Les informations d'identification temporaires fournissent un accès à court terme aux AWS ressources et sont automatiquement créées lorsque vous utilisez la fédération ou que vous changez de rôle. AWS recommande de générer dynamiquement des informations d'identification temporaires au lieu d'utiliser des clés d'accès à long terme. Pour plus d’informations, consultez [Informations d’identification de sécurité temporaires dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) et [Services AWS compatibles avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dans le *Guide de l’utilisateur IAM*.

## Autorisations principales interservices pour Step Functions
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Prend en charge les sessions d’accès direct (FAS) :** oui

 Les sessions d'accès direct (FAS) utilisent les autorisations du principal appelant et Service AWS, combinées Service AWS à la demande d'envoi de demandes aux services en aval. Pour plus de détails sur la politique relative à la transmission de demandes FAS, consultez la section [Sessions de transmission d’accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Rôles de service pour Step Functions
<a name="security_iam_service-with-iam-roles-service"></a>

**Prend en charge les rôles de service :** oui

 Un rôle de service est un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) qu’un service endosse pour accomplir des actions en votre nom. Un administrateur IAM peut créer, modifier et supprimer un rôle de service à partir d’IAM. Pour plus d’informations, consultez [Création d’un rôle pour la délégation d’autorisations à un Service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dans le *Guide de l’utilisateur IAM*. 

**Avertissement**  
La modification des autorisations associées à un rôle de service peut perturber les fonctionnalités de Step Functions. Modifiez les rôles de service uniquement lorsque Step Functions fournit des instructions à cet effet.

## Rôles liés à un service pour Step Functions
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Prend en charge les rôles liés à un service :** non 

 Un rôle lié à un service est un type de rôle de service lié à un. Service AWS Le service peut endosser le rôle afin d’effectuer une action en votre nom. Les rôles liés à un service apparaissent dans votre Compte AWS répertoire et appartiennent au service. Un administrateur IAM peut consulter, mais ne peut pas modifier, les autorisations concernant les rôles liés à un service. 

Pour plus d’informations sur la création ou la gestion des rôles liés à un service, consultez [Services AWS qui fonctionnent avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Recherchez un service dans le tableau qui inclut un `Yes` dans la colonne **Rôle lié à un service**. Choisissez le lien **Oui** pour consulter la documentation du rôle lié à ce service.

# Exemples de politiques basées sur l'identité pour AWS Step Functions
<a name="security_iam_id-based-policy-examples"></a>

Par défaut, les utilisateurs et les rôles ne sont pas autorisés à créer ou à modifier les ressources Step Functions. Pour octroyer aux utilisateurs des autorisations d’effectuer des actions sur les ressources dont ils ont besoin, un administrateur IAM peut créer des politiques IAM.

Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, consultez [Création de politiques IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) dans le *Guide de l’utilisateur IAM*.

Pour plus de détails sur les actions et les types de ressources définis par Step Functions, y compris le format de chaque type de ressource, voir [Actions, ressources et clés de condition AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) dans la *référence d'autorisation du service*. ARNs 

**Topics**
+ [Bonnes pratiques en matière de politiques](#security_iam_service-with-iam-policy-best-practices)
+ [Utilisation de la console Step Functions](#security_iam_id-based-policy-examples-console)
+ [Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations](#security_iam_id-based-policy-examples-view-own-permissions)

## Bonnes pratiques en matière de politiques
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer des ressources Step Functions dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
+ **Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations** à vos utilisateurs et à vos charges de travail, utilisez les *politiques AWS gérées* qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez [politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [politiques gérées par AWS pour les activités professionnelles](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.
+ **Accordez les autorisations de moindre privilège** : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées *autorisations de moindre privilège*. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez [politiques et autorisations dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès** : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que CloudFormation. Pour plus d’informations, consultez [Conditions pour éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles** : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez [Validation de politiques avec IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dans le *Guide de l’utilisateur IAM*.
+ **Exiger l'authentification multifactorielle (MFA**) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez [Sécurisation de l’accès aux API avec MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dans le *Guide de l’utilisateur IAM*.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

## Utilisation de la console Step Functions
<a name="security_iam_id-based-policy-examples-console"></a>

Pour accéder à la AWS Step Functions console, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les détails relatifs aux ressources Step Functions de votre Compte AWS. Si vous créez une politique basée sur l’identité qui est plus restrictive que l’ensemble minimum d’autorisations requis, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs ou rôles) tributaires de cette politique.

Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement l'API AWS CLI ou l' AWS API. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API qu’ils tentent d’effectuer.

Pour garantir que les utilisateurs et les rôles peuvent toujours utiliser la console Step Functions, associez également les Step Functions `ConsoleAccess` ou la politique `ReadOnly` AWS gérée aux entités. Pour plus d’informations, consultez [Ajout d’autorisations à un utilisateur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dans le *Guide de l’utilisateur IAM*.

## Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# AWS politiques gérées pour AWS Step Functions
<a name="security-iam-awsmanpol"></a>





Une politique AWS gérée est une politique autonome créée et administrée par AWS. AWS les politiques gérées sont conçues pour fournir des autorisations pour de nombreux cas d'utilisation courants afin que vous puissiez commencer à attribuer des autorisations aux utilisateurs, aux groupes et aux rôles.

N'oubliez pas que les politiques AWS gérées peuvent ne pas accorder d'autorisations de moindre privilège pour vos cas d'utilisation spécifiques, car elles sont accessibles à tous les AWS clients. Nous vous recommandons de réduire encore les autorisations en définissant des [politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) qui sont propres à vos cas d’utilisation.

Vous ne pouvez pas modifier les autorisations définies dans les politiques AWS gérées. Si les autorisations définies dans une politique AWS gérée sont AWS mises à jour, la mise à jour affecte toutes les identités principales (utilisateurs, groupes et rôles) auxquelles la politique est attachée. AWS est le plus susceptible de mettre à jour une politique AWS gérée lorsqu'une nouvelle politique Service AWS est lancée ou lorsque de nouvelles opérations d'API sont disponibles pour les services existants.

Pour plus d’informations, consultez [Politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dans le *Guide de l’utilisateur IAM*.









## AWS politique gérée : AWSStep FunctionsConsoleFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsConsoleFullAccess"></a>

Vous pouvez associer la politique [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html) à vos identités IAM.

Cette politique accorde des *administrator* autorisations permettant à un utilisateur d'accéder à la console Step Functions. Pour bénéficier d'une expérience de console complète, un utilisateur peut également avoir besoin de PassRole l'autorisation iam : pour les autres rôles IAM pouvant être assumés par le service.

## AWS politique gérée : AWSStep FunctionsReadOnlyAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess"></a>

Vous pouvez associer la politique [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html) à vos identités IAM.

Cette politique accorde des *read-only* autorisations qui permettent à un utilisateur ou à un rôle de répertorier et de décrire les machines à états, les activités, les exécutions, les activités, les balises MapRuns, ainsi que les alias et versions des machines à états. Cette politique accorde également l'autorisation de vérifier la syntaxe des définitions de machines à états que vous fournissez.

## AWS politique gérée : AWSStep FunctionsFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsFullAccess"></a>

Vous pouvez associer la politique [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html) à vos identités IAM.

Cette politique autorise *full* un utilisateur ou un rôle à utiliser l'API Step Functions. Pour bénéficier d'un accès complet, un utilisateur doit disposer d'une *iam:PassRole* autorisation sur au moins un rôle IAM pouvant être assumé par le service.

## Step Functions met à jour les politiques AWS gérées
<a name="security-iam-awsmanpol-updates"></a>

Consultez les détails des mises à jour apportées aux politiques AWS gérées pour Step Functions depuis que ce service a commencé à suivre ces modifications. Pour recevoir des alertes automatiques concernant les modifications apportées à cette page, abonnez-vous au flux RSS sur la [Historique du document](document-history.md) page Step Functions.




| Modifier | Description | Date | 
| --- | --- | --- | 
|  [AWSStepFunctionsReadOnlyAccess](#security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess) – Mise à jour d’une stratégie existante   |  Step Functions a ajouté de nouvelles autorisations permettant d'appeler une action d'`states:ValidateStateMachineDefinition`API afin de vérifier la syntaxe des définitions de machines à états que vous fournissez.  | 25 avril 2024 | 
|  [AWSStepFunctionsReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html) : mise à jour d’une politique existante  |  Step Functions a ajouté de nouvelles autorisations pour permettre de répertorier et de lire les données relatives aux tags (ListTagsForResource), aux cartes distribuées (ListMapRuns, DescribeMapRun), aux versions et aux alias (DescribeStateMachineAlias, ListStateMachineAliases, ListStateMachineVersions).   | 2 avril 2024 | 
|  Step Functions a commencé à suivre les modifications  |  Step Functions a commencé à suivre les modifications apportées AWS à ses politiques gérées.  | 2 avril 2024 | 

# Création d'un rôle IAM pour votre machine à états dans Step Functions
<a name="procedure-create-iam-role"></a>

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 apprendre les Step Functions](learning-resources.md#tutorials) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) 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
<a name="create-role-for-step-functions"></a>

1. Connectez-vous à la [console IAM](https://console.aws.amazon.com/iam/home), puis sélectionnez **Rôles**, **Créer un rôle**.

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

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

1. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) dans le guide de l'*utilisateur IAM*.

## Prévenir le problème des adjoints confus entre les services
<a name="prevent-cross-service-confused-deputy"></a>

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é à 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Nous vous recommandons d'utiliser les clés contextuelles de condition [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)et 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
<a name="attach-inline-policy"></a>

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](https://console.aws.amazon.com/iam/home), choisissez **Roles**, recherchez votre rôle Step Functions, puis sélectionnez ce rôle.

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

1. 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, consultez[Intégrer les services avec Step Functions](integrate-services.md).

**Note**  
Pour des exemples de politiques IAM créées par la console Step Functions, consultez[Comment Step Functions génère des politiques IAM pour les services intégrés](service-integration-iam-templates.md).

# Création d'autorisations granulaires pour les utilisateurs non administrateurs dans Step Functions
<a name="concept-create-iam-advanced"></a>

Les politiques gérées par défaut dans IAM, par exemple`ReadOnly`, ne couvrent pas entièrement tous les types d' AWS Step Functions autorisations. Cette section décrit ces différents types d'autorisations et fournit des exemples des configurations. 

Step Functions propose quatre catégories d'autorisations. En fonction du type d'accès que vous souhaitez fournir à un utilisateur, vous pouvez contrôler l'accès en utilisant ces catégories d'autorisations. 

[Autorisations de niveau service](#concept-create-iam-advanced-service)  
S'applique aux composants de l'API qui n'agissent **pas** sur une ressource spécifique.

[Autorisations de niveau machine d'état](#concept-create-iam-advanced-state)  
S'applique à tous les composants d'API qui agissent sur une machine d'état spécifique.

[Autorisations de niveau exécution](#concept-create-iam-advanced-execution)  
S'applique à tous les composants d'API qui agissent sur une exécution spécifique.

[Autorisations de niveau activité](#concept-create-iam-advanced-activity)  
S'applique à tous les composants d'API qui agissent sur une activité spécifique ou sur une instance d'activité particulière.

## Autorisations de niveau service
<a name="concept-create-iam-advanced-service"></a>

Ce niveau d'autorisation s'applique à toutes les actions d'API qui **n'agissent pas** sur une ressource spécifique. Ceux-ci incluent`[CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html)`, `[CreateActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateActivity.html)``[ListStateMachines](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListStateMachines.html)`,`[ListActivities](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListActivities.html)`, et`[ValidateStateMachineDefinition](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ValidateStateMachineDefinition.html)`. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "states:ListStateMachines",
                "states:ListActivities",
                "states:CreateStateMachine",
                "states:CreateActivity",
                "states:ValidateStateMachineDefinition"
            ],
            "Resource": [
                "arn:aws:states:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/my-execution-role"
            ]
        }
    ]
}
```

## Autorisations de niveau machine d'état
<a name="concept-create-iam-advanced-state"></a>

Ce niveau d'autorisation s'applique à toutes les actions d'API qui agissent sur une machine d'état spécifique. Ces opérations d'API nécessitent l'Amazon Resource Name (ARN) de la machine d'état dans le cadre de la demande`[DeleteStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteStateMachine.html)`, tel que`[DescribeStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeStateMachine.html)`,`[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)`, et`[ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeStateMachine",
        "states:StartExecution",
        "states:DeleteStateMachine",
        "states:ListExecutions",
        "states:UpdateStateMachine",
        "states:TestState",
        "states:RevealSecrets"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:stateMachine:StateMachinePrefix*" 
      ]
    }
  ]
}
```

## Autorisations de niveau exécution
<a name="concept-create-iam-advanced-execution"></a>

Ce niveau d'autorisation s'applique à toutes les actions d'API qui agissent sur une exécution spécifique. Ces actions d'API requièrent l'ARN de l'exécution dans la demande, comme par exemple `[DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)`, `[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)` et `[StopExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StopExecution.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:DescribeStateMachineForExecution",
        "states:GetExecutionHistory",
        "states:StopExecution"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:execution:*:ExecutionPrefix*"
      ]
    }
  ]
}
```

## Autorisations de niveau activité
<a name="concept-create-iam-advanced-activity"></a>

Ce niveau d'autorisation s'applique à toutes les actions d'API qui agissent sur une activité spécifique ou sur une instance particulière de celle-ci. Ces opérations d'API nécessitent l'ARN de l'activité ou le jeton de l'instance dans le cadre de la demande, tel que `[DeleteActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteActivity.html)``[DescribeActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeActivity.html)`,`[GetActivityTask](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetActivityTask.html)`, et`[SendTaskHeartbeat](https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskHeartbeat.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeActivity",
        "states:DeleteActivity",
        "states:GetActivityTask",
        "states:SendTaskHeartbeat"
      ],
      "Resource": [
        "arn:aws:states:*:*:activity:ActivityPrefix*"
      ]
    }
  ]
}
```

# Accès aux ressources dans d'autres fonctions Comptes AWS de Step Functions
<a name="concepts-access-cross-acct-resources"></a>

Step Functions fournit un accès entre comptes aux ressources configurées selon différents flux Comptes AWS de travail. Grâce aux intégrations de services Step Functions, vous pouvez invoquer n'importe quelle AWS ressource entre comptes, même si celle-ci Service AWS ne prend pas en charge les politiques basées sur les ressources ou les appels entre comptes.

Supposons, par exemple, que vous en Comptes AWS possédiez deux, appelées Développement et Tests, dans la même entité 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**  
Les politiques IAM basées sur les ressources et les rôles ne délèguent l'accès entre les comptes qu'au sein d'une seule 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) dans le guide de l'utilisateur *IAM*.

Bien que chacun Compte AWS conserve un contrôle total sur ses propres ressources, Step Functions vous permet de réorganiser, d'échanger, d'ajouter ou de 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 [`.sync`](connect-to-resource.md#connect-sync)services 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)](connect-to-resource.md#connect-sync).

**Note**  
L'intégration du AWS SDK entre régions et l'accès aux AWS ressources entre régions ne sont pas disponibles dans Step Functions.

## Concepts clés en matière de ressources intercomptes
<a name="key-terms-cross-acct-access"></a>

**[Rôle d'exécution](procedure-create-iam-role.md)**  
Rôle IAM utilisé par Step Functions pour exécuter du code et accéder à AWS des ressources, telles que l'action Invoke de la AWS Lambda fonction.

**[Intégration des services](integrate-services.md)**  
Les actions de l'API d'intégration du AWS SDK qui peuvent être appelées depuis un `Task` état dans vos flux de travail.

**compte source**  
Celui Compte AWS qui possède la machine d'état et qui a commencé son exécution.

**compte cible**  
Et Compte AWS vers lequel vous passez des appels entre comptes.

**rôle cible**  
Rôle IAM 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)](connect-to-resource.md#connect-sync)**  
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
<a name="invoke-cross-acct-resource"></a>

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

1. Créez un rôle IAM 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.

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

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

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

Pour un exemple, consultez [Accès aux AWS ressources multi-comptes dans Step Functions](tutorial-access-cross-acct-resources.md) les didacticiels.

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

![\[Concept d'accès aux ressources multicomptes\]](http://docs.aws.amazon.com/fr_fr/step-functions/latest/dg/images/cross-account-support-concept.png)


## Accès entre comptes pour le modèle d'intégration .sync
<a name="concepts-cross-acct-sync-pattern"></a>

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 rôle IAM cible a besoin des autorisations requises pour effectuer un `.sync` appel afin de terminer cette boucle d'interrogation. Pour ce faire, le rôle IAM cible doit disposer d'une politique de confiance qui autorise le compte source à l'assumer. En outre, le rôle IAM 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
<a name="cross-acct-sync-pattern-policy-update"></a>

Mettez à jour la politique de confiance de votre rôle IAM 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 pris en charge par l' AWS Security Token Service `AssumeRole`API. Pour plus d’informations, consultez [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) dans la *Référence d’API 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"
        }
      }
    }
  ]
}
```

### Autorisations requises pour les appels .sync
<a name="cross-acct-sync-pattern-perms-update"></a>

Pour accorder les autorisations requises pour votre machine d'état, mettez à jour les autorisations requises pour le rôle IAM cible. Pour de plus amples informations, veuillez consulter [Comment Step Functions génère des politiques IAM pour les services intégrés](service-integration-iam-templates.md). 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:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:StopExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
      ]
    }
  ]
}
```

# Création de points de terminaison Amazon VPC pour Step Functions
<a name="vpc-endpoints"></a>

Si vous utilisez Amazon Virtual Private Cloud (Amazon VPC) pour héberger vos AWS ressources, vous pouvez établir une connexion entre votre Amazon VPC et les flux de travail. AWS Step Functions Vous pouvez utiliser cette connexion avec vos flux de travail Step Functions sans passer par l'Internet public. Les points de terminaison Amazon VPC sont pris en charge par les flux de travail standard, les flux de travail express et les flux de travail express synchrones. 

Amazon VPC vous permet de lancer AWS des ressources dans un réseau virtuel personnalisé. Vous pouvez utiliser un VPC pour contrôler vos paramètres réseau, tels que la plage d'adresses IP, les sous-réseaux, les tables de routage et les passerelles réseau. Pour plus d'informations VPCs, consultez le guide de l'[utilisateur Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/).

Pour connecter votre Amazon VPC à Step Functions, vous devez d'abord définir un point de *terminaison VPC* d'interface, qui vous permet de connecter votre VPC à d'autres services. AWS Le point de terminaison assure une connectivité évolutive et fiable, sans qu'une passerelle Internet, une instance NAT (Network Address Translation) ou une connexion VPN ne soit nécessaire. Pour de plus amples informations, consultez [Points de terminaison VPC (AWS PrivateLink) ](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) dans le *Guide de l'utilisateur Amazon VPC*.

## Création du point de terminaison
<a name="vpc-endpoint-create"></a>

Vous pouvez créer un AWS Step Functions point de terminaison dans votre VPC à l'aide du AWS Management Console, the AWS Command Line Interface (AWS CLI), d'un AWS SDK, de l' AWS Step Functions API ou. CloudFormation

Pour plus d'informations sur la création et la configuration d'un point de terminaison à l'aide de la console Amazon VPC ou de la AWS CLI, consultez la section [Création d'un point de terminaison d'interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) dans le *Guide de l'utilisateur Amazon VPC*.

**Note**  
 Lorsque vous créez un point de terminaison, spécifiez Step Functions comme service auquel vous souhaitez que votre VPC se connecte. Dans la console Amazon VPC, les noms des services varient en fonction de la AWS région. **Par exemple, si vous choisissez US East (Virginie du Nord), le nom du service pour Standard Workflows et Express Workflows est com.amazonaws.us-east-1.states, et le nom du service pour Synchronous Express Workflows est **com.amazonaws.us-east-1.sync-states**.**

**Note**  
[Il est possible d'utiliser des points de terminaison VPC sans remplacer le point de terminaison dans le SDK via un DNS privé.](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html) Toutefois, si vous souhaitez remplacer le point de terminaison dans le SDK pour Synchronous Express Workflows, vous devez définir `DisableHostPrefixInjection` la configuration sur. `true` Exemple (Java SDK V2) :   

```
SfnClient.builder()
  .endpointOverride(URI.create("https://vpce-{vpceId}.sync-states.us-east-1.vpce.amazonaws.com"))
  .overrideConfiguration(ClientOverrideConfiguration.builder()
    .advancedOptions(ImmutableMap.of(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION, true))
    .build())
  .build();
```

Pour plus d'informations sur la création et la configuration d'un point de terminaison à l'aide de CloudFormation, consultez la VPCEndpoint ressource [AWS : :EC2 : :](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) dans le guide de l'*CloudFormation utilisateur*.

## Politiques relatives aux terminaux Amazon VPC
<a name="vpc-endpoint-policy"></a>

Pour contrôler l'accès à la connectivité à Step Functions, vous pouvez associer une politique de point de terminaison Gestion des identités et des accès AWS (IAM) lors de la création d'un point de terminaison Amazon VPC. Vous pouvez créer des règles IAM complexes en associant plusieurs politiques de point de terminaison. Pour en savoir plus, consultez :
+  [Politiques relatives aux terminaux Amazon Virtual Private Cloud pour Step Functions](#vpc-iam) 
+  [Création d'autorisations granulaires pour les utilisateurs non administrateurs dans Step Functions](concept-create-iam-advanced.md) 
+  [Contrôle de l'accès aux services avec les points de terminaison d'un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

## Politiques relatives aux terminaux Amazon Virtual Private Cloud pour Step Functions
<a name="vpc-iam"></a>

Vous pouvez créer une politique de point de terminaison Amazon VPC pour Step Functions dans laquelle vous spécifiez les éléments suivants :
+ Le principal qui peut exécuter des actions.
+ Les actions qui peuvent être effectuées.
+ La ressource sur laquelle les actions peuvent être effectuées.

L'exemple suivant montre une politique de point de terminaison Amazon VPC qui permet à un utilisateur de créer des machines d'état et refuse à tous les autres utilisateurs l'autorisation de supprimer des machines d'état. L'exemple de stratégie accorde également l'autorisation d'exécution à tous les utilisateurs .

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
              "states:ListExecutions", "states:StartExecution", "states:StopExecution", "states:DescribeExecution"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Principal": "*"
        },
        {
            "Action": "states:CreateStateMachine",
            "Resource": "*",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::123456789012:user/MyUser"
            }
        },
        {
            "Action": "states:DeleteStateMachine",
            "Resource": "*",
            "Effect": "Deny",
            "Principal": "*"
        }
    ]
}
```

Pour plus d'informations sur la création de stratégies de point de terminaison, consultez les rubriques suivantes : 
+  [Création d'autorisations granulaires pour les utilisateurs non administrateurs dans Step Functions](concept-create-iam-advanced.md) 
+  [Contrôle de l'accès aux services avec les points de terminaison d'un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

# Comment Step Functions génère des politiques IAM pour les services intégrés
<a name="service-integration-iam-templates"></a>

Lorsque vous créez une machine à états dans la AWS Step Functions console, Step Functions produit une politique Gestion des identités et des accès AWS (IAM) basée sur les ressources utilisées dans la définition de votre machine à états, comme suit : 
+ Pour **des intégrations optimisées**, Step Functions créera une politique avec toutes les autorisations et tous les rôles nécessaires pour votre machine d'état.

  Conseil : Vous pouvez consulter des exemples de politiques dans chacune des pages de service ci-dessous[Intégrer des services optimisés](integrate-optimized.md). 
+ Pour les **intégrations standard**, Step Functions créera un rôle IAM avec des autorisations partielles.

  Vous devez ajouter toutes les politiques de rôle manquantes dont votre machine d'état a besoin pour interagir avec le service.

## Ressources dynamiques et statiques
<a name="connect-iam-dynamic-static"></a>

Les *ressources statiques* sont définies **directement** dans l'état des tâches de votre machine d'état. Lorsque vous incluez les informations relatives aux ressources que vous souhaitez appeler directement dans l'état de vos tâches, Step Functions peut créer un rôle IAM uniquement pour ces ressources. 

Les *ressources dynamiques* sont **transmises** en entrée lors du démarrage de votre machine à états, ou en entrée dans un état individuel, et accessibles à l'aide de JSONata ou JSONPath a. Lorsque vous transmettez des ressources dynamiques à votre tâche, Step Functions ne peut pas automatiquement réduire les autorisations. Step Functions créera donc une politique plus permissive qui spécifie :. `"Resource": "*"`

## Autorisations supplémentaires pour les tâches utilisant .sync
<a name="connect-iam-sync-async"></a>

Les tâches qui utilisent le modèle [Run a Job (.sync)](connect-to-resource.md#connect-sync) nécessitent des autorisations supplémentaires pour surveiller et recevoir une réponse de l'API des services connectés.

Step Functions utilise deux approches pour surveiller le statut d'une tâche lorsqu'elle est exécutée sur un service connecté : les **sondages** et les **événements**. 

Le sondage nécessite une autorisation pour les `Describe` actions `Get` d'API. Par exemple, pour Amazon ECS, la machine d'état doit disposer d'une autorisation d'autorisation pour`ecs:DescribeTasks`, car AWS Glue la machine d'état nécessite des autorisations d'autorisation pour`glue:GetJobRun`. Si les autorisations nécessaires ne sont pas associées au rôle, Step Functions ne sera peut-être pas en mesure de déterminer le statut de votre tâche. L'une des raisons de l'utilisation de la méthode de sondage est que certaines intégrations de services ne prennent pas en charge les EventBridge événements et que certains services n'envoient des événements que dans la mesure du possible. 

Vous pouvez également utiliser des événements envoyés par les AWS services à Amazon EventBridge. Les événements sont acheminés vers Step Functions EventBridge via une règle gérée, de sorte que le rôle nécessite des autorisations pour `events:PutTargets``events:PutRule`, et`events:DescribeRule`. Si ces autorisations sont absentes du rôle, Step Functions peut prendre un certain temps avant que Step Functions ne soit informée de la fin de votre tâche. Pour plus d'informations sur les EventBridge événements, consultez la section [Événements liés AWS aux services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html). 

## Résolution des problèmes liés aux flux de travail .sync bloqués
<a name="polling-events-troubleshooting"></a>

Pour les tâches Run a Job (.sync) qui prennent en charge **à la fois les** sondages et les événements, votre tâche peut s'exécuter correctement en utilisant des événements, même si le rôle ne dispose pas des autorisations requises pour les sondages.

Dans le scénario précédent, vous ne remarquerez peut-être pas que les autorisations de sondage sont manquantes ou incorrectes. Dans les rares cas où un événement ne parvient pas à être transmis ou traité par Step Functions, votre exécution peut être bloquée. 

 Pour vérifier que vos autorisations d'interrogation sont correctement configurées, vous pouvez exécuter une exécution dans un environnement sans EventBridge événements en procédant comme suit 
+  Supprimez la règle gérée chargée de transférer les événements vers Step Functions. EventBridge 
**Note**  
 Les règles gérées étant partagées par toutes les machines d'état de votre compte, vous devez utiliser un compte de test ou de développement pour éviter tout impact involontaire sur les autres machines d'état. 
+ Vous pouvez identifier la règle gérée spécifique à supprimer en inspectant le `Resource` champ utilisé `events:PutRule` dans le modèle de politique du service cible. La règle gérée sera recréée la prochaine fois que vous créerez ou mettrez à jour une machine à états utilisant cette intégration de services. 
+  Pour plus d'informations sur la suppression de EventBridge règles, consultez la section [Désactivation ou suppression d'une règle](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html). 

## Autorisations pour annuler des flux de travail
<a name="iam-cancel-tasks"></a>

Si une tâche utilisant le modèle Run a Job (.sync) est arrêtée, Step Functions fera de son mieux pour annuler la tâche.

L'annulation d'une tâche nécessite l'autorisation de`Cancel`, `Stop``Terminate`, ou des actions `Delete` d'API, telles que `batch:TerminateJob` ou`eks:DeleteCluster`. Si ces autorisations ne sont pas associées à votre rôle, Step Functions ne sera pas en mesure d'annuler votre tâche et vous risquez de devoir payer des frais supplémentaires pendant son exécution. Pour plus d'informations sur l'arrêt des tâches, consultez [Run a Job](connect-to-resource.md#connect-sync).

**En savoir plus sur les modèles d'intégration**  
 Pour en savoir plus sur les tâches synchrones, voir[Découvrez les modèles d'intégration des services dans Step Functions](connect-to-resource.md).

## Politiques IAM pour les machines d'état Step Functions réservées aux activités
<a name="activities-iam"></a>

Pour une machine à états qui n'a que `Activity` des tâches, ou aucune tâche du tout, utilisez une politique IAM qui refuse l'accès à toutes les actions et ressources.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
```

Pour de plus amples informations sur l'utilisation des tâches ` Activity `, veuillez consulter [En savoir plus sur les activités dans Step Functions](concepts-activities.md).

# Politiques IAM pour l'utilisation des états cartographiques distribués
<a name="iam-policies-eg-dist-map"></a>

Lorsque vous créez des flux de travail avec la console Step Functions, Step Functions peut générer automatiquement des politiques IAM en fonction des ressources figurant dans votre définition de flux de travail. Les politiques générées incluent le minimum de privilèges nécessaires pour permettre au rôle de machine d'état d'invoquer l'action d'`[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)`API pour l'*état de la carte distribuée* et les AWS ressources d'accès, telles que les buckets et les objets Amazon S3, ainsi que les fonctions Lambda.

Nous vous recommandons de n'inclure que les autorisations nécessaires dans vos politiques IAM. Par exemple, si votre flux de travail inclut un `Map` état en mode distribué, limitez vos politiques au compartiment et au dossier Amazon S3 spécifiques qui contiennent vos données.

**Important**  
Si vous spécifiez un compartiment et un objet Amazon S3, ou un préfixe, avec un [chemin de référence vers](amazon-states-language-paths.md#amazon-states-language-reference-paths) une paire clé-valeur existante dans l'entrée d'*état de votre carte distribuée*, assurez-vous de mettre à jour les politiques IAM pour votre flux de travail. Élargissez les politiques jusqu'au bucket et aux noms d'objets auxquels le chemin aboutit au moment de l'exécution.

## Exemple de politique IAM pour exécuter un état de carte distribuée
<a name="iam-policy-run-dist-map"></a>

Lorsque vous incluez un *état de carte distribuée* dans vos flux de travail, Step Functions a besoin des autorisations appropriées pour permettre au rôle de machine à états d'invoquer l'action d'`[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)`API pour l'*état de carte distribuée*.

L'exemple de politique IAM suivant accorde le minimum de privilèges requis à votre rôle de machine d'état pour exécuter l'*état de carte distribuée*.

**Note**  
Assurez-vous de `stateMachineName` remplacer par le nom de la machine à états dans laquelle vous utilisez l'*état Distributed Map*. Par exemple, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
    }
  ]
}
```

## Exemple de politique IAM pour redriving une carte distribuée
<a name="iam-policy-redrive-dist-map"></a>

Vous pouvez redémarrer les exécutions infructueuses d'un flux de travail enfant dans un flux de travail Map Run par [redriving](redrive-executions.md)votre [flux de travail parent](state-map-distributed.md#dist-map-orchestrate-parallel-workloads-key-terms). Un flux de travail redriven parent redrives contenant tous les états infructueux, y compris la carte distribuée. Assurez-vous que votre rôle d'exécution dispose du minimum de privilèges nécessaires pour lui permettre d'invoquer l'action d'`[RedriveExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_RedriveExecution.html)`API sur le flux de travail parent.

L'exemple de politique IAM suivant accorde le minimum de privilèges requis à votre rôle de machine d'état pour redriving un *état de carte distribuée*.

**Note**  
Assurez-vous de `stateMachineName` remplacer par le nom de la machine à états dans laquelle vous utilisez l'*état Distributed Map*. Par exemple, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:RedriveExecution"
      ],
      "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachineName/myMapRunLabel:*"
    }
  ]
}
```

## Exemples de politiques IAM pour lire les données des ensembles de données Amazon S3
<a name="iam-policy-eg-item-reader"></a>

Les exemples suivants présentent des techniques permettant d'accorder le minimum de privilèges requis pour accéder à vos ensembles de données Amazon S3 à l'aide des actions [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) et [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API.

**Example condition utilisant un objet Amazon S3 comme ensemble de données**  
La condition suivante accorde le moins de privilèges pour accéder aux objets d'un `processImages` dossier d'un compartiment Amazon S3.  

```
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": { 
      "s3:prefix": [ "processImages" ]
   }
}
```

**Example utilisation d'un fichier CSV en tant que jeu de données**  
L'exemple suivant montre les actions requises pour accéder à un fichier CSV nommé`ratings.csv`.  

```
"Action": [ "s3:GetObject" ],
"Resource": [
   "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv"
   ]
```

**Example utilisation d'un inventaire Amazon S3 en tant que jeu de données**  
Vous trouverez ci-dessous des exemples de ressources pour un manifeste d'inventaire Amazon S3 et des fichiers de données.  

```
"Resource": [
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json",
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*"
   ]
```

**Example utilisation de la ListObjects V2 pour se limiter à un préfixe de dossier**  
Lors de l'utilisation de la [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), deux politiques seront générées. L'une est nécessaire pour permettre de **répertorier** le contenu du compartiment (`ListBucket`) et une autre politique autorisera la **récupération d'objets** dans le compartiment (`GetObject`).   
Vous trouverez ci-dessous des exemples d'actions, de ressources et de conditions :  

```
"Action": [ "s3:ListBucket" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": {
      "s3:prefix": [ "/path/to/your/json/" ]
   }
}
```

```
"Action": [ "s3:GetObject" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]
```
Notez que cela ne `GetObject` sera pas délimité et que vous utiliserez un caractère générique (`*`) pour l'objet.

## Exemple de politique IAM pour écrire des données dans un compartiment Amazon S3
<a name="iam-policy-eg-result-writer"></a>

L'exemple de politique IAM suivant accorde le minimum de privilèges requis pour écrire les résultats de l'exécution du flux de travail de votre enfant dans un dossier nommé *csvJobs* dans un compartiment Amazon S3 à l'aide de l'action `[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)` API.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*"
            ]
        }
    ]
}
```

### Autorisations IAM pour le compartiment Amazon S3 AWS KMS key chiffré
<a name="multiupload-dmap-result-policy"></a>

*L'état de la carte distribuée* utilise des téléchargements partitionnés pour écrire les résultats de l'exécution du flux de travail enfant dans un compartiment Amazon S3. Si le compartiment est chiffré à l'aide d'une AWS Key Management Service (AWS KMS) clé, vous devez également inclure des autorisations dans votre IAM politique pour effectuer les `kms:GenerateDataKey` actions `kms:Decrypt``kms:Encrypt`, et sur la clé. Ces autorisations sont requises, car Simple Storage Service (Amazon S3) doit déchiffrer et lire les données des parties de fichier chiffrées avant de terminer le chargement partitionné.

L'exemple de politique IAM suivant accorde l'autorisation à `kms:Decrypt``kms:Encrypt`, et aux `kms:GenerateDataKey` actions sur la clé utilisée pour chiffrer votre compartiment Amazon S3.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:Encrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}
```

Pour plus d'informations, consultez [Chargement d'un fichier volumineux vers Amazon S3 avec chiffrement à l'aide d'une AWS KMS key](https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/) que vous trouverez dans le *AWS Centre de connaissances*.

Si votre utilisateur ou votre rôle IAM est Compte AWS identique auKMS key, vous devez disposer de ces autorisations sur la politique clé. Si votre utilisateur ou rôle IAM appartient à un compte différent duKMS key, vous devez disposer des autorisations à la fois sur la politique clé et sur votre utilisateur ou rôle IAM.

# Création de politiques IAM basées sur des balises dans Step Functions
<a name="tag-based-policies"></a>

Step Functions prend en charge les politiques basées sur les balises. Par exemple, vous pouvez restreindre l'accès à toutes les ressources Step Functions qui incluent une balise avec la clé `environment` et la valeur`production`.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "states:TagResource",
                "states:UntagResource",
                "states:DeleteActivity",
                "states:DeleteStateMachine",
                "states:StopExecution"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/environment": "production"}
            }
        }
    ]
}
```

Cette stratégie refusera (`Deny`) la possibilité de supprimer des machines d'état ou des activités, d'arrêter des exécutions et d'ajouter ou de supprimer de nouvelles balises pour toutes les ressources qui ont été balisées en tant que `environment/production`.

Pour l'autorisation basée sur des balises, les ressources d'exécution de la machine d'état, comme indiqué dans l'exemple suivant, héritent des balises associées à une machine d'état.

```
arn:partition:states:region:account-id:execution:<StateMachineName>:<ExecutionId>
```

Lorsque vous appelez [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)ou que vous spécifiez l'ARN de la ressource d'exécution, Step Functions utilise des balises associées à la machine d'état pour accepter ou refuser la demande tout en effectuant une autorisation basée sur des balises. APIs Cela vous permet d'autoriser ou de refuser l'accès aux exécutions par machine d'état au niveau de la machine d'état.

Pour plus d'informations sur le balisage, consultez les ressources suivantes :
+ [Marquage des machines d'état et des activités dans Step Functions](sfn-best-practices.md#concepts-tagging)
+ [Contrôle de l'accès à l'aide de balises IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)

# Résolution des problèmes d'identité et d'accès dans Step Functions
<a name="security_iam_troubleshoot"></a>

Utilisez les informations suivantes pour diagnostiquer et résoudre les problèmes courants que vous pouvez rencontrer lors de l'utilisation de Step Functions et d'IAM.

**Topics**
+ [Je ne suis pas autorisé à effectuer une action dans Step Functions](#security_iam_troubleshoot-no-permissions)
+ [Je ne suis pas autorisé à effectuer iam : PassRole](#security_iam_troubleshoot-passrole)
+ [Je souhaite autoriser des personnes extérieures à moi Compte AWS à accéder à mes ressources Step Functions](#security_iam_troubleshoot-cross-account-access)

## Je ne suis pas autorisé à effectuer une action dans Step Functions
<a name="security_iam_troubleshoot-no-permissions"></a>

Si vous recevez une erreur selon laquelle vous n'êtes pas autorisé à effectuer une action, vos stratégies doivent être mises à jour afin de vous permettre d'effectuer l'action.

L'exemple d'erreur suivant se produit quand l'utilisateur `mateojackson` tente d'utiliser la console pour afficher des informations détaillées sur une ressource `my-example-widget` fictive, mais ne dispose pas des autorisations `states:GetWidget` fictives.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: states:GetWidget on resource: my-example-widget
```

Dans ce cas, la stratégie de Mateo doit être mise à jour pour l'autoriser à accéder à la ressource `my-example-widget` à l'aide de l'action `states:GetWidget`.

Si vous avez besoin d'aide, contactez votre AWS administrateur. Votre administrateur vous a fourni vos informations d’identification de connexion.

## Je ne suis pas autorisé à effectuer iam : PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si vous recevez un message d'erreur indiquant que vous n'êtes pas autorisé à effectuer l'`iam:PassRole`action, vos politiques doivent être mises à jour pour vous permettre de transmettre un rôle à Step Functions.

Certains vous Services AWS permettent de transmettre un rôle existant à ce service au lieu de créer un nouveau rôle de service ou un rôle lié à un service. Pour ce faire, vous devez disposer des autorisations nécessaires pour transmettre le rôle au service.

L'exemple d'erreur suivant se produit lorsqu'un utilisateur IAM nommé `marymajor` essaie d'utiliser la console pour effectuer une action dans Step Functions. Toutefois, l’action nécessite que le service ait des autorisations accordées par un rôle de service. Mary n'est pas autorisée à transmettre le rôle au service.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dans ce cas, les politiques de Mary doivent être mises à jour pour lui permettre d’exécuter l’action `iam:PassRole`.

Si vous avez besoin d'aide, contactez votre AWS administrateur. Votre administrateur vous a fourni vos informations d’identification de connexion.

## Je souhaite autoriser des personnes extérieures à moi Compte AWS à accéder à mes ressources Step Functions
<a name="security_iam_troubleshoot-cross-account-access"></a>

Vous pouvez créer un rôle que les utilisateurs provenant d’autres comptes ou les personnes extérieures à votre organisation pourront utiliser pour accéder à vos ressources. Vous pouvez spécifier qui est autorisé à assumer le rôle. Pour les services qui prennent en charge les politiques basées sur les ressources ou les listes de contrôle d'accès (ACLs), vous pouvez utiliser ces politiques pour autoriser les utilisateurs à accéder à vos ressources.

Pour plus d’informations, consultez les éléments suivants :
+ Pour savoir si Step Functions prend en charge ces fonctionnalités, consultez[Comment AWS Step Functions fonctionne avec IAM](security_iam_service-with-iam.md).
+ Pour savoir comment fournir l'accès à vos ressources sur celles Comptes AWS que vous possédez, consultez la section [Fournir l'accès à un utilisateur IAM dans un autre utilisateur Compte AWS que vous possédez](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) dans le Guide de l'*utilisateur IAM*.
+ Pour savoir comment fournir l'accès à vos ressources à des tiers Comptes AWS, consultez la section [Fournir un accès à des ressources Comptes AWS détenues par des tiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dans le *guide de l'utilisateur IAM*.
+ Pour savoir comment fournir un accès par le biais de la fédération d’identité, consultez [Fournir un accès à des utilisateurs authentifiés en externe (fédération d’identité)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) dans le *Guide de l’utilisateur IAM*.
+ Pour en savoir plus sur la différence entre l’utilisation des rôles et des politiques basées sur les ressources pour l’accès intercompte, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.