IAMAutenticazione tramite 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à.

IAMAutenticazione tramite credenziali temporanee

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 a 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 il controllo dell'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 Version 4.

Sono disponibili vari metodi per recuperare le credenziali temporanee a seconda dell'ambiente.

Ottenere credenziali temporanee utilizzando il AWS CLI

Per ottenere le credenziali, utilizzare il AWS Command Line Interface (AWS CLI), per prima cosa è necessario aggiungere una relazione di fiducia che conceda il permesso di assumere il ruolo al AWS utente che eseguirà il AWS CLI comando.

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 il controllo dell'accesso a Neptune

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test" }, "Action": "sts:AssumeRole" } ] }

Per informazioni sull'aggiunta della relazione di fiducia al ruolo, vedere Modifica della relazione di fiducia per un ruolo esistente nel AWS Directory Service Guida all'amministrazione.

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 disponga di AWS CLI installato.

Per eseguire il AWS CLI manualmente
  1. Immettere il seguente comando per richiedere le credenziali utilizzando il 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 di 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 AWS Autenticazione 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 il controllo dell'accesso a Neptune

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Per informazioni sull'aggiunta della relazione di fiducia al ruolo, vedere Modifica della relazione di fiducia per un ruolo esistente nel AWS Directory Service Guida all'amministrazione.

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 sulla creazione di un nuovo ruolo, vedere Creazione di un nuovo ruolo nella AWS Directory Service Guida all'amministrazione.

Per accedere a Neptune da Lambda
  1. Accedi a AWS Management Console e apri il AWS Lambda console presso 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 AWSAutorizzazioni Lambda in AWS Lambda Guida per gli sviluppatori.

  5. Copia l'esempio di IAM autenticazione Python nel codice della 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 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 il controllo dell'accesso a Neptune

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Per informazioni sull'aggiunta della relazione di fiducia al ruolo, vedere Modifica della relazione di fiducia per un ruolo esistente nel AWS Directory Service Guida all'amministrazione.

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 sulla creazione di un nuovo ruolo, vedere Creazione di un nuovo ruolo nella AWS Directory Service Guida all'amministrazione.

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 di questo script al .bashrc file sull'EC2istanza in modo che vengano richiamati automaticamente al momento dell'accesso, rendendo disponibili le credenziali temporanee alla console Gremlin.

  4. Collegati utilizzando uno dei seguenti metodi.