Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

AWS IAM

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 액세스 키 ID

  • secret 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 비동기 런타임을 사용하고 있습니다.

드라이버는 자격 증명이 발견된 첫 번째 소스에서만 자격 증명을 얻습니다. 드라이버는 다음 소스의 자격 증명을 다음 순서로 확인합니다.

  1. Credential 구조체 또는 연결 string.

  2. 환경 변수.

  3. 웹 ID 토큰 파일.

  4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 환경 변수에 지정된 Amazon Web Services ECS 엔드포인트.

  5. AWS EC2 엔드포인트. 자세한 내용은 AWS 설명서에서 작업용 IAM 역할 을(를) 참조하세요.

예를 들어 연결 string 에 Amazon Web Services 자격 증명을 지정하면 드라이버는 해당 자격 증명을 사용하고 환경 변수에 지정했을 수 있는 자격 증명은 무시합니다.

아래의 Credential Struct, Environment VariablesWeb Identity Token File 탭에서 선택하여 해당 방법으로 Amazon Web Services IAM 자격 증명을 설정하는 방법을 보여주는 코드 샘플을 확인하십시오.

MONGODB-AWS 인증 메커니즘을 지정하려면 Credential 구조체의 mechanism 필드를 AuthMechanism::MongoDbAws으로 설정합니다.

임시 자격 증명 을 사용하는 경우 Amazon Web Services 세션 토큰 값이 포함된 문서 를 만든 다음 Credential 구조체의 mechanism_properties 필드 를 이 문서 로 설정하다 합니다. 임시 자격 증명 을 사용하지 않는 경우 다음 예시 의 9 줄을 생략합니다.

1let uri = "<connection string>";
2let mut client_options = ClientOptions::parse(uri).await?;
3
4let 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
12client_options.credential = Some(aws_cred);
13let 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 문서를 참조하세요.

돌아가기

X.509

이 페이지의 내용