Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di credenziali temporanee per la connessione ad Amazon Neptune
Amazon Neptune IAM supporta l'autenticazione tramite credenziali temporanee.
Puoi utilizzare un ruolo presunto per l'autenticazione utilizzando una politica di IAM autenticazione, come una delle politiche di esempio nelle sezioni precedenti.
Se usi credenziali temporanee, devi specificare AWS_SESSION_TOKEN
oltre a AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
e SERVICE_REGION
.
Nota
Le credenziali temporanee scadono dopo un intervallo specificato, comprensivo del token di sessione.
Devi aggiornare il token di sessione quando richiedi le nuove credenziali. Per ulteriori informazioni, vedere Utilizzo di credenziali di sicurezza temporanee per richiedere l'accesso alle AWS risorse.
Nelle seguenti sezioni viene descritto come consentire l'accesso e recuperare le credenziali temporanee.
Per autenticare con le credenziali temporanee
Crea un IAM ruolo con il permesso di accedere a un cluster Neptune. Per ulteriori informazioni sulla creazione di questo ruolo, consulta Utilizzo di diversi tipi di IAM politiche per controllare l'accesso a Neptune.
-
Aggiungi al ruolo una relazione di trust che consenta di accedere alle credenziali.
Recuperare le credenziali temporanee, specificando
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
eAWS_SESSION_TOKEN
. Collegarsi al cluster Neptune e firmare le richieste utilizzando le credenziali temporanee. Per ulteriori informazioni sulla connessione e sulla firma delle richieste, consulta Connessione al database Amazon Neptune tramite autenticazione AWS Identity and Access Management.
Sono disponibili vari metodi per recuperare le credenziali temporanee a seconda dell'ambiente.
Argomenti
Ottenere le credenziali temporanee utilizzando AWS CLI
Per ottenere le credenziali utilizzando il comando AWS Command Line Interface (AWS CLI), devi prima aggiungere una relazione di fiducia che conceda il permesso di assumere il ruolo all' AWS utente che eseguirà il comando. AWS CLI
Aggiungi la seguente relazione di fiducia al ruolo di autenticazione IAM Neptune. Se non disponi di un ruolo di autenticazione IAM Neptune, consulta. Utilizzo di diversi tipi di IAM politiche per controllare l'accesso a Neptune
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test" }, "Action": "sts:AssumeRole" } ] }
Per informazioni su come aggiungere la relazione di trust al ruolo, consulta Modifica della relazione di trust per un ruolo esistente nella Guida di amministrazione di AWS Directory Service .
Se la policy Neptune non è ancora collegata a un ruolo, creare un nuovo ruolo. Allega la politica di autenticazione di IAM Neptune, quindi aggiungi la politica di attendibilità. Per informazioni su come creare un nuovo ruolo, consulta Creazione di un ruolo.
Nota
Le sezioni seguenti presuppongono che tu abbia installato il AWS CLI file.
Per eseguire AWS CLI manualmente
-
Digita il comando seguente per richiedere le credenziali utilizzando AWS CLI. Sostituisci il ruoloARN, il nome della sessione e il profilo con i tuoi valori.
aws sts assume-role --role-arn
arn:aws:iam::123456789012:role/NeptuneIAMAuthRole
--role-session-nametest
--profiletestprofile
-
Il seguente è un esempio di output del comando. La sezione
Credentials
contiene i valori necessari.Nota
Annota il valore
Expiration
in quanto più avanti sarà necessario per ottenere nuove credenziali.{ "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
" } } -
Imposta le variabili di ambiente usando le credenziali restituite.
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
-
Collegati utilizzando uno dei seguenti metodi.
Connessione ai database Amazon Neptune IAM tramite l'autenticazione con la console Gremlin
Connessione ai database IAM Amazon Neptune tramite Gremlin Java
Connessione ai database Amazon Neptune IAM tramite l'autenticazione con Java e SPARQL
Connessione ai database IAM Amazon Neptune tramite l'autenticazione con Python
Per utilizzare un script per ottenere le credenziali
-
Esegui il comando riportato qui di seguito per installare il comando jq. Lo script utilizza questo comando per analizzare l'output del AWS CLI comando.
sudo yum -y install jq
-
Crea un file denominato
credentials.sh
in un editor di testo e aggiungi il seguente testo. Sostituisci la regione del servizio, il ruoloARN, il nome della sessione e il profilo con i tuoi valori.#!/bin/bash creds_json=$(aws sts assume-role --role-arn
arn:aws:iam::123456789012:role/NeptuneIAMAuthRole
--role-session-nametest
--profiletestprofile
) 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
-
Collegati utilizzando uno dei seguenti metodi.
Connessione ai database Amazon Neptune IAM tramite l'autenticazione con la console Gremlin
Connessione ai database IAM Amazon Neptune tramite Gremlin Java
Connessione ai database Amazon Neptune IAM tramite l'autenticazione con Java e SPARQL
Connessione ai database IAM Amazon Neptune tramite l'autenticazione con Python
Configurazione dell'autenticazione AWS Lambda per Neptune IAM
AWS Lambda include automaticamente le credenziali ogni volta che viene eseguita la funzione Lambda.
Innanzitutto è necessario aggiungere una relazione di trust che conceda al servizio Lambda l'autorizzazione ad assumere il ruolo.
Aggiungi la seguente relazione di fiducia al ruolo di autenticazione IAM Neptune. Se non disponi di un ruolo di autenticazione IAM Neptune, consulta. Utilizzo di diversi tipi di IAM politiche per controllare l'accesso a Neptune
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Per informazioni su come aggiungere la relazione di trust al ruolo, consulta Modifica della relazione di trust per un ruolo esistente nella Guida di amministrazione di AWS Directory Service.
Se la policy Neptune non è ancora collegata a un ruolo, creare un nuovo ruolo. Allega la politica di autenticazione di IAM Neptune, quindi aggiungi la politica di attendibilità. Per ulteriori informazioni su come creare un nuovo ruolo, consulta Creazione di un nuovo ruolo nella Guida di amministrazione di AWS Directory Service .
Per accedere a Neptune da Lambda
Accedi AWS Management Console e apri la AWS Lambda console all'indirizzo. https://console.aws.amazon.com/lambda/
Creare una nuova funzione Lambda per Python versione 3.6.
Assegnare il ruolo
AWSLambdaVPCAccessExecutionRole
alla funzione Lambda. Ciò è necessario per accedere alle risorse di Neptune, che sono solo. VPC-
Assegna il ruolo di autenticazione Neptune alla IAM funzione Lambda.
Per ulteriori informazioni, consulta Autorizzazioni di AWS Lambda nella Guida per gli sviluppatori di AWS Lambda .
-
Copia l'esempio di IAM autenticazione Python nel codice della funzione Lambda.
Per ulteriori informazioni sull'esempio e sul codice di esempio, consulta Connessione ai database IAM Amazon Neptune tramite l'autenticazione con Python.
Configurazione dell'autenticazione Amazon EC2 per Neptune IAM
Amazon ti EC2 consente di utilizzare i profili di istanza per fornire automaticamente le credenziali. Per ulteriori informazioni, consulta Using Instance Profiles nella Guida per l'IAMutente.
Per prima cosa aggiungi una relazione di fiducia che concede l'autorizzazione ad assumere il ruolo al EC2 servizio Amazon.
Aggiungi la seguente relazione di fiducia al ruolo di autenticazione IAM Neptune. Se non disponi di un ruolo di autenticazione IAM Neptune, consulta. Utilizzo di diversi tipi di IAM politiche per controllare l'accesso a Neptune
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Per informazioni su come aggiungere la relazione di trust al ruolo, consulta Modifica della relazione di trust per un ruolo esistente nella Guida di amministrazione di AWS Directory Service .
Se la policy Neptune non è ancora collegata a un ruolo, creare un nuovo ruolo. Allega la politica di autenticazione di IAM Neptune, quindi aggiungi la politica di attendibilità. Per ulteriori informazioni su come creare un nuovo ruolo, consulta Creazione di un nuovo ruolo nella Guida di amministrazione di AWS Directory Service .
Per utilizzare un script per ottenere le credenziali
-
Esegui il comando riportato qui di seguito per installare il comando jq. Lo script utilizza questo comando per analizzare l'output del comando curl.
sudo yum -y install jq
-
Crea un file denominato
credentials.sh
in un editor di testo e aggiungi il seguente testo. Sostituisci la regione del servizio con il tuo valore.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
-
Esegui lo script nella shell
bash
utilizzando il comandosource
:source credentials.sh
Ancora meglio è aggiungere i comandi di questo script al
.bashrc
file sull'EC2istanza in modo che vengano richiamati automaticamente quando effettui l'accesso, rendendo disponibili le credenziali temporanee alla console Gremlin. -
Collegati utilizzando uno dei seguenti metodi.
Connessione ai database Amazon Neptune IAM tramite l'autenticazione con la console Gremlin
Connessione ai database IAM Amazon Neptune tramite Gremlin Java
Connessione ai database Amazon Neptune IAM tramite l'autenticazione con Java e SPARQL
Connessione ai database IAM Amazon Neptune tramite l'autenticazione con Python