

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

# Création de déclarations de politique IAM personnalisées pour accéder aux données dans Amazon Neptune
<a name="iam-data-access-policies"></a>

Les déclarations de stratégie d'accès aux données Neptune utilisent des [actions d'accès aux données](iam-dp-actions.md), des [ressources](iam-data-resources.md) et des [clés de condition](iam-data-condition-keys.md#iam-neptune-condition-keys), toutes précédées d'un préfixe `neptune-db:`.

**Topics**
+ [Utilisation d'actions de requête dans les déclarations de stratégie d'accès aux données Neptune](#iam-data-query-actions)
+ [Actions IAM pour l'accès aux données dans Amazon Neptune](iam-dp-actions.md)
+ [Types de ressources IAM pour accéder aux données dans Amazon Neptune](iam-data-resources.md)
+ [Clés de condition IAM pour accéder aux données dans Amazon Neptune](iam-data-condition-keys.md)
+ [Création de politiques d'accès aux données IAM dans Amazon Neptune](iam-data-access-examples.md)

## Utilisation d'actions de requête dans les déclarations de stratégie d'accès aux données Neptune
<a name="iam-data-query-actions"></a>

Trois actions de requête Neptune peuvent être utilisées dans les déclarations de stratégie d'accès aux données, à savoir `ReadDataViaQuery`, `WriteDataViaQuery` et `DeleteDataViaQuery`. Une requête particulière peut nécessiter les autorisations nécessaires pour effectuer plusieurs de ces actions, et il n'est pas toujours évident de savoir quelle combinaison de ces actions doit être autorisée pour exécuter une requête.

Avant d'exécuter une requête, Neptune détermine les autorisations nécessaires pour exécuter chaque étape de la requête et les combine dans l'ensemble complet d'autorisations requises par la requête. Notez que cet ensemble complet d'autorisations inclut toutes les actions que la requête *peut* effectuer, ce qui n'est pas nécessairement l'ensemble des actions que la requête effectuera réellement lorsqu'elle traitera vos données.

Autrement dit, pour autoriser l'exécution d'une requête donnée, vous devez fournir les autorisations nécessaires pour chaque action que la requête est susceptible d'effectuer, qu'elle les exécute réellement ou non.

Voici quelques exemples de requêtes Gremlin qui permettent d'illustrer ce principe :
+ 

  ```
  g.V().count()
  ```

  `g.V()` et `count()` ne nécessitent qu'un accès en lecture. La requête ne nécessite donc qu'un accès `ReadDataViaQuery`.
+ 

  ```
  g.addV()
  ```

  `addV()` doit vérifier si un sommet avec un ID donné existe ou non avant d'en insérer un nouveau. La requête a donc besoin à la fois d'un accès `ReadDataViaQuery` et d'un accès `WriteDataViaQuery`.
+ 

  ```
  g.V('1').as('a').out('created').addE('createdBy').to('a')
  ```

  `g.V('1').as('a')` et `out('created')` ne nécessitent qu'un accès en lecture, mais `addE().from('a')` nécessite un accès en lecture et en écriture, car `addE()` doit lire les sommets `from` et `to` et vérifier si une arête portant le même ID existe déjà avant d'en ajouter une autre. La requête dans son ensemble a donc besoin à la fois d'un accès `ReadDataViaQuery` et d'un accès `WriteDataViaQuery`.
+ 

  ```
  g.V().drop()
  ```

  `g.V()` ne nécessite qu'un accès en lecture. `drop()` a besoin à la fois d'un accès en lecture et en suppression, car il doit lire un sommet ou une arête avant de le supprimer. La requête nécessite donc à la fois un accès `ReadDataViaQuery` et un accès `DeleteDataViaQuery`.
+ 

  ```
  g.V('1').property(single, 'key1', 'value1')
  ```

  `g.V('1')` ne nécessite qu'un accès en lecture, mais `property(single, 'key1', 'value1')` nécessite un accès en lecture, en écriture et en suppression. Ici, l'étape `property()` insère la clé et la valeur si elles n'existent pas déjà dans le sommet, mais si elles existent déjà, elle supprime la valeur de propriété existante et insère une nouvelle valeur à sa place. Par conséquent, la requête nécessite les accès `ReadDataViaQuery`, `WriteDataViaQuery` et `DeleteDataViaQuery`.

  Toute requête contenant une étape `property()` nécessite les autorisations `ReadDataViaQuery`, `WriteDataViaQuery` et `DeleteDataViaQuery`.

Voici quelques exemples openCypher :
+ 

  ```
  MATCH (n)
  RETURN n
  ```

  Cette requête lit tous les nœuds de la base de données et les renvoie, ce qui nécessite uniquement un accès `ReadDataViaQuery`.
+ 

  ```
  MATCH (n:Person)
  SET n.dept = 'AWS'
  ```

  Cette requête nécessite les accès `ReadDataViaQuery`, `WriteDataViaQuery` et `DeleteDataViaQuery`. Elle lit tous les nœuds portant l'étiquette « Personne » et y ajoute une nouvelle propriété avec la clé `dept` et la valeur `AWS`, ou si la propriété `dept` existe déjà, elle supprime l'ancienne valeur et insère `AWS` à la place. De même, si la valeur à définir est `null`, `SET` supprime complètement la propriété.

   Étant donné que la clause `SET` peut dans certains cas nécessiter la suppression d'une valeur existante, elle a **toujours** besoin d'autorisations `DeleteDataViaQuery`, ainsi que d'autorisations `ReadDataViaQuery` et `WriteDataViaQuery`.
+ 

  ```
  MATCH (n:Person)
  DETACH DELETE n
  ```

  Cette requête nécessite les autorisations `ReadDataViaQuery` et `DeleteDataViaQuery`. Elle trouve tous les nœuds portant l'étiquette `Person` et les supprime ainsi que les arêtes connectées à ces nœuds et toutes les étiquettes et propriétés associées.
+ 

  ```
  MERGE (n:Person {name: 'John'})-[:knows]->(:Person {name: 'Peter'})
  RETURN n
  ```

  Cette requête nécessite les autorisations `ReadDataViaQuery` et `WriteDataViaQuery`. La clause `MERGE` correspond à un modèle spécifié ou le crée. Étant donné qu'une écriture peut avoir lieu si le modèle ne correspond pas, des autorisations d'écriture sont nécessaires, ainsi que des autorisations de lecture.

# Actions IAM pour l'accès aux données dans Amazon Neptune
<a name="iam-dp-actions"></a>

Notez que les actions d'accès aux données dans Neptune ont le préfixe `neptune-db:`, tandis que les actions administratives dans Neptune ont le préfixe `rds:`.

L'Amazon Resource Name (ARN) d'une ressource de données dans IAM n'est pas identique à l'ARN affecté au cluster au moment de la création. Vous devez construire l'ARN comme indiqué dans [Spécification des ressources de données](iam-data-resources.md). Une telle ressource de données ARNs peut utiliser des caractères génériques pour inclure plusieurs ressources.

Les déclarations de politique d'accès aux données peuvent également inclure la clé de QueryLanguage condition [neptune-db :](iam-data-condition-keys.md#iam-neptune-condition-keys) pour restreindre l'accès par langage de requête.

À compter de la [Sortie : 1.2.0.0 (21/07/2022)](engine-releases-1.2.0.0.md), Neptune prend en charge la restriction des autorisations pour une ou plusieurs [actions Neptune spécifiques](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonneptune.html). Cela permet un contrôle d'accès plus précis qu'auparavant.

**Important**  
Il faut jusqu'à 10 minutes pour que les modifications apportées à une politique IAM s'appliquent aux ressources Neptune spécifiées.
Les politiques IAM appliquées à un cluster de bases de données Neptune s'appliquent à toutes les instances dans ce cluster.

## *Actions d'accès aux données basées sur des requêtes*
<a name="iam-dp-actions-queries"></a>

**Note**  
Les autorisations nécessaires pour exécuter une requête donnée ne sont pas toujours évidentes, car les requêtes peuvent effectuer diverses actions en fonction des données qu'elles traitent. Pour plus d'informatons, consultez [Utilisation d'actions de requête](iam-data-access-policies.md#iam-data-query-actions).

## `neptune-db:ReadDataViaQuery`
<a name="readdataviaquery"></a>

`ReadDataViaQuery` permet à l'utilisateur de lire les données de la base de données Neptune en soumettant des requêtes.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Clés de contexte d'action :* `neptune-db:QueryLanguage`.

*Ressources requises :* base de données.

## `neptune-db:WriteDataViaQuery`
<a name="writedataviaquery"></a>

`WriteDataViaQuery` permet à l'utilisateur d'écrire des données dans la base de données Neptune en soumettant des requêtes.

*Groupes d'actions :* lecture/écriture.

*Clés de contexte d'action :* `neptune-db:QueryLanguage`.

*Ressources requises :* base de données.

## `neptune-db:DeleteDataViaQuery`
<a name="deletedataviaquery"></a>

`DeleteDataViaQuery` permet à l'utilisateur de supprimer des données de la base de données Neptune en soumettant des requêtes.

*Groupes d'actions :* lecture/écriture.

*Clés de contexte d'action :* `neptune-db:QueryLanguage`.

*Ressources requises :* base de données.

## `neptune-db:GetQueryStatus`
<a name="getquerystatus"></a>

`GetQueryStatus` permet à l'utilisateur de vérifier le statut de toutes les requêtes actives.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Clés de contexte d'action :* `neptune-db:QueryLanguage`.

*Ressources requises :* base de données.

## `neptune-db:GetStreamRecords`
<a name="getstreamrecords"></a>

`GetStreamRecords` permet à l'utilisateur de récupérer des enregistrements de flux à partir de Neptune.

*Groupes d'actions :* lecture/écriture.

*Clés de contexte d'action :* `neptune-db:QueryLanguage`.

*Ressources requises :* base de données.

## `neptune-db:CancelQuery`
<a name="cancelquery"></a>

`CancelQuery` permet à l'utilisateur d'annuler une requête.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## *Actions générales d'accès aux données*
<a name="iam-dp-actions-general"></a>

## `neptune-db:GetEngineStatus`
<a name="getenginestatus"></a>

`GetEngineStatus` permet à l'utilisateur de vérifier le statut du moteur Neptune.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:GetStatisticsStatus`
<a name="getstatisticsstatus"></a>

`GetStatisticsStatus` permet à l'utilisateur de vérifier l'état des statistiques collectées pour la base de données.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:GetGraphSummary`
<a name="getgraphsummary"></a>

`GetGraphSummary` : l'API de résumé de graphe vous permet de récupérer un résumé en lecture seule de votre graphe.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:ManageStatistics`
<a name="managestatistics"></a>

`ManageStatistics` permet à l'utilisateur de gérer la collecte de statistiques pour la base de données.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:DeleteStatistics`
<a name="deletestatistics"></a>

`DeleteStatistics` permet à l'utilisateur de supprimer toutes les statistiques dans la base de données.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:ResetDatabase`
<a name="resetdatabase"></a>

`ResetDatabase` permet à l'utilisateur d'obtenir le jeton nécessaire à une réinitialisation et de réinitialiser la base de données Neptune.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## *Actions d'accès aux données via le chargeur en bloc*
<a name="iam-dp-actions-loader"></a>

## `neptune-db:StartLoaderJob`
<a name="startloaderjob"></a>

`StartLoaderJob` permet à l'utilisateur de démarrer une tâche de chargement en bloc.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:GetLoaderJobStatus`
<a name="getloaderjobstatus"></a>

`GetLoaderJobStatus` permet à l'utilisateur de vérifier le statut d'une tâche de chargement en bloc.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:ListLoaderJobs`
<a name="listloaderjobs"></a>

`ListLoaderJobs` permet à l'utilisateur de répertorier toutes les tâches de chargement en bloc.

*Groupes d'actions :* affichage uniquement, lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:CancelLoaderJob`
<a name="cancelloaderjob"></a>

`CancelLoaderJob` permet à l'utilisateur d'annuler une tâche de chargement.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## *Actions d'accès aux données par machine learning*
<a name="iam-dp-actions-ml"></a>

## `neptune-db:StartMLDataProcessingJob`
<a name="startmldataprocessingjob"></a>

`StartMLDataProcessingJob` permet à un utilisateur de démarrer une tâche de traitement de données Neptune ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:StartMLModelTrainingJob`
<a name="startmlmodeltrainingjob"></a>

`StartMLModelTrainingJob` permet à un utilisateur de démarrer une tâche d'entraînement de modèle ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:StartMLModelTransformJob`
<a name="startmlmodeltransformjob"></a>

`StartMLModelTransformJob` permet à un utilisateur de démarrer une tâche de transformation de modèle ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:CreateMLEndpoint`
<a name="createmlendpoint"></a>

`CreateMLEndpoint` permet à un utilisateur de créer un point de terminaison Neptune ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:GetMLDataProcessingJobStatus`
<a name="getmldataprocessingjobstatus"></a>

`GetMLDataProcessingJobStatus` permet à un utilisateur de vérifier le statut d'une tâche de traitement de données Neptune ML.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:GetMLModelTrainingJobStatus`
<a name="getmlmodeltrainingjobstatus"></a>

`GetMLModelTrainingJobStatus` permet à un utilisateur de vérifier le statut d'une tâche d'entraînement de modèle Neptune ML.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:GetMLModelTransformJobStatus`
<a name="getmlmodeltransformjobstatus"></a>

`GetMLModelTransformJobStatus` permet à un utilisateur de vérifier le statut d'une tâche de transformation de modèle Neptune ML.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:GetMLEndpointStatus`
<a name="getmlendpointstatus"></a>

`GetMLEndpointStatus` permet à un utilisateur de vérifier le statut d'un point de terminaison Neptune ML.

*Groupes d'actions :* lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:ListMLDataProcessingJobs`
<a name="listmldataprocessingjobs"></a>

`ListMLDataProcessingJobs` permet à un utilisateur de répertorier toutes les tâches de traitement de données Neptune ML.

*Groupes d'actions :* affichage uniquement, lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:ListMLModelTrainingJobs`
<a name="listmlmodeltrainingjobs"></a>

`ListMLModelTrainingJobs` permet à un utilisateur de répertorier toutes les tâches d'entraînement de modèle Neptune ML.

*Groupes d'actions :* affichage uniquement, lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:ListMLModelTransformJobs`
<a name="listmlmodeltransformjobs"></a>

`ListMLModelTransformJobs` permet à un utilisateur de répertorier toutes les tâches de transformation de modèle ML.

*Groupes d'actions :* affichage uniquement, lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:ListMLEndpoints`
<a name="listmlendpoints"></a>

`ListMLEndpoints` permet à un utilisateur de répertorier tous les points de terminaison Neptune ML.

*Groupes d'actions :* affichage uniquement, lecture seule, lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:CancelMLDataProcessingJob`
<a name="cancelmldataprocessingjob"></a>

`CancelMLDataProcessingJob` permet à un utilisateur d'annuler une tâche de traitement de données Neptune ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:CancelMLModelTrainingJob`
<a name="cancelmlmodeltrainingjob"></a>

`CancelMLModelTrainingJob` permet à un utilisateur d'annuler une tâche d'entraînement de modèle Neptune ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:CancelMLModelTransformJob`
<a name="cancelmlmodeltransformjob"></a>

`CancelMLModelTransformJob` permet à un utilisateur d'annuler une tâche de transformation de modèle Neptune ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

## `neptune-db:DeleteMLEndpoint`
<a name="deletemlendpoint"></a>

`DeleteMLEndpoint` permet à un utilisateur de supprimer un point de terminaison Neptune ML.

*Groupes d'actions :* lecture/écriture.

*Ressources requises :* base de données.

# Types de ressources IAM pour accéder aux données dans Amazon Neptune
<a name="iam-data-resources"></a>

Les ressources de données, comme les actions sur les données, ont le préfixe `neptune-db:`.

Dans une stratégie d'accès aux données Neptune, vous spécifiez le cluster de bases de données auquel vous donnez accès dans un ARN au format suivant :

```
arn:aws:neptune-db:region:account-id:cluster-resource-id/*
```

Cet ARN de ressource contient les éléments suivants :
+ `region`est la AWS région du cluster de base de données Amazon Neptune.
+ `account-id` est le numéro de compte AWS du cluster de bases de données.
+ `cluster-resource-id` est un ID de ressource pour le cluster de bases de données.
**Important**  
L'`cluster-resource-id` est différent de l'identifiant du cluster. Pour trouver un ID de ressource de cluster dans le Neptune AWS Management Console, consultez la section **Configuration** du cluster de base de données en question.

# Clés de condition IAM pour accéder aux données dans Amazon Neptune
<a name="iam-data-condition-keys"></a>

[À l'aide des clés de condition](security-iam-access-manage.md#iam-using-condition-keys), vous pouvez spécifier des conditions dans une déclaration de politique IAM de sorte qu'elle ne prenne effet que lorsque les conditions sont remplies.

Les clés de condition que vous pouvez utiliser dans les déclarations de stratégie d'accès aux données Neptune appartiennent aux catégories suivantes :
+ [Clés de [condition globales — Le sous-ensemble de clés](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) de condition AWS globales que Neptune prend en charge dans les déclarations de politique d'accès aux données est répertorié ci-dessous.](#iam-data-global-condition-keys)
+ [Clés de condition spécifiques au service](#iam-neptune-condition-keys) : il s'agit de clés définies par Neptune spécifiquement pour être utilisées dans les déclarations de stratégie d'accès aux données. À l'heure actuelle, il n'en existe qu'un seul, [neptune-db : QueryLanguage](#neptune-db-query-language), qui autorise l'accès uniquement si un langage de requête spécifique est utilisé.

## AWS clés contextuelles de conditions globales prises en charge par Neptune dans les déclarations de politique d'accès aux données
<a name="iam-data-global-condition-keys"></a>

Le tableau suivant répertorie le sous-ensemble de [clés contextuelles de conditions globales AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) prises en charge par Amazon Neptune pour une utilisation dans les déclarations de stratégie d'accès aux données :


**Clés de condition globales que vous pouvez utiliser dans les déclarations de stratégie d'accès aux données**  

| Clés de condition | Description | Type | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime) | Filtre l'accès en fonction de la date et de l'heure actuelles de la demande. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime) | Filtre l'accès en fonction de la date et de l'heure de la demande, exprimées sous forme de valeur d'époque UNIX. | Numeric | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) | Filtre l'accès en fonction du compte auquel appartient le principal à l'origine de la demande. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) | Filtre l'accès via l'ARN du principal à l'origine de la demande. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice) | Autorise l'accès uniquement si l'appel est effectué directement par un principal AWS de service. | Boolean | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) | Filtre l'accès en fonction de l'identifiant de l'organisation dans AWS les Organizations auxquelles appartient le principal demandeur. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths) | Filtre l'accès par le chemin AWS Organizations pour le principal qui fait la demande. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) | Filtre l'accès via une balise attachée au principal à l'origine de la demande. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltype](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltype) | Filtre l'accès en fonction du type de principal à l'origine de la demande. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) | Filtre l'accès en AWS fonction de la région appelée dans la demande. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) | Autorise l'accès uniquement si la demande a été envoyée en utilisant SSL. | Boolean | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip) | Filtre l'accès en fonction de l'adresse IP du demandeur | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime) | Filtre l'accès selon la date et l'heure auxquelles les informations d'identification de sécurité temporaires ont été émises. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-useragent](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-useragent) | Filtre l'accès par l'application cliente du demandeur. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-userid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-userid) | Filtre l'accès en fonction de l'identifiant du principal du demandeur. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice) | Autorise l'accès uniquement si un AWS service a fait la demande en votre nom. | Boolean | 

## Clés de condition spécifiques au service Neptune
<a name="iam-neptune-condition-keys"></a>

Neptune prend en charge la clé de condition spécifique au service suivante pour les politiques IAM :


**Clés de condition spécifiques au service Neptune**  

| Clés de condition | Description | Type | 
| --- | --- | --- | 
| neptune-db:QueryLanguage |  Filtre l'accès aux données en fonction du langage de requête utilisé. Les valeurs valides sont `Gremlin`, `OpenCypher` et `Sparql`. Les options prises en charge sont `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery`, `GetQueryStatus` et `CancelQuery`.  | String | 

# Création de politiques d'accès aux données IAM dans Amazon Neptune
<a name="iam-data-access-examples"></a>

[Les exemples suivants montrent comment créer des politiques IAM personnalisées qui utilisent un contrôle d'accès précis au plan de données APIs et aux actions, introduit dans la version 1.2.0.0 du moteur Neptune.](engine-releases-1.2.0.0.md) 

## Exemple de politique autorisant un accès illimité aux données d'un cluster de bases de données Neptune
<a name="iam-auth-data-policy-example-general"></a>

L'exemple de politique suivant permet à un utilisateur IAM de se connecter à un cluster de bases de données à l'aide de l'authentification de base de données IAM. Il utilise le caractère `*` pour spécifier toutes les actions disponibles.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "neptune-db:*",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

L'exemple précédent inclut un ARN de ressource dans un format spécifique à l'authentification Neptune IAM. Pour créer l'ARN, consultez la section [Spécification des ressources de données](iam-data-resources.md). Notez que l'ARN utilisée pour l'autorisation IAM `Resource` n'est pas le même que l'ARN assigné au cluster au moment de la création.

## Exemple de politique autorisant l'accès en lecture seule à un cluster de bases de données Neptune
<a name="iam-auth-data-policy-example-read-only"></a>

La politique suivante autorise l'accès complet en lecture seule aux données d'un cluster de bases de données Neptune : 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:Read*",
        "neptune-db:Get*",
        "neptune-db:List*"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Exemple de politique refusant tout accès à un cluster de bases de données Neptune
<a name="iam-auth-data-policy-example-deny"></a>

L'action IAM par défaut consiste à refuser l'accès à un cluster de bases de données, sauf si un *effet `Allow`* est accordé. Cependant, la politique suivante refuse tout accès à un cluster de base de données pour un AWS compte et une région particuliers, ce qui a alors la priorité sur tout `Allow` effet.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "neptune-db:*",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Exemple de politique accordant un accès en lecture par le biais de requêtes
<a name="iam-auth-data-policy-example-read-query"></a>

La politique suivante accorde uniquement l'autorisation de lire des données à partir d'un cluster de bases de données Neptune à l'aide d'une requête : 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "neptune-db:ReadDataViaQuery",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Exemple de politique autorisant uniquement les requêtes Gremlin
<a name="iam-auth-data-policy-example-gremlin-only"></a>

La politique suivante utilise la clé de condition `neptune-db:QueryLanguage` pour autoriser Neptune uniquement avec le langage de requête Gremlin : 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:ReadDataViaQuery",
        "neptune-db:WriteDataViaQuery",
        "neptune-db:DeleteDataViaQuery"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "neptune-db:QueryLanguage": "Gremlin"
        }
      }
    }
  ]
}
```

------

## Exemple de politique autorisant tous les accès sauf l'accès à la gestion du modèle Neptune ML
<a name="iam-auth-data-policy-example-all-but-ml"></a>

La politique suivante accorde l'accès total aux opérations de graphes Neptune, à l'exception des fonctionnalités de gestion des modèles Neptune ML :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:CancelLoaderJob",
        "neptune-db:CancelQuery",
        "neptune-db:DeleteDataViaQuery",
        "neptune-db:DeleteStatistics",
        "neptune-db:GetEngineStatus",
        "neptune-db:GetLoaderJobStatus",
        "neptune-db:GetQueryStatus",
        "neptune-db:GetStatisticsStatus",
        "neptune-db:GetStreamRecords",
        "neptune-db:ListLoaderJobs",
        "neptune-db:ManageStatistics",
        "neptune-db:ReadDataViaQuery",
        "neptune-db:ResetDatabase",
        "neptune-db:StartLoaderJob",
        "neptune-db:WriteDataViaQuery"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Exemple de politique autorisant l'accès à la gestion des modèles Neptune ML
<a name="iam-auth-data-policy-example-ml"></a>

Cette politique donne accès aux fonctionnalités de gestion des modèles Neptune ML :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:CancelMLDataProcessingJob",
        "neptune-db:CancelMLModelTrainingJob",
        "neptune-db:CancelMLModelTransformJob",
        "neptune-db:CreateMLEndpoint",
        "neptune-db:DeleteMLEndpoint",
        "neptune-db:GetMLDataProcessingJobStatus",
        "neptune-db:GetMLEndpointStatus",
        "neptune-db:GetMLModelTrainingJobStatus",
        "neptune-db:GetMLModelTransformJobStatus",
        "neptune-db:ListMLDataProcessingJobs",
        "neptune-db:ListMLEndpoints",
        "neptune-db:ListMLModelTrainingJobs",
        "neptune-db:ListMLModelTransformJobs",
        "neptune-db:StartMLDataProcessingJob",
        "neptune-db:StartMLModelTrainingJob",
        "neptune-db:StartMLModelTransformJob"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Exemple de politique accordant un accès complet aux requêtes
<a name="iam-auth-data-policy-example-full-query"></a>

La politique suivante accorde un accès complet aux opérations de requête de graphe Neptune, mais pas aux fonctionnalités telles que la réinitialisation rapide, les flux, le chargeur en bloc, la gestion des modèles Neptune ML, etc.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:ReadDataViaQuery",
        "neptune-db:WriteDataViaQuery",
        "neptune-db:DeleteDataViaQuery",
        "neptune-db:GetEngineStatus",
        "neptune-db:GetQueryStatus",
        "neptune-db:CancelQuery"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Exemple de politique accordant un accès complet aux requêtes Gremlin uniquement
<a name="iam-auth-data-policy-example-full-gremlin-access"></a>

La politique suivante accorde un accès complet aux opérations de requête de graphe Neptune à l'aide du langage de requête Gremlin, mais pas aux requêtes dans les autres langages ni à des fonctionnalités telles que la réinitialisation rapide, les flux, le chargeur en bloc, la gestion des modèles Neptune ML, etc.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:ReadDataViaQuery",
        "neptune-db:WriteDataViaQuery",
        "neptune-db:DeleteDataViaQuery",
        "neptune-db:GetEngineStatus",
        "neptune-db:GetQueryStatus",
        "neptune-db:CancelQuery"
      ],
      "Resource": [
        "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
      ],
      "Condition": {
        "StringEquals": {
           "neptune-db:QueryLanguage":"Gremlin"
        }
      }
    }
  ]
}
```

------

## Exemple de politique accordant un accès complet à l'exception de la réinitialisation rapide
<a name="iam-auth-data-policy-example-all-but-fast-reset"></a>

La politique suivante accorde l'accès total à un cluster de bases de données Neptune, à l'exception de l'utilisation de la réinitialisation rapide :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "neptune-db:*",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    },
    {
      "Effect": "Deny",
      "Action": "neptune-db:ResetDatabase",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------