Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Java 동기화 드라이버
/ /

Amazon Web Services ID 및 액세스 관리

MONGODB-AWS 인증 메커니즘 Amazon Web Services ID 및 액세스 관리(Amazon Web Services IAM) 자격 증명 사용하여 MongoDB 에 사용자를 인증합니다. 이 메커니즘은 MongoDB Atlas 에 인증할 때만 사용할 수 있습니다.

Amazon Web Services IAM 인증을 위한 Atlas 구성

Amazon Web Services IAM 인증 위한 MongoDB Atlas 구성에 대해 자세히 학습 Atlas 설명서에서 Amazon Web Services IAM으로 인증 설정을 참조하세요.

이 페이지의 코드 예제에서는 다음 자리 표시자를 사용합니다.

  • <awsKeyId>: Amazon Web Services 액세스 키 ID

  • <atlasUri>: MongoDB Atlas 배포서버 서버의 네트워크 주소

  • <awsSecretKey>: Amazon Web Services 시크릿 액세스 키

  • <awsSessionToken>: Amazon Web Services 세션 토큰

  • <hostname>: MongoDB Atlas 배포서버 서버의 호스트 이름

  • <port>: MongoDB Atlas 배포서버 서버의 포트

이 페이지의 코드 예제를 사용하려면 이러한 자리 표시자를 원하는 값으로 바꾸세요.

드라이버에 이 인증 메커니즘을 사용하도록 지시하려면 연결 문자열의 매개변수로 또는 MongoCredential.createAwsCredential() 팩토리 메서드를 사용하여 MONGODB-AWS 를 지정할 수 있습니다.

이 섹션에서는 이 인증 메커니즘 지정하는 방법과 Amazon Web Services IAM 자격 증명 제공하는 다양한 방법에 대해 설명합니다.

중요

MONGODB-AWS 자격 증명 제공하는 이 메서드는 Java 운전자 v4.8 이상에서만 사용할 수 있습니다.

다음 기능을 제공하는 Java 용 Amazon Web Services SDK의 v1 또는 v2 를 사용하여 자격 증명 지정할 수 있습니다.

MONGODB-AWS 인증 에 Java 용 Amazon Web Services SDK를 사용하려면 다음 작업을 수행해야 합니다.

  1. 인증 메커니즘 지정

  2. 프로젝트에 SDK를 종속 요소로 추가하세요.

  3. 자격 증명 제공자 체인의 방법 중 하나를 사용하여 자격 증명 제공합니다.

MongoCredential을 사용하여 인증 메커니즘을 지정하려면, 다음 예시와 같이 MongoCredential.createAwsCredential() 팩토리 메서드를 사용하고, MongoClientMongoCredential 인스턴스를 추가합니다:

MongoCredential credential = MongoCredential.createAwsCredential(null, null);
// Creates a MongoClient that receives configuration information from a MongoCredential and environment variables
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

연결 문자열에 인증 메커니즘을 지정하려면 다음 예시와 같이 이를 매개 변수로 추가합니다.

MongoClient mongoClient = MongoClients.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS");

AWS SDK를 프로젝트에 종속성으로 추가하려면 필요한 버전에 대한 다음 AWS 설명서를 참조하세요.

참고

Java v2용 Amazon Web Services SDK의 경우 Java 운전자 software.amazon.awssdk:auth:2.18.9 종속성을 사용하여 테스트합니다.

Java v1용 Amazon Web Services SDK의 경우 Java 운전자 com.amazonaws:aws-java-sdk-core:1.12.337 종속성을 사용하여 테스트합니다.

자격 증명을 제공하려면 필요한 버전에 대한 다음 AWS 설명서를 참조하세요.

참고

프로젝트에 AWS SDK for Java의 v1 및 v2를 모두 포함하는 경우 v2 메서드를 사용하여 자격 증명을 제공해야 합니다.

드라이버에 MONGODB-AWS 인증 메커니즘을 사용하도록 지시하고 적절한 환경 변수를 설정하여 AWS IAM 자격 증명을 제공할 수 있습니다.

환경 변수를 사용하여 자격 증명 제공하려면 다음 조치를 수행해야 합니다.

  1. 인증 메커니즘 지정

  2. 적절한 환경 변수 추가

MongoCredential 또는 연결 문자열 사용하여 인증 메커니즘 지정할 수 있습니다.

MongoCredential을 사용하여 인증 메커니즘을 지정하려면, 다음 예시와 같이 MongoCredential.createAwsCredential() 팩토리 메서드를 사용하고, MongoClientMongoCredential 인스턴스를 추가합니다:

MongoCredential credential = MongoCredential.createAwsCredential(null, null);
// Creates a MongoClient that receives configuration information from a MongoCredential and environment variables
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

