IAMAutenticação usando credenciais temporárias - Amazon Neptune

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

IAMAutenticação usando credenciais temporárias

O Amazon Neptune IAM oferece suporte à autenticação usando credenciais temporárias.

Você pode usar uma função assumida para se autenticar usando uma política de IAM autenticação, como um dos exemplos de políticas 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
  1. Crie uma IAM função com permissão para acessar um cluster do Neptune. Para obter informações sobre como criar essa função, consulte Usando diferentes tipos de IAM políticas para controlar o acesso a Neptune.

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

  3. 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 Conexão e assinatura com o AWS Signature versão 4.

Há vários métodos para recuperar credenciais temporárias dependendo do ambiente.

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 a seguinte relação de confiança à função de autenticação do IAM Neptune. Se você não tiver uma função de autenticação do IAM Neptune, consulte. Usando diferentes tipos de IAM políticas para controlar o acesso a 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. Anexe a política de autenticação do IAM Neptune e, em seguida, 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
  1. Digite o comando a seguir para solicitar as credenciais usando a AWS CLI. Substitua a funçãoARN, o nome da sessão e o perfil pelos seus próprios valores.

    aws sts assume-role --role-arn arn:aws:iam::123456789012:role/NeptuneIAMAuthRole --role-session-name test --profile testprofile
  2. 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" } }
  3. 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
  4. Conectar-se usando um dos seguintes métodos.

Para usar um script para obter as credenciais
  1. 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
  2. Crie um arquivo chamado credentials.sh em um editor de texto e adicione o texto a seguir. Substitua a região do serviço, a funçãoARN, o nome da sessão e o perfil pelos seus próprios valores.

    #!/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. Conectar-se usando um dos seguintes métodos.

Configurando a autenticação 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 a seguinte relação de confiança à função de autenticação do IAM Neptune. Se você não tiver uma função de autenticação do IAM Neptune, consulte. Usando diferentes tipos de IAM políticas para controlar o acesso a 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. Anexe a política de autenticação do IAM Neptune e, em seguida, 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
  1. Faça login no AWS Management Console e abra o AWS Lambda console em https://console.aws.amazon.com/lambda/.

  2. Crie uma nova função do Lambda para Python versão 3.6.

  3. Atribua a função AWSLambdaVPCAccessExecutionRole para a função Lambda. Isso é necessário para acessar os recursos do Neptune, que são apenas. VPC

  4. Atribua a função de IAM autenticação Neptune à função Lambda.

    Para obter mais informações, consulte AWS Lambda Permissions no Guia do desenvolvedor do AWS Lambda .

  5. Copie a amostra IAM de autenticação do Python no código da função Lambda.

    Para obter mais informações sobre os exemplos e os códigos de exemplo, consulte Exemplo: Estabelecer conexão com o Neptune usando Python com a assinatura do Signature versão 4.

Configurando a Amazon EC2 para autenticação Neptune IAM

A Amazon EC2 permite que você use perfis de instância para fornecer credenciais automaticamente. Para obter mais informações, consulte Como usar perfis de instância no Guia IAM do usuário.

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 a seguinte relação de confiança à função de autenticação do IAM Neptune. Se você não tiver uma função de autenticação do IAM Neptune, consulte. Usando diferentes tipos de IAM políticas para controlar o acesso a 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. Anexe a política de autenticação do IAM Neptune e, em seguida, 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
  1. 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
  2. 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.

    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. Execute o script no shell bash usando o comando source:

    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.

  4. Conectar-se usando um dos seguintes métodos.