As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando credenciais temporárias para se conectar ao Amazon Neptune
O Amazon Neptune é compatível com a autenticação do IAM usando credenciais temporárias.
Você pode usar uma função assumida para autenticar ao usar uma política de autenticação do IAM como uma das políticas de exemplo nas seções anteriores.
Se estiver usando credenciais temporárias, você deve especificar AWS_SESSION_TOKEN
bem como AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, e SERVICE_REGION
.
nota
As credenciais temporárias expiram após um intervalo especificado, incluindo o token de sessão.
Você deve atualizar o seu token de sessão ao solicitar novas credenciais. Para obter mais informações, consulte Usando credenciais de segurança temporárias para solicitar acesso aos AWS recursos.
As seções a seguir descrevem como permitir o acesso e recuperar credenciais temporárias.
Para autenticar usando credenciais temporárias
Criar um perfil do IAM com permissão para acessar um cluster do Neptune. Para obter informações sobre como criar essa função, consulte Usar diferentes tipos de política do IAM para controle de acesso ao Neptune.
-
Adicionar um relacionamento de confiança à função que permita acesso as credenciais.
Recupere as credenciais temporárias, incluindo
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
, eAWS_SESSION_TOKEN
. Conecte-se ao cluster do Neptune e assine as solicitações usando as credenciais temporárias. Para obter mais informações sobre como conectar e assinar solicitações, consulte Conectando-se ao seu banco de dados Amazon Neptune usando autenticação AWS Identity and Access Management.
Há vários métodos para recuperar credenciais temporárias dependendo do ambiente.
Tópicos
Como obter credenciais temporárias com a AWS CLI
Para obter credenciais usando o AWS Command Line Interface (AWS CLI), primeiro você precisa adicionar uma relação de confiança que conceda permissão para assumir a função ao AWS usuário que executará o AWS CLI comando.
Adicione o seguinte relacionamento de confiança ao perfil de autenticação do IAM do Neptune. Se você não tiver um perfil de autenticação do IAM do Neptune, consulte Usar diferentes tipos de política do IAM para controle de acesso ao Neptune.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test" }, "Action": "sts:AssumeRole" } ] }
Para obter informações sobre como ampliar a relação de confiança à função, consulte Editar a relação de confiança de uma função existente no Guia de administração do AWS Directory Service .
Se a política do Neptune ainda não estiver associada a um perfil, crie um perfil. Associe a política de autenticação do IAM do Neptune e, depois, adicione a política de confiança. Para obter informações sobre como criar uma nova função, consulte Como criar uma função.
nota
As seções a seguir pressupõem que você tenha o AWS CLI instalado.
Para executar o AWS CLI manualmente
-
Digite o comando a seguir para solicitar as credenciais usando a AWS CLI. Substitua o ARN da função, nome de sessão e perfil com seus próprios valores.
aws sts assume-role --role-arn
arn:aws:iam::123456789012:role/NeptuneIAMAuthRole
--role-session-nametest
--profiletestprofile
-
A seguir está um exemplo de saída do comando. A seção
Credentials
contém os valores de que você precisa.nota
Anote o valor
Expiration
, pois ele será necessário para obter novas credenciais após esse período.{ "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
" } } -
Defina as variáveis do ambiente usando as credenciais retornadas.
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
-
Conectar-se usando um dos seguintes métodos.
Conectando-se aos bancos de dados do Amazon Neptune usando a autenticação IAM com o console Gremlin
Conectando-se aos bancos de dados Amazon Neptune usando IAM com Gremlin Java
Conectando-se aos bancos de dados Amazon Neptune usando autenticação IAM com Java e SPARQL
Conectando-se aos bancos de dados Amazon Neptune usando a autenticação IAM com Python
Para usar um script para obter as credenciais
-
Execute o seguinte comando para instalar comando jq. O script usa esse comando para analisar a saída do AWS CLI comando.
sudo yum -y install jq
-
Crie um arquivo chamado
credentials.sh
em um editor de texto e adicione o texto a seguir. Substitua a região de serviço, ARN da função, nome de sessão e perfil com seus próprios valores.#!/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
-
Conectar-se usando um dos seguintes métodos.
Conectando-se aos bancos de dados do Amazon Neptune usando a autenticação IAM com o console Gremlin
Conectando-se aos bancos de dados Amazon Neptune usando IAM com Gremlin Java
Conectando-se aos bancos de dados Amazon Neptune usando autenticação IAM com Java e SPARQL
Conectando-se aos bancos de dados Amazon Neptune usando a autenticação IAM com Python
Configurando a autenticação do AWS Lambda para Neptune IAM
AWS Lambda inclui credenciais automaticamente sempre que a função Lambda é executada.
Primeiro, adicione uma relação de confiança que conceda permissão para assumir o perfil ao serviço do Lambda.
Adicione o seguinte relacionamento de confiança ao perfil de autenticação do IAM do Neptune. Se você não tiver um perfil de autenticação do IAM do Neptune, consulte Usar diferentes tipos de política do IAM para controle de acesso ao Neptune.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Para obter informações sobre como ampliar a relação de confiança à função, consulte Editar a relação de confiança de uma função existente no Guia de administração do AWS Directory Service.
Se a política do Neptune ainda não estiver associada a um perfil, crie um perfil. Associe a política de autenticação do IAM do Neptune e, depois, adicione a política de confiança. Para obter informações sobre como criar uma função, consulte Criar uma função no Guia de administração do AWS Directory Service .
Como acessar o Neptune pelo Lambda
Faça login no AWS Management Console e abra o AWS Lambda console em https://console.aws.amazon.com/lambda/
. Crie uma nova função do Lambda para Python versão 3.6.
Atribua a função
AWSLambdaVPCAccessExecutionRole
para a função Lambda. Isso é necessário para acessar os recursos do Neptune, que são apenas VPC.-
Atribua o perfil do IAM de autenticação do Neptune para a função do Lambda.
Para obter mais informações, consulte AWS Lambda Permissions no Guia do desenvolvedor do AWS Lambda .
-
Copie o exemplo de Python de autenticação do IAM no código de função Lambda.
Para obter mais informações sobre os exemplos e os códigos de exemplo, consulte Conectando-se aos bancos de dados Amazon Neptune usando a autenticação IAM com Python.
Configurando a autenticação do Amazon EC2 for Neptune IAM
A Amazon EC2 permite que você use perfis de instância para fornecer credenciais automaticamente. Para obter mais informações, consulte Using Instance Profiles no Guia do usuário do IAM.
Primeiro, você adiciona uma relação de confiança que concede permissão para assumir a função no EC2 serviço da Amazon.
Adicione o seguinte relacionamento de confiança ao perfil de autenticação do IAM do Neptune. Se você não tiver um perfil de autenticação do IAM do Neptune, consulte Usar diferentes tipos de política do IAM para controle de acesso ao Neptune.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Para obter informações sobre como ampliar a relação de confiança à função, consulte Editar a relação de confiança de uma função existente no Guia de administração do AWS Directory Service .
Se a política do Neptune ainda não estiver associada a um perfil, crie um perfil. Associe a política de autenticação do IAM do Neptune e, depois, adicione a política de confiança. Para obter informações sobre como criar uma função, consulte Criar uma função no Guia de administração do AWS Directory Service .
Para usar um script para obter as credenciais
-
Execute o seguinte comando para instalar comando jq. O script usa esse comando para analisar a saída do comando curl.
sudo yum -y install jq
-
Crie um arquivo chamado
credentials.sh
em um editor de texto e adicione o texto a seguir. Substitua a região de serviço com o seu próprio valor.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
-
Execute o script no shell
bash
usando o comandosource
:source credentials.sh
Melhor ainda é adicionar os comandos desse script ao
.bashrc
arquivo em sua EC2 instância para que eles sejam invocados automaticamente quando você fizer login, disponibilizando credenciais temporárias para o console do Gremlin. -
Conectar-se usando um dos seguintes métodos.
Conectando-se aos bancos de dados do Amazon Neptune usando a autenticação IAM com o console Gremlin
Conectando-se aos bancos de dados Amazon Neptune usando IAM com Gremlin Java
Conectando-se aos bancos de dados Amazon Neptune usando autenticação IAM com Java e SPARQL
Conectando-se aos bancos de dados Amazon Neptune usando a autenticação IAM com Python