개요
MONGODB-AWS 인증 메커니즘 은 Amazon Web Services Identity and Access 관리(AWS IAM) 자격 증명 사용하여 사용자를 인증합니다.
AWS IAM을 사용하여 MongoDB Atlas 에 인증할 수 있지만 MongoDB Enterprise Advanced 또는 MongoDB Community Edition 에는 인증할 수 없습니다.
코드 자리 표시자
이 페이지의 코드 예제에서는 다음 자리 표시자를 사용합니다.
access key ID: Amazon Web Services 액세스 키 IDsecret access key: Amazon Web Services 시크릿 액세스 키session token: Amazon Web Services 세션 토큰db: 사용자와 연결된 인증 데이터베이스
설정
이 인증 메커니즘을 사용하려면 프로젝트의 Cargo.toml 파일에 있는 mongodb 의존성에 aws-auth 기능 플래그를 추가해야 합니다. 다음 예시에서는 MONGODB-AWS 인증 메커니즘을 활성화하기 위해 mongodb 의존성 기능 목록에 포함되어야 하는 항목을 확인할 수 있습니다.
[dependencies.mongodb] version = "3.5.2" features = [ "aws-auth", ... ]
중요
Rust 드라이버에서 MONGODB-AWS 인증 메커니즘을 사용하려면 애플리케이션이 다음 요구 사항을 충족해야 합니다.
MongoDB Server 버전 4.4 이상에 연결되어 있습니다.
tokio비동기 런타임을 사용하고 있습니다.
자격 증명 소스
드라이버는 자격 증명이 발견된 첫 번째 소스에서만 자격 증명을 얻습니다. 드라이버는 다음 소스의 자격 증명을 다음 순서로 확인합니다.
Credential구조체 또는 연결 string.환경 변수.
웹 ID 토큰 파일.
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI환경 변수에 지정된 Amazon Web Services ECS 엔드포인트.AWS EC2 엔드포인트. 자세한 내용은 AWS 설명서에서 작업용 IAM 역할 을(를) 참조하세요.
예를 들어 연결 string 에 Amazon Web Services 자격 증명을 지정하면 드라이버는 해당 자격 증명을 사용하고 환경 변수에 지정했을 수 있는 자격 증명은 무시합니다.
아래의 Credential Struct, Environment Variables 및 Web Identity Token File 탭에서 선택하여 해당 방법으로 Amazon Web Services IAM 자격 증명을 설정하는 방법을 보여주는 코드 샘플을 확인하십시오.
MONGODB-AWS 인증 메커니즘을 지정하려면 Credential 구조체의 mechanism 필드를 AuthMechanism::MongoDbAws으로 설정합니다.
임시 자격 증명 을 사용하는 경우 Amazon Web Services 세션 토큰 값이 포함된 문서 를 만든 다음 Credential 구조체의 mechanism_properties 필드 를 이 문서 로 설정하다 합니다. 임시 자격 증명 을 사용하지 않는 경우 다음 예시 의 9 줄을 생략합니다.
1 let uri = "<connection string>"; 2 let mut client_options = ClientOptions::parse(uri).await?; 3 4 let aws_cred = Credential::builder() 5 .username("<access key ID>".to_string()) 6 .password("<secret access key>".to_string()) 7 .source("<db>".to_string()) 8 .mechanism(AuthMechanism::MongoDbAws) 9 .mechanism_properties(doc!("AWS_SESSION_TOKEN": "<session token>")) 10 .build(); 11 12 client_options.credential = Some(aws_cred); 13 let client = Client::with_options(client_options)?;
팁
보안 토큰 서비스(STS) 역할 가정 요청 에서 임시 Amazon Web Services IAM 자격 증명 얻을 수 있습니다. 이 프로세스에 대한 자세한 내용은 AssumeRole Amazon Web Services 설명서를 참조하세요.
환경 변수에 Amazon Web Services 자격 증명 을 저장 하려면 shell 에서 다음 명령을 실행 합니다.
export AWS_ACCESS_KEY_ID=<access key ID> export AWS_SECRET_ACCESS_KEY=<secret access key> export AWS_SESSION_TOKEN=<session token>
Amazon Web Services 세션 토큰을 사용하지 않는 경우 AWS_SESSION_TOKEN 환경 변수를 설정하는 줄을 생략합니다.
Credential 구조체의 mechanism 옵션을 AuthMechanism::MongoDbAws 로 설정합니다. 운전자 는 환경 변수에서 Amazon Web Services IAM 자격 증명 을 읽습니다. 다음 코드는 Amazon Web Services 인증 이 지정된 Credential 구조체를 정의하고 MongoDB 에 연결하는 방법을 보여줍니다.
let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build(); client_options.credential = Some(aws_cred); let client = Client::with_options(client_options)?;
웹 ID 제공자 로부터 얻은 OIDC(OpenID Connect) 토큰을 사용하여 Amazon Elastic Kubernetes Service(EKS) 또는 기타 서비스에 인증할 수 있습니다. OIDC 토큰을 사용하려면 토큰이 포함된 파일 을 만든 다음 다음 shell 명령에 표시된 대로 값이 토큰 파일 의 절대 경로인 환경 변수를 정의합니다.
export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to OIDC token file>
Credential 구조체의 mechanism 옵션을 AuthMechanism::MongoDbAws 로 설정합니다. 운전자 는 토큰 파일 에서 Amazon Web Services IAM 자격 증명 을 읽습니다. The following code shows how to define a Credential struct with AWS authentication specified and connect to MongoDB:
let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build(); client_options.credential = Some(aws_cred); let client = Client::with_options(client_options)?;
추가 정보
MongoDB 인증에 대해 자세히 학습 MongoDB Server 매뉴얼에서 인증을 참조하세요.
MongoDB deployment 의 사용자 관리에 대해 자세히 학습 MongoDB Server 매뉴얼의 사용자를 참조하세요.
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.