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

AWS IAM 인증

MONGODB- Amazon Web Services 인증 메커니즘은 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으로 인증 설정을 참조하세요.

코틀린 동기 (Kotlin Sync) 운전자 MONGODB-AWS 인증 메커니즘 사용하도록 지시하려면 연결 문자열 에 MONGODB-AWS 를 매개 변수로 지정하거나 MongoCredential.createAwsCredential() 팩토리 메서드를 호출하면 됩니다.

다음 섹션에서는 MONGODB-AWS 인증 메커니즘 지정하고 Amazon Web Services IAM 자격 증명 제공하는 다양한 방법에 대해 학습 수 있습니다.

이러한 섹션에는 다음 자리 표시자를 사용하는 코드 예시가 포함되어 있습니다.

  • awsKeyId: Amazon Web Services 액세스 키 ID 의 값

  • awsSecretKey: Amazon Web Services 시크릿 액세스 키의 값

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

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

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

  • awsSessionToken: Amazon Web Services 세션 토큰의 값

참고

Java v1용 Amazon Web Services SDK에 대한 지원 종료

Java v 용 AWS SDK는 인1 12월 에 지원 31 이2025 종료됩니다. AWS는 Java v 용 AWS SDK로 마이그레이션할 것을2 권장합니다. 자세한 내용은 AWS 사이트 의 지원 종료 알림을 참조하세요.

Amazon Web Services Java v1 및 v2용 소프트웨어 개발 키트(SDK)를 제공합니다. Amazon Web Services SDK는 다음과 같은 기능을 제공합니다.

  • 자격 증명을 얻기 위한 다양한 옵션

  • 애플리케이션 속도 제한을 피하는 데 도움이 되는 자격 증명 캐싱

  • Elastic Kubernetes Service와함께 사용할 자격 증명 제공자 관리

MONGODB-AWS 인증 에 Amazon Web Services SDK를 사용하려면 다음 단계를 수행합니다.

  1. 인증 메커니즘 지정합니다.

  2. SDK를 프로젝트 에 종속성으로 추가합니다.

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

연결 문자열 또는 MongoCredential 객체 사용하여 MONGODB-AWS 인증 메커니즘 지정할 수 있습니다. 해당 지침 및 샘플 코드를 보려면 아래의 Connection String 또는 MongoCredential 탭 선택하세요.

연결 문자열 에 MONGODB-AWS 인증 메커니즘 지정하려면 다음 예시 와 같이 authMechanism 매개 변수를 MONGODB-AWS로 설정하다 .

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

MongoCredential 객체 사용하여 MONGODB-AWS 인증 메커니즘 지정하려면 다음 예시 와 같이 MongoCredential.createAwsCredential() 팩토리 메서드를 호출하고 MongoClientMongoCredential 인스턴스 추가합니다.

val credential = MongoCredential.createAwsCredential(null, null)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

참고

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

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

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

참고

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

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

환경 변수를 사용하여 자격 증명 제공하려면 다음 단계를 수행하세요.

  1. 인증 메커니즘 지정합니다.

  2. 적절한 환경 변수를 추가합니다.

MongoCredential 객체 사용하거나 연결 문자열 에서 MONGODB-AWS 인증 메커니즘 지정할 수 있습니다.

MongoCredential 객체 사용하여 인증 메커니즘 지정하려면 다음 예시 와 같이 MongoCredential.createAwsCredential() 팩토리 메서드를 호출하고 MongoCredential 인스턴스 MongoClient에 추가합니다.

val credential = MongoCredential.createAwsCredential(null, null)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

val mongoClient =
MongoClient.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>

해당 역할 에 대한 Amazon Web Services 세션 토큰이 필요하지 않은 경우 AWS_SESSION_TOKEN 변수를 설정하는 줄을 생략합니다.

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

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<your ECS endpoint>

EC2 컨테이너 자격 증명 사용하여 인증하려면 Amazon Web Services 환경 변수를 설정하다 하지 마세요. 운전자 기본값 IPv4 EC2 인스턴스 메타데이터 엔드포인트에서 자격 증명 가져옵니다.

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

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

MONGODB-AWS 인증 에 MongoCredential 객체 사용하려면 다음 단계를 수행합니다.

  1. 인증 메커니즘 지정합니다.

  2. 자격 증명 제공합니다.

MongoCredential 객체 사용하여 인증 메커니즘 지정하려면 다음 예시 와 같이 MongoCredential.createAwsCredential() 팩토리 메서드를 호출하고 MongoCredential 인스턴스 MongoClient에 추가합니다.

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
.withMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>")
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

자격 증명 새로 고치려면 다음 예시 와 같이 새 자격 증명 반환하는 Supplier Lambda 표현식 을 선언할 수 있습니다.

val awsFreshCredentialSupplier: Supplier<AwsCredential> = Supplier {
// Add your code here to fetch new credentials
// Return the new credentials
AwsCredential("<awsKeyId>", "<awsSecretKey>", "<awsSessionToken>")
}
val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
.withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder ->
builder.hosts(listOf(ServerAddress("<hostname>", <port>)))
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

연결 문자열 에 AWS IAM 자격 증명 제공해야 하는 경우 applyConnectionString() MongoClientSettings 메서드를 호출하여 객체 에 추가할 수 있습니다.

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
val connectionString = ConnectionString("mongodb://<atlasUri>/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>")
val settings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

MongoDB 인증에 대해 자세히 학습 MongoDB Server 매뉴얼에서 인증을 참조하세요.

코틀린 동기 (Kotlin Sync) 운전자 사용하여 MongoClient 객체 만드는 방법에 대해 자세히 학습 MongoClient 만들기 가이드 참조하세요.

돌아가기

X.509

이 페이지의 내용