選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用來自命令列的 IAM 身分驗證連線至 Amazon Neptune 資料庫

焦點模式
使用來自命令列的 IAM 身分驗證連線至 Amazon Neptune 資料庫 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

如本文件中的許多範例所示,具有將查詢提交至 Neptune 資料庫叢集的命令列工具非常方便。如果未啟用 IAM 身分驗證,curl 工具是與 Neptune 端點通訊的絕佳選擇。

不過,若要保護您的資料,最好啟用 IAM 身分驗證。

當 IAM 身分驗證啟用時,每個請求都必須使用 Signature 第 4 版 (Sig4) 進行簽署。第三方 awscurl 命令列工具會使用與 curl 相同的語法,並且可以使用 Sig4 簽署來簽署查詢。以下 使用 awscurl 一節說明如何安全地使用 awscurl 搭配臨時憑證。

設定命令列工具來使用 HTTPS

Neptune 要求所有連線都使用 HTTPS。任何命令行工具 (例如 curlawscurl) 需要存取適當的憑證,才能使用 HTTPS。只要 curlawscurl 可以找到適當的憑證,它們處理 HTTPS 連線的方式就跟 HTTP 連線一樣,無需額外參數。此文件的範例是以該案例為基礎。

若要了解如何取得這類憑證,以及如何將它們正確格式化為 curl 可以使用的憑證授權機構 (CA) 憑證存放區,請參閱 curl 文件中的 SSL 憑證驗證

然後,您可以使用 CURL_CA_BUNDLE 環境變數來指定此 CA 憑證存放區的位置。在 Windows 上,curl 會自動在名為 curl-ca-bundle.crt 的檔案中尋找它。它會先在和 curl.exe 相同的目錄中尋找,然後再尋找路徑的其他位置。如需詳細資訊,請參閱 SSL Certificate Verification

使用 awscurl 搭配臨時憑證,安全地連線至啟用 IAM 身分驗證的資料庫叢集

awscurl 工具會使用與 curl 相同的語法,但也需要額外的資訊:

  • --access_key – 有效的存取金鑰。如果未使用此參數提供,則必須在 AWS_ACCESS_KEY_ID 環境變數或在組態檔案中提供它。

  • --secret_key – 對應至存取金鑰的有效私密存鑰。如果未使用此參數提供,則必須在 AWS_SECRET_ACCESS_KEY 環境變數或在組態檔案中提供它。

  • --security_token – 有效的工作階段權杖。如果未使用此參數提供,則必須在 AWS_SECURITY_TOKEN 環境變數或在組態檔案中提供它。

在過去,常見的做法是使用永久憑證搭配 awscurl (例如 IAM 使用者憑證,甚至是根憑證),但不建議這麼做。相反地,使用其中一個 AWS Security Token Service (STS) API 或其中一個 AWS CLI 包裝函式來產生臨時憑證。

最好將 STS 呼叫所傳回的 AccessKeyIdSecretAccessKeySessionToken 值放入 Shell 工作階段中的適當環境變數中,而不是放入組態檔案中。然後,當 Shell 終止時,憑證會自動捨棄,而組態檔案不是這種情況。同樣地,請不要為臨時憑證請求長於您可能需要的持續時間。

下列範例展示您可能在 Linux Shell 中採取的步驟,以使用 sts assume-role 取得有效半小時的臨時憑證,然後將它們放在 awscurl 可以找到它們的環境變數中:

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

然後,您可以使用 awscurl 對資料庫叢集提出簽署的請求,如下所示:

awscurl (your cluster endpoint):8182/status \ --region us-east-1 \ --service neptune-db

在本頁面

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。