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á.
Conectando-se aos bancos de dados do Amazon Neptune IAM usando a autenticação da linha de comando
Ter uma ferramenta de linha de comando para enviar consultas ao cluster de banco de dados do Neptune é muito útil, conforme ilustrado em muitos dos exemplos desta documentação. A ferramenta curl
No entanto, para manter seus dados seguros, é melhor ativar a IAM autenticação.
Quando a IAM autenticação está habilitada, todas as solicitações devem ser assinadas usando o Signature Version 4 (Sig4). A ferramenta de linha de comando awscurlcurl
e pode assinar consultas usando a assinatura Sig4. A seção Utilizar o awscurl abaixo explica como usar awscurl
com segurança credenciais temporárias.
Configurando uma ferramenta de linha de comando para usar HTTPS
Neptune exige que todas as conexões sejam usadas. HTTPS Qualquer ferramenta de linha de comando, como curl
ou awscurl
precisa acessar os certificados apropriados, a fim de ser usadaHTTPS. Desde que awscurl
possam localizar curl
ou localizar os certificados apropriados, eles lidam com HTTPS as conexões da mesma forma que HTTP as conexões, sem precisar de parâmetros extras. Os exemplos desta documentação se baseiam nesse cenário.
Para saber como obter esses certificados e como formatá-los adequadamente em um repositório de certificados de autoridade de certificação (CA) que curl
possa ser usado, consulte Verificação de SSL certificadoscurl
documentação.
Depois, você pode especificar o local desse armazenamento de certificados CA usando a variável de ambiente CURL_CA_BUNDLE
. No Windows, o curl
os procura automaticamente em um arquivo chamado curl-ca-bundle.crt
. Ele procura primeiro no mesmo diretório curl.exe
e, em seguida, em outros lugares no caminho. Para obter mais informações, consulte Verificação do SSL certificado
Usando awscurl
com credenciais temporárias para se conectar com segurança a um cluster de banco de dados com a autenticação ativada IAM
A ferramenta awscurlcurl
, mas também precisa de informações adicionais:
-
--access_key
: uma chave de acesso válida. Se não for fornecida usando esse parâmetro, ela deverá ser fornecida na variável de ambienteAWS_ACCESS_KEY_ID
ou em um arquivo de configuração. -
--secret_key
: a chave de acesso secreta que corresponde à chave de acesso. Se não for fornecida usando esse parâmetro, ela deverá ser fornecida na variável de ambienteAWS_SECRET_ACCESS_KEY
ou em um arquivo de configuração. -
--security_token
: um token de sessão válido. Se não for fornecida usando esse parâmetro, ela deverá ser fornecida na variável de ambienteAWS_SECURITY_TOKEN
ou em um arquivo de configuração.
No passado, era uma prática comum usar credenciais persistentes comawscurl
, como credenciais de IAM usuário ou até mesmo credenciais raiz, mas isso não é recomendado. Em vez disso, gere credenciais temporárias usando um dos AWS
Security Token Service (STS) APIs ou um de seus AWS CLI wrappers.
É melhor colocar os SessionToken
valores AccessKeyId
SecretAccessKey
, e que são retornados pela STS chamada nas variáveis de ambiente apropriadas em sua sessão de shell, em vez de em um arquivo de configuração. Então, quando o shell for encerrado, as credenciais serão automaticamente descartadas, diferente de um arquivo de configuração. Da mesma forma, não solicite para as credenciais temporárias uma duração maior do que você provavelmente precisará.
O exemplo a seguir mostra as etapas que você pode executar em um shell Linux para obter credenciais temporárias válidas por meia hora usando sts assume-role e, depois, colocá-las em variáveis de ambiente em que awscurl
pode encontrá-las:
aws sts assume-role \ --duration-seconds 1800 \ --role-arn "arn:aws:iam::
(account-id)
:role/(rolename)
" \ --role-session-name AWSCLI-Session > $output AccessKeyId=$(cat $output | jq '.Credentials''.AccessKeyId') SecretAccessKey=$(cat $output | jq '.Credentials''.SecretAccessKey') SessionToken=$(cat $output | jq '.Credentials''.SessionToken') export AWS_ACCESS_KEY_ID=$AccessKeyId export AWS_SECRET_ACCESS_KEY=$SecretAccessKey export AWS_SESSION_TOKEN=$SessionToken
Depois, você pode usar awscurl
para fazer uma solicitação assinada para o cluster de banco de dados mais ou menos desta forma:
awscurl
(your cluster endpoint)
:8182/status \ --region us-east-1 \ --service neptune-db