Docs Menu
Docs Home
/ / /
C#/.NET
/ /

AWS ID 및 액세스 관리

이 페이지의 내용

  • 개요
  • 코드 자리 표시자
  • 애플리케이션에서 AWS IAM 인증 사용
  • 수동으로 AWS IAM 자격 증명 지정
  • AWS IAM 자격 증명 자동 조회
  • 웹 멱등
  • 공유된 AWS 자격 증명 파일
  • 환경 변수
  • ECS 컨테이너 자격 증명
  • EC2 컨테이너 자격 증명
  • API 문서

MONGODB-AWS 인증 메커니즘 은 AWS IAM( Amazon Web Services Identity and Access Management) 자격 증명 을 사용하여 MongoDB 에 사용자를 인증합니다. 이 메커니즘은 MongoDB Atlas 에 인증할 때만 사용할 수 있습니다.

AWS IAM 인증을 위한 Atlas 구성

AWS IAM 인증 을 위한 MongoDB Atlas 구성에 학습 보려면 Atlas설명서에서 AWS IAM으로 인증 설정하기를 참조하세요.

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

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

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

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

  • <awsSessionToken>: AWS 세션 토큰

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

AWS IAM 인증 을 사용하려면 다음 단계를 수행합니다.

  1. MongoDB 를 추가합니다. 드라이버.Authentication.AWS NuGet 패키지 를 프로젝트 에 추가합니다. IDE를 사용하거나 터미널에서 다음 명령을 실행 하여 이 패키지 를 추가할 수 있습니다.

    dotnet add package MongoDB.Driver.Authentication.AWS
  2. 애플리케이션의 부트스트랩 코드에 다음 코드 줄을 추가하여 Amazon Web Amazon Web Services Services 인증 제공자 를 등록합니다.

    MongoClientSettings.Extensions.AddAWSAuthentication();

AWS 인증 제공자 를 등록한 후에는 AWS IAM 자격 증명 명시적으로 지정하거나 외부 소스에서 자동으로 조회 하도록 운전자 에 지시할 수 있습니다. 다음 섹션에서는 이 두 가지 방법에 대해 설명합니다.

MongoCredential 객체 를 사용하거나 연결 문자열 의 일부로 MongoClientSettings 객체 에 AWS IAM 자격 증명 을 제공할 수 있습니다. Connection String 또는 MongoCredential 탭 을 선택하여 자격 증명 을 지정하는 해당 구문을 확인합니다.

var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" +
"authSource=$external" +
"&authMechanism=MONGODB-AWS";
var mongoClientSettings = MongoClientSettings.FromConnectionString(connectionString);
var client = new MongoClient(mongoClientSettings);

AWS 세션 토큰을 사용하는 경우 아래와 같이 연결 문자열에 authMechanismProperties 매개변수를 포함시키세요.

var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" +
"authSource=$external" +
"&authMechanism=MONGODB-AWS" +
"&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>";
var mongoClientSettings = MongoClientSettings
.FromConnectionString("mongodb+srv://<hostname>");
mongoClientSettings.Credential = new MongoCredential(
"MONGODB-AWS",
new MongoExternalIdentity("<awsKeyId>"),
new PasswordEvidence("<awsSecretKey>"));
var client = new MongoClient(mongoClientSettings);

Amazon Web Services 세션 토큰을 사용하는 경우 아래와 같이 MongoCredential 객체에서 WithMechanismProperty() 메서드를 호출합니다.

mongoClientSettings.Credential = new MongoCredential(
"MONGODB-AWS",
new MongoExternalIdentity("<awsKeyId>"),
new PasswordEvidence("<awsSecretKey>"))
.WithMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>");

MongoClientSettings에서 AWS IAM 자격 증명을 지정하는 대신 .NET/C# 드라이버에 AWS SDK를 사용하여 외부 소스에서 자격 증명을 자동으로 검색하도록 지시할 수 있습니다.

운전자 에 자격 증명 을 조회 하도록 지시하려면 먼저 MONGODB-AWS 을 인증 메커니즘 으로 지정하고 인증 소스가 MongoDB 외부임을 지정해야 합니다. MongoCredential 객체 를 사용하거나 연결 문자열 의 일부로 인증 메커니즘 과 소스를 지정할 수 있습니다. Connection String 또는 MongoCredential 탭 을 선택하여 MONGODB-AWS 인증 메커니즘 및 외부 인증 소스를 지정하기 위한 해당 구문을 확인합니다.

var connectionString = "mongodb+srv://<hostname>?" +
"authMechanism=MONGODB-AWS" +
"&authSource=$external";
var mongoClientSettings = MongoClientSettings
.FromConnectionString(connectionString);
var client = new MongoClient(mongoClientSettings);
var mongoClientSettings = MongoClientSettings
.FromConnectionString("mongodb+srv://<hostname>");
mongoClientSettings.Credential = new MongoCredential(
"MONGODB-AWS",
new MongoExternalAwsIdentity(),
new ExternalEvidence());
var client = new MongoClient(mongoClientSettings);

인증 메커니즘 과 소스를 지정한 후에는 자격 증명 유형에 적합한 위치 에 자격 증명 을 설정하다 해야 합니다. .NET/ C# 드라이버 는 여기에 나열된 순서대로 다음 위치에서 자격 증명 을 확인합니다.

OIDC(OpenID Connect)와 호환되는 웹 멱등을 사용해 Amazon Elastic Kubernetes Service(EKS) 또는 기타 서비스에 인증할 수 있습니다. 웹 멱등을 사용하려면 다음 예시와 같이 bash 또는 유사한 셸을 사용해 환경 변수에 이 파일의 절대 경로를 설정하여 OIDC 토큰이 포함된 파일을 만든 다음 이 파일의 절대 경로를 설정하면 됩니다.

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

공유된 AWS 자격 증명 파일의 프로필을 사용해 인증하려면 텍스트 편집기, .NET용 AWS SDK 또는 AWS CLI를 사용하여 적절한 자격 증명 파일을 생성하면 됩니다.

환경 변수에서 직접 자격 증명을 검색하려면 bash 또는 유사한 셸을 사용해 다음 환경 변수를 설정하세요.

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

참고

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

ECS 컨테이너 자격 증명을 사용하여 인증하려면 bash 또는 유사한 셸을 사용하여 환경 변수에서 ECS 엔드포인트의 URI를 설정합니다. 해당 환경 변수를 지정하는 구문을 보려면 Full ECS URI 또는 Relative ECS URI 탭을 선택합니다.

export AWS_CONTAINER_CREDENTIALS_FULL_URI=<full ECS endpoint>
export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<relative ECS endpoint>

EC2 컨테이너 자격 증명 을 사용하여 인증하려면 앞의 환경 변수가 설정하다 있지 않은지 확인합니다. 운전자 는 기본값 IPv4 EC2 인스턴스 메타데이터 엔드포인트에서 자격 증명 을 가져옵니다.

이 페이지에서 설명하는 메서드 또는 유형에 학습 보려면 다음 API 설명서를 참조하세요.

돌아가기

X.509