

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Java and SPARQL에서 IAM 인증을 사용하여 Amazon Neptune 데이터베이스에 연결
<a name="iam-auth-connecting-sparql-java"></a>

이 섹션에서는 Signature Version 4 인증으로 RDF4J 또는 Apache Jena를 사용하여 Neptune에 연결하는 법을 보여줍니다.

**사전 조건**
+ Java 8 이상.
+ Apache Maven 3.3 이상.

  Amazon Linux를 실행하는 EC2 인스턴스에 이러한 사전 조건을 설치하는 방법은 [IAM 인증을 사용하여 Amazon Neptune 데이터베이스를 연결하기 위한 사전 조건](iam-auth-connect-prerq.md) 단원을 참조하십시오.
+ 요청에 서명할 IAM 자격 증명입니다. 자세한 내용은 *AWS SDK for Java 개발자 안내서*의 [기본 보안 인증 정보 공급자 체인 사용](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 DB 인스턴스의 리전을 표시할 수 있습니다.
  + 미국 동부(버지니아 북부):   `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`
  + 중동(UAE):   `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 Version 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. 최신 태그와 함께 브랜치를 확인하여 최신 버전의 프로젝트를 가져옵니다.

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

1. 다음 명령 중 하나를 입력하여 예제 코드를 컴파일하고 실행합니다.

   *your-neptune-endpoint*를 Neptune DB 인스턴스의 호스트 이름 또는 IP 주소로 바꿉니다. 기본 포트는 8182입니다.
**참고**  
사용자의 Neptune DB 인스턴스 호스트 이름을 찾는 방법은 [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 서명 드라이버를 사용하려면 `pom.xml`의 `<dependencies>` 섹션에 `amazon-neptune-sigv4-signer` Maven 패키지를 추가하십시오. 이 예제를 시작점으로 사용하는 것이 좋습니다.