

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

# 使用 IAM 身分驗證搭配 Java 和 SPARQL 連線至 Amazon Neptune 資料庫
<a name="iam-auth-connecting-sparql-java"></a>

本節說明如何搭配 Signature 第 4 版身分驗證，使用 RDF4J 或 Apache Jena 連線到 Neptune。

**先決條件**
+ Java 8 或更高版本。
+ Apache Maven 3.3 或更高版本。

  如需在執行 Amazon Linux 的 EC2 執行個體上安裝這些先決條件的詳細資訊，請參閱[使用 IAM 身分驗證連接 Amazon Neptune 資料庫的先決條件](iam-auth-connect-prerq.md)。
+ 用於簽署請求的 IAM 登入資料。如需詳細資訊，請參閱《*適用於 Java 的 AWS SDK 開發人員指南*》中的[使用預設憑證提供者鏈結](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default)。
**注意**  
如果您使用臨時登入資料，登入資料會在指定的時間後過期，*包括工作階段字符*。  
當您請求新的登入資料時，必須更新工作階段字符。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[使用暫時安全登入資料來請求存取 AWS 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)。
+ 將 `SERVICE_REGION` 變數設為下列其中一項，指出 Neptune 資料庫執行個體的區域：
  + 美國東部 (維吉尼亞北部)：`us-east-1`
  + 美國東部 (俄亥俄)：`us-east-2`
  + 美國西部 (加利佛尼亞北部)：`us-west-1`
  + 美國西部 (奧勒岡)：`us-west-2`
  + 加拿大 (中部)：`ca-central-1`
  + 加拿大西部 （卡加利）：   `ca-west-1`
  + 南美洲 (聖保羅)：`sa-east-1`
  + 歐洲 (斯德哥爾摩)：`eu-north-1`
  + 歐洲 （西班牙）：   `eu-south-2`
  + 歐洲 (愛爾蘭)：`eu-west-1`
  + 歐洲 (倫敦)：`eu-west-2`
  + 歐洲 (巴黎)：`eu-west-3`
  + 歐洲 (法蘭克福)：`eu-central-1`
  + 中東 (巴林)：`me-south-1`
  + 中東 (阿拉伯聯合大公國)：`me-central-1`
  + 以色列 (特拉維夫)：`il-central-1`
  + 非洲 (開普敦)：`af-south-1`
  + 亞太區域 (香港)：`ap-east-1`
  + 亞太區域 (東京)：`ap-northeast-1`
  + 亞太區域 (首爾)：`ap-northeast-2`
  + 亞太區域 （大阪）：   `ap-northeast-3`
  + 亞太區域 (新加坡)：`ap-southeast-1`
  + 亞太區域 (雪梨)：`ap-southeast-2`
  + 亞太區域 (雅加達)：`ap-southeast-3`
  + 亞太區域 （墨爾本）：   `ap-southeast-4`
  + 亞太區域 （馬來西亞）：   `ap-southeast-5`
  + 亞太區域 (孟買)：`ap-south-1`
  + 亞太區域 （海德拉巴）：   `ap-south-2`
  + 中國 (北京)：`cn-north-1`
  + 中國 (寧夏)：`cn-northwest-1`
  + AWS GovCloud （美國西部）：   `us-gov-west-1`
  + AWS GovCloud （美國東部）：   `us-gov-east-1`

**搭配 Signature 第 4 版簽署，使用 RDF4J 或 Apache Jena 連線到 Neptune**

1. 從 GitHub 複製範本儲存庫。

   ```
   git clone https://github.com/aws/amazon-neptune-sparql-java-sigv4.git
   ```

1. 變更到複製的目錄。

   ```
   cd amazon-neptune-sparql-java-sigv4
   ```

1. 透過簽出具有 latest (最新) 標籤的分支，取得專案的最新版本。

   ```
   git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
   ```

1. 輸入以下其中一個命令來編譯及執行範例程式碼。

   將 *your-neptune-endpoint* 取代為 Neptune 資料庫執行個體的主機名稱或 IP 地址。預設連接埠為 8182。
**注意**  
如需尋找 Neptune 資料庫執行個體主機名稱的相關資訊，請參閱 [連線至 Amazon Neptune 端點](feature-overview-endpoints.md) 一節。

**Eclipse RDF4J**  
輸入以下內容來執行 RDF4J 範例。

   ```
   mvn compile exec:java \
       -Dexec.mainClass="com.amazonaws.neptune.client.rdf4j.NeptuneRdf4JSigV4Example" \
       -Dexec.args="https://your-neptune-endpoint:portsparql region-name"
   ```

**Apache Jena**  
輸入以下內容來執行 Apache Jena 範例。

   ```
   mvn compile exec:java \
       -Dexec.mainClass="com.amazonaws.neptune.client.jena.NeptuneJenaSigV4Example" \
       -Dexec.args="https://your-neptune-endpoint:port"
   ```

1. 若要查看範例的原始程式碼，請參閱 `src/main/java/com/amazonaws/neptune/client/` 目錄中的範例。

若要在您自己 Java 應用程式中使用 SigV4 簽署驅動程式，請將 `amazon-neptune-sigv4-signer` Maven 套件新增到您 `pom.xml` 的 `<dependencies>` 區段。我們建議您使用範例做為起點。