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.
Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM depuis la ligne de commande
Il est particulièrement utile d'avoir recours à un outil en ligne de commande pour envoyer des requêtes à votre cluster de bases de données Neptune, comme l'illustrent de nombreux exemples dans cette documentation. L'outil curl
Toutefois, pour garantir la sécurité de vos données, il est préférable d'activer l'authentification IAM.
Lorsque l'authentification de base de données IAM est activée, chaque demande doit être signée à l'aide de Signature Version 4 (Sig4). L'outil de ligne de commande tiers awscurlcurl
et peut signer les requêtes à l'aide de la signature Sig4. La section Utiliser awscurl ci-dessous explique comment utiliser awscurl
en toute sécurité avec des informations d'identification temporaires.
Configuration d'un outil de ligne de commande pour utiliser le protocole HTTPS
Neptune exige que toutes les connexions utilisent le protocole HTTPS. Tout outil de ligne de commande comme curl
ou awscurl
doit accéder aux certificats appropriés pour pouvoir utiliser le protocole HTTPS. Dans la mesure où curl
ou awscurl
peut localiser les certificats appropriés, il gère les connexions HTTPS comme des connexions HTTP, sans paramètres supplémentaires. Les exemples de cette documentation sont basés sur ce scénario.
Pour découvrir comment obtenir ces certificats et comment les mettre correctement en forme dans un magasin de certificats CA utilisable par curl
, consultez SSL Certificate Verification (Vérification des certificats SSL)curl
.
Vous pouvez ensuite spécifier l'emplacement de ce magasin de certificats CA à l'aide de la variable d'environnement CURL_CA_BUNDLE
. Sous Windows, curl
le recherche automatiquement dans un fichier nommé curl-ca-bundle.crt
. Il examine d'abord dans le même répertoire que curl.exe
, puis ailleurs sur le chemin. Pour plus d’informations, consultez SSL Certificate Verification (Vérification des certificats SSL)
Utilisation d'informations d'identification temporaires awscurl
pour se connecter en toute sécurité à un cluster de bases de données avec l'authentification IAM activée
L'outil awscurlcurl
, mais nécessite également des informations supplémentaires :
-
--access_key
: clé d'accès valide. Si cet élément n'est pas fourni à l'aide de ce paramètre, il doit être fourni dans la variable d'environnementAWS_ACCESS_KEY_ID
ou dans un fichier de configuration. -
--secret_key
: clé secrète valide qui correspond à la clé d'accès. Si cet élément n'est pas fourni à l'aide de ce paramètre, il doit être fourni dans la variable d'environnementAWS_SECRET_ACCESS_KEY
ou dans un fichier de configuration. -
--security_token
: jeton de session valide. Si cet élément n'est pas fourni à l'aide de ce paramètre, il doit être fourni dans la variable d'environnementAWS_SECURITY_TOKEN
ou dans un fichier de configuration.
Auparavant, il était courant d'utiliser des informations d'identification persistantes avec awscurl
, telles que les informations d'identification utilisateur IAM ou même les informations d'identification root, mais cela n'est pas recommandé. Générez plutôt des informations d'identification temporaires à l'aide de l'un des AWS
Security Token Service (STS) APIs ou de l'un de ses AWS CLI wrappers.
Il est préférable de placer les valeurs AccessKeyId
, SecretAccessKey
et SessionToken
renvoyées par l'appel STS dans les variables d'environnement appropriées de la session shell plutôt que dans un fichier de configuration. Lorsque le shell se terminera, les informations d'identification seront automatiquement supprimées, ce qui n'est pas le cas avec un fichier de configuration. De même, ne demandez pas une durée plus longue que celle dont vous aurez probablement besoin pour les informations d'identification temporaires.
L'exemple suivant présente les étapes que vous pouvez suivre dans un shell Linux pour obtenir des informations d'identification temporaires valables pendant une demi-heure à l'aide de sts assume-role, puis pour les placer dans des variables d'environnement où awscurl
peux les trouver :
aws sts assume-role \ --duration-seconds 1800 \ --role-arn "arn:aws:iam::
(account-id)
:role/(rolename)
" \ --role-session-name AWSCLI-Session > $output AccessKeyId=$(cat $output | jq '.Credentials''.AccessKeyId') SecretAccessKey=$(cat $output | jq '.Credentials''.SecretAccessKey') SessionToken=$(cat $output | jq '.Credentials''.SessionToken') export AWS_ACCESS_KEY_ID=$AccessKeyId export AWS_SECRET_ACCESS_KEY=$SecretAccessKey export AWS_SESSION_TOKEN=$SessionToken
Vous pouvez ensuite utiliser awscurl
pour envoyer une demande signée au cluster de bases de données comme suit :
awscurl
(your cluster endpoint)
:8182/status \ --region us-east-1 \ --service neptune-db