Authentification IAM à l'aide d'informations d'identification temporaires - 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.

Authentification IAM à l'aide d'informations d'identification temporaires

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 plus d'informations 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 et signature avec AWS Signature Version 4.

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

Obtention d'informations d'identification temporaires à l'aide de l' 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.

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

{ "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 Exemple : connexion à Neptune à l'aide de Python avec la signature Signature Version 4.

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.

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

    role_name=$( curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/ ) creds_json=$(curl -s 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.