Utilizzo di credenziali temporanee per la connessione ad Amazon Neptune - Amazon Neptune

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

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

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

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
  1. 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-name test --profile testprofile
  2. 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" } }
  3. 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
  4. Collegati utilizzando uno dei seguenti metodi.

Per utilizzare un script per ottenere le credenziali
  1. 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
  2. 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-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. Collegati utilizzando uno dei seguenti metodi.

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
  1. Accedi AWS Management Console e apri la AWS Lambda console all'indirizzo. https://console.aws.amazon.com/lambda/

  2. Creare una nuova funzione Lambda per Python versione 3.6.

  3. Assegnare il ruolo AWSLambdaVPCAccessExecutionRole alla funzione Lambda. Ciò è necessario per accedere alle risorse di Neptune, che sono solo. VPC

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

  5. 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
  1. 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
  2. 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
  3. Esegui lo script nella shell bash utilizzando il comando source:

    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.

  4. Collegati utilizzando uno dei seguenti metodi.