Utilisation d'informations d'identification temporaires pour se connecter à Amazon Neptune - Amazon Neptune

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

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.

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.

  2. 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.

  3. 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.

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

Obtenir des informations d'identification temporaires à l'aide du AWS CLI

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.

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 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.

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
  2. 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" } }
  3. 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 sa-east-1 or eu-north-1 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-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  4. Connectez-vous en utilisant l'une des méthodes suivantes.

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
  2. 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 sa-east-1 or eu-north-1 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-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  3. Connectez-vous en utilisant l'une des méthodes suivantes.

Configuration de AWS Lambda pour l'authentification Neptune IAM

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.

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 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 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/.

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

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

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

    Pour plus d'informations, consultez Autorisations AWS Lambda dans le Guide du développeur AWS Lambda .

  5. 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.

Configuration d'Amazon EC2 pour l'authentification IAM Neptune

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 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.

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 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 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
  2. 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 sa-east-1 or eu-north-1 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-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  3. 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.

  4. Connectez-vous en utilisant l'une des méthodes suivantes.