Autenticazione IAM con le credenziali temporanee - 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à.

Autenticazione IAM con le credenziali temporanee

Amazon Neptune supporta l'autenticazione IAM con le credenziali temporanee.

Puoi utilizzare un ruolo assunto per l'autenticazione usando una policy di autenticazione IAM, come una delle policy di esempio indicate 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, consulta Utilizzo di credenziali di sicurezza temporanee per richiedere l'accesso alle risorse. AWS

Nelle seguenti sezioni viene descritto come consentire l'accesso e recuperare le credenziali temporanee.

Per autenticare con le credenziali temporanee
  1. Creare un ruolo IAM con l'autorizzazione per accedere a un cluster Neptune. Per ulteriori informazioni sulla creazione di questo ruolo, consulta Utilizzo di diversi tipi di policy IAM 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 e firma con AWS Signature versione 4.

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 innanzitutto aggiungere una relazione di fiducia che conceda il permesso di assumere il ruolo all' AWS utente che eseguirà il comando. AWS CLI

Aggiungere la seguente relazione di trust al ruolo di autenticazione IAM di Neptune. Se non si dispone di un ruolo di autenticazione IAM di Neptune, vedi Utilizzo di diversi tipi di policy IAM 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. Collegare la policy di autenticazione IAM di Neptune e aggiungere la policy di trust. 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 .

Per eseguire AWS CLI manualmente
  1. Digita il comando seguente per richiedere le credenziali utilizzando AWS CLI. Sostituisci l'ARN del ruolo, 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, l'ARN del ruolo, 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 di AWS Lambda per l'autenticazione IAM di Neptune

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.

Aggiungere la seguente relazione di trust al ruolo di autenticazione IAM di Neptune. Se non si dispone di un ruolo di autenticazione IAM di Neptune, vedi Utilizzo di diversi tipi di policy IAM 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. Collegare la policy di autenticazione IAM di Neptune e aggiungere la policy di trust. 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. Questo ruolo è necessario per accedere alle risorse Neptune che sono solo VPC.

  4. Assegnare il ruolo IAM di autenticazione Neptune alla funzione Lambda.

    Per ulteriori informazioni, consulta Autorizzazioni di AWS Lambda nella Guida per gli sviluppatori di AWS Lambda .

  5. Copiare l'autenticazione di IAM Python di esempio nel codice di funzione Lambda.

    Per ulteriori informazioni sull'esempio e sul codice di esempio, consulta Esempio: Connessione a Neptune tramite Python con la firma di Signature Version 4.

Configurazione di Amazon EC2 per l'autenticazione IAM di Neptune

Amazon EC2 consente di utilizzare i profili di istanza per fornire automaticamente le credenziali. Per ulteriori informazioni, consulta Utilizzo dei profili dell'istanza nella Guida per l'utente di IAM.

Innanzitutto è necessario aggiungere una relazione di trust che conceda al servizio Amazon EC2 l'autorizzazione ad assumere il ruolo.

Aggiungere la seguente relazione di trust al ruolo di autenticazione IAM di Neptune. Se non si dispone di un ruolo di autenticazione IAM di Neptune, vedi Utilizzo di diversi tipi di policy IAM 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. Collegare la policy di autenticazione IAM di Neptune e aggiungere la policy di trust. 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.

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

    source credentials.sh

    Ancora meglio è aggiungere i comandi in questo script al file .bashrc sull'istanza EC2 in modo che vengano richiamati automaticamente al momento dell'accesso, rendendo disponibili le credenziali temporanee per la console di Gremlin.

  4. Collegati utilizzando uno dei seguenti metodi.