연결 문자열에 인증 메커니즘을 지정하려면 다음 예시와 같이 이를 매개 변수로 추가합니다.

MongoClient mongoClient = MongoClients.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS");

환경 변수를 설정하다 다음 유형의 인증 활성화 할 수도 있습니다.

  • 프로그래밍 방식의 액세스 키

  • 웹 멱등

  • ECS 컨테이너 자격 증명

  • EC2 컨테이너 자격 증명

다음 예시는 bash 또는 유사한 셸을 사용하여 환경 변수에서 프로그래밍 방식 액세스 키를 설정하는 방법을 보여 줍니다:

export AWS_ACCESS_KEY_ID=<awsKeyId>
export AWS_SECRET_ACCESS_KEY=<awsSecretKey>
export AWS_SESSION_TOKEN=<awsSessionToken>

해당 역할에 대해 AWS 세션 토큰이 필요하지 않은 경우 AWS_SESSION_TOKEN이 포함된 줄을 생략하세요.

OIDC(OpenID Connect)와 호환되는 웹 멱등을 사용해 Amazon Elastic Kubernetes Service(EKS) 또는 기타 서비스에 인증할 수 있습니다.

중요

웹 멱등을 사용하여 인증하려면 프로젝트에 AWS SDK의 v1 또는 v2를 종속 요소로 포함해야 합니다.

웹 멱등을 사용하려면 OIDC 토큰이 포함된 파일을 만듭니다. 다음으로, 다음 예와 같이 bash 또는 유사한 셸을 사용하여 환경 변수를 이 파일의 절대 경로로 설정합니다.

export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file containing your OIDC token>

ECS 컨테이너 자격 증명을 사용하여 인증하려면 다음 예와 같이 bash 또는 유사한 셸을 사용하여 환경 변수에서 ECS 엔드포인트 상대 URI를 설정합니다:

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<your ECS endpoint>

EC2 container 자격 증명 을 사용하여 인증하려면 이 섹션에 언급된 환경 변수가 설정되어 있지 않아야 합니다. 드라이버는 환경 변수가 아닌 기본 IPv4 EC2 인스턴스 메타데이터 엔드포인트에서 자격 증명을 가져옵니다.

MongoCredential 인스턴스 사용하여 MongoClient 에 Amazon Web Services IAM 자격 증명 제공할 수 있습니다. MONGODB-AWS 인증 위한 MongoCredential 인스턴스 구성하려면 createAwsCredential() 팩토리 메서드를 사용합니다.

MongoCredential.createAwsCredential() 메서드에는 프로그래밍 액세스 키만 제공할 수 있습니다. ECS 또는 EC2 컨테이너 자격 증명 제공해야 하는 경우 환경 변수 사용 또는 Java 용 Amazon Web Services SDK 사용 섹션의 지침을 따르세요.

MONGODB-AWS 인증 에 MongoCredential 를 사용하려면 다음 조치를 수행해야 합니다.

  1. 인증 메커니즘 지정

  2. 자격 증명 부여하기

MongoCredential을 사용하여 인증 메커니즘을 지정하려면, 다음 예시와 같이 MongoCredential.createAwsCredential() 팩토리 메서드를 사용하고, MongoClientMongoCredential 인스턴스를 추가합니다:

MongoCredential credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray());
// Creates a MongoClient that receives AWS credentials from the MongoCredential instance
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

AWS 세션 토큰을 지정해야 하는 경우 다음 예시와 같이 withMechanismProperty() 메서드에 전달합니다.

MongoCredential credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray()).withMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>");
// Creates a MongoClient that receives configuration information from a MongoCredential instance
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

자격 증명을 새로 고치려면 다음 예와 같이 새 자격 증명을 반환하는 Supplier lambda 표현식을 선언하면 됩니다.

Supplier<AwsCredential> awsFreshCredentialSupplier = () -> {
// Add your code to fetch new credentials
return new AwsCredential("<awsKeyId>", "<awsSecretKey>", "<awsSessionToken>");
};
// Creates a MongoCredential instance to specify the new AWS credentials
MongoCredential credential = MongoCredential.createAwsCredential(null, null)
.withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier);
// Creates a MongoClient that receives new configuration information from a MongoCredential instance
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Collections.singletonList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

참고

연결 문자열 에 Amazon Web Services IAM 자격 증명 제공해야 하는 경우, v4.7 또는 이전 버전의 Java 운전자 설명서를 참조하세요.

이 페이지에서 설명하는 메서드 또는 유형에 대해 자세히 학습 다음 API 설명서를 참조하세요.

돌아가기

X.509

이 페이지의 내용