

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.

# Utilisation d'informations d'identification temporaires pour se connecter à Amazon Neptune
<a name="iam-auth-temporary-credentials"></a>

Amazon Neptune prend en charge l'authentification IAM à l'aide d'informations d'identification temporaires.

Vous pouvez utiliser un rôle assumé pour vous authentifier à l'aide d'une politique d'authentification IAM, telles que l'un des exemples de politiques des sections précédentes.

Si vous utilisez des informations d'identification temporaires, vous devez spécifier `AWS_SESSION_TOKEN` en plus de `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` et `SERVICE_REGION`.

**Note**  
Les informations d'identification temporaires expirent après un intervalle spécifique, *y compris le jeton de session*.  
Vous devez mettre à jour votre jeton de session lorsque vous demandez de nouvelles informations d'identification. Pour plus d'informations, consultez la section [Utilisation d'informations d'identification de sécurité temporaires pour demander l'accès aux AWS ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html).

Les sections suivantes expliquent comment autoriser l'accès et récupérer des informations d'identification temporaires.

**Pour vous authentifier à l'aide d'informations d'identification temporaires**

1. Créez un rôle IAM avec l'autorisation d'accès à un cluster Neptune. Pour en savoir plus sur la création de ce rôle, consultez [Utilisation de différents types de politique IAM pour contrôler l'accès à Neptune](security-iam-access-manage.md#iam-auth-policy).

1. Ajoutez au rôle une relation d'approbation qui autorise l'accès aux informations d'identification.

   Récupérez les informations d'identification temporaires, y compris `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` et `AWS_SESSION_TOKEN`.

1. Connectez-vous au cluster Neptune et signez les demandes à l'aide des informations d'identification temporaires. Pour plus d'informations sur la connexion et la signature de demandes, consultez [Connexion à votre base de données Amazon Neptune à l'aide de l'authentification Gestion des identités et des accès AWS](iam-auth-connecting.md).

Vous pouvez récupérer des informations d'identification temporaires à l'aide de différentes méthodes en fonction de l'environnement.

**Topics**
+ [Obtenir des informations d'identification temporaires à l'aide du AWS CLI](#iam-auth-temporary-credentials-cli)
+ [Configuration de AWS Lambda pour l'authentification Neptune IAM](#iam-auth-temporary-credentials-lambda)
+ [Configuration d'Amazon EC2 pour l'authentification IAM Neptune](#iam-auth-temporary-credentials-ec2)

## Obtenir des informations d'identification temporaires à l'aide du AWS CLI
<a name="iam-auth-temporary-credentials-cli"></a>

Pour obtenir des informations d'identification à l'aide de AWS Command Line Interface (AWS CLI), vous devez d'abord ajouter une relation de confiance qui autorise l' AWS utilisateur qui exécutera la AWS CLI commande à assumer le rôle.

Ajoutez la relation d'approbation suivante au rôle d'authentification IAM Neptune. Si vous ne disposez pas d'un rôle d'authentification IAM Neptune, consultez [Utilisation de différents types de politique IAM pour contrôler l'accès à Neptune](security-iam-access-manage.md#iam-auth-policy).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/test"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Pour plus d'informations sur l'ajout de la relation d'approbation au rôle, consultez [Modification de la relation d'approbation pour un rôle existant](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/edit_trust.html) dans le *Guide d'administration d'AWS Directory Service *.

Si la politique Neptune n'est pas encore attachée à un rôle, créez un rôle. Attachez la politique d'authentification IAM Neptune, puis ajoutez la politique d'approbation. Pour plus d'informations sur la création d'un nouveau rôle, consultez [Création d'un rôle](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/create_role.html).

**Note**  
Les sections suivantes supposent que vous avez AWS CLI installé le.

**Pour exécuter AWS CLI le**

1. Saisissez la commande suivante pour demander les informations d'identification à l'aide de l’ AWS CLI. Remplacez l'ARN du rôle, le nom de la session et le profil par vos propres valeurs.

   ```
   aws sts assume-role  --role-arn  arn:aws:iam::123456789012:role/NeptuneIAMAuthRole --role-session-name test --profile testprofile
   ```

1. Voici un exemple de sortie de la commande. La section `Credentials` contient les valeurs dont vous avez besoin.
**Note**  
Notez la valeur du champ `Expiration`, car vous en aurez besoin pour obtenir de nouvelles informations d'identification après cette période.

   ```
   {
       "AssumedRoleUser": {
           "AssumedRoleId": "AROA3XFRBF535PLBIFPI4:s3-access-example",
           "Arn": "arn:aws:sts::123456789012:assumed-role/xaccounts3access/s3-access-example"
       },
       "Credentials": {
           "SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
           "SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
           "Expiration": "2016-03-15T00:05:07Z",
           "AccessKeyId": "ASIAJEXAMPLEXEG2JICEA"
       }
   }
   ```

1. Définissez les variables d'environnement à l'aide des informations d'identification renvoyées.

   ```
   export AWS_ACCESS_KEY_ID=ASIAJEXAMPLEXEG2JICEA
   export AWS_SECRET_ACCESS_KEY=9drTJvcXLB89EXAMPLELB8923FB892xMFI
   export AWS_SESSION_TOKEN=AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=
   
   export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or
                         ca-west-1 or sa-east-1 or eu-north-1 or eu-south-2 or eu-west-1 or eu-west-2 or eu-west-3 or
                         eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or
                         ap-northeast-1 or ap-northeast-2 or ap-northeast-3 or ap-southeast-1 or ap-southeast-2 or
                         ap-southeast-3 or ap-southeast-4 or ap-southeast-5 or ap-south-1 or ap-south-2 or
                         cn-north-1 or cn-northwest-1 or
                         us-gov-east-1 or us-gov-west-1
   ```

1. Connectez-vous en utilisant l'une des méthodes suivantes.
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec la console Gremlin](iam-auth-connecting-gremlin-console.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide d'IAM avec Gkremlin Java](iam-auth-connecting-gremlin-java.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec Java et SPARQL](iam-auth-connecting-sparql-java.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec Python](iam-auth-connecting-python.md)

**Pour obtenir les informations d'identification à l'aide d'un script**

1. Exécutez la commande suivante pour installer la commande **jq**. Le script utilise cette commande pour analyser le résultat de la AWS CLI commande.

   ```
   sudo yum -y install jq
   ```

1. Créez un fichier nommé `credentials.sh` dans un éditeur de texte et ajoutez le texte suivant. Remplacez la région de service, l'ARN du rôle, le nom de la session et le profil par vos propres valeurs.

   ```
   #!/bin/bash
   
   creds_json=$(aws sts assume-role  --role-arn  arn:aws:iam::123456789012:role/NeptuneIAMAuthRole --role-session-name test --profile testprofile)
   
   export AWS_ACCESS_KEY_ID=$(echo "$creds_json" | jq .Credentials.AccessKeyId |tr -d '"')
   export AWS_SECRET_ACCESS_KEY=$(echo "$creds_json" | jq .Credentials.SecretAccessKey| tr -d '"')
   export AWS_SESSION_TOKEN=$(echo "$creds_json" | jq .Credentials.SessionToken|tr -d '"')
   
   export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or
                         ca-west-1 or sa-east-1 or eu-north-1 or eu-south-2 or eu-west-1 or eu-west-2 or eu-west-3 or
                         eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or
                         ap-northeast-1 or ap-northeast-2 or ap-northeast-3 or ap-southeast-1 or ap-southeast-2 or
                         ap-southeast-3 or ap-southeast-4 or ap-southeast-5 or ap-south-1 or ap-south-2 or
                         cn-north-1 or cn-northwest-1 or
                         us-gov-east-1 or us-gov-west-1
   ```

1. Connectez-vous en utilisant l'une des méthodes suivantes.
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec la console Gremlin](iam-auth-connecting-gremlin-console.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide d'IAM avec Gkremlin Java](iam-auth-connecting-gremlin-java.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec Java et SPARQL](iam-auth-connecting-sparql-java.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec Python](iam-auth-connecting-python.md)

## Configuration de AWS Lambda pour l'authentification Neptune IAM
<a name="iam-auth-temporary-credentials-lambda"></a>

AWS Lambda inclut automatiquement les informations d'identification chaque fois que la fonction Lambda est exécutée.

Vous devez commencer par ajouter une relation d'approbation qui accorde au service Lambda l'autorisation d'endosser le rôle.

Ajoutez la relation d'approbation suivante au rôle d'authentification IAM Neptune. Si vous ne disposez pas d'un rôle d'authentification IAM Neptune, consultez [Utilisation de différents types de politique IAM pour contrôler l'accès à Neptune](security-iam-access-manage.md#iam-auth-policy).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Pour plus d'informations sur l'ajout de la relation d'approbation au rôle, consultez [Modification de la relation d'approbation pour un rôle existant](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/edit_trust.html) dans le *Guide d'administration d'AWS Directory Service*.

Si la politique Neptune n'est pas encore attachée à un rôle, créez un rôle. Attachez la politique d'authentification IAM Neptune, puis ajoutez la politique d'approbation. Pour plus d'informations sur la création d'un nouveau rôle, consultez [Création d'un rôle](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/create_role.html) dans le *Guide d'administration d'AWS Directory Service *.

**Pour accéder à Neptune à partir de Lambda**

1. Connectez-vous à la AWS Lambda console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Créez une nouvelle fonction Lambda pour Python 3.6.

1. Attribuez le rôle `AWSLambdaVPCAccessExecutionRole` à la fonction Lambda. Cette action est requise pour accéder aux ressources Neptune qui sont accessibles par VPC uniquement.

1. Attribuez le rôle IAM d'authentification Neptune à la fonction Lambda.

   Pour plus d'informations, consultez [Autorisations AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html) dans le *Guide du développeur AWS Lambda *.

1.  Copiez l'exemple Python d'authentification IAM dans le code de fonction Lambda.

   Pour plus d'informations sur l'exemple et l'exemple de code, consultez [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec Python](iam-auth-connecting-python.md).

## Configuration d'Amazon EC2 pour l'authentification IAM Neptune
<a name="iam-auth-temporary-credentials-ec2"></a>

Amazon EC2 vous permet d'utiliser des profils d'instance pour fournir automatiquement des informations d'identification. Pour plus d'informations, consultez [Utilisation de profils d'instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) dans le *Guide de l'utilisateur IAM*.

Vous devez commencer par ajouter une relation d'approbation qui accorde au service Amazon EC2 l'autorisation d'endosser le rôle.

Ajoutez la relation d'approbation suivante au rôle d'authentification IAM Neptune. Si vous ne disposez pas d'un rôle d'authentification IAM Neptune, consultez [Utilisation de différents types de politique IAM pour contrôler l'accès à Neptune](security-iam-access-manage.md#iam-auth-policy).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Pour plus d'informations sur l'ajout de la relation d'approbation au rôle, consultez [Modification de la relation d'approbation pour un rôle existant](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/edit_trust.html) dans le *Guide d'administration d'AWS Directory Service *.

Si la politique Neptune n'est pas encore attachée à un rôle, créez un rôle. Attachez la politique d'authentification IAM Neptune, puis ajoutez la politique d'approbation. Pour plus d'informations sur la création d'un nouveau rôle, consultez [Création d'un rôle](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/create_role.html) dans le *Guide d'administration d'AWS Directory Service *.

**Pour obtenir les informations d'identification à l'aide d'un script**

1. Exécutez la commande suivante pour installer la commande **jq**. Le script utilise cette commande pour analyser la sortie de la commande **curl**.

   ```
   sudo yum -y install jq
   ```

1. Créez un fichier nommé `credentials.sh` dans un éditeur de texte et ajoutez le texte suivant. Remplacez la région de service par votre propre valeur.

   ```
   TOKEN=$( curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" )
   role_name=$( curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/ )
   creds_json=$( curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/${role_name} )
   
   export AWS_ACCESS_KEY_ID=$(echo "$creds_json" | jq .AccessKeyId |tr -d '"')
   export AWS_SECRET_ACCESS_KEY=$(echo "$creds_json" | jq .SecretAccessKey| tr -d '"')
   export AWS_SESSION_TOKEN=$(echo "$creds_json" | jq .Token|tr -d '"')
   
   export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or
                         ca-west-1 or sa-east-1 or eu-north-1 or eu-south-2 or eu-west-1 or eu-west-2 or eu-west-3 or
                         eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or
                         ap-northeast-1 or ap-northeast-2 or ap-northeast-3 or ap-southeast-1 or ap-southeast-2 or
                         ap-southeast-3 or ap-southeast-4 or ap-southeast-5 or ap-south-1 or ap-south-2 or
                         cn-north-1 or cn-northwest-1 or
                         us-gov-east-1 or us-gov-west-1
   ```

1. Exécutez le script dans le shell `bash` à l'aide de la commande `source` :

   ```
   source credentials.sh
   ```

   Une solution encore meilleure consiste à ajouter les commandes de ce script au fichier `.bashrc` de votre instance EC2 pour qu'elles soient appelées automatiquement lorsque vous vous connectez, ce qui rend les informations d'identification temporaires disponibles sur la console Gremlin.

1. Connectez-vous en utilisant l'une des méthodes suivantes.
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec la console Gremlin](iam-auth-connecting-gremlin-console.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide d'IAM avec Gkremlin Java](iam-auth-connecting-gremlin-java.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec Java et SPARQL](iam-auth-connecting-sparql-java.md)
   + [Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec Python](iam-auth-connecting-python.md)