OAuth 2.0으로 Workload Identity Federation 설정
이 페이지의 내용
- Cloud Manager 에 대한 프로그래밍 방식의 액세스 를 위한 OAuth 2.0 인증 은 Preview 기능 으로 제공됩니다.
- 기능 및 해당 설명서는 미리 보기 기간에 언제든지 변경될 수 있습니다. OAuth 2.0 인증 을 사용하려면 Cloud Manager 공개 API 에 대한 요청에 사용할서비스 계정을 만듭니다.
Workload Identity Federation을 사용하면 애플리케이션이 Azure 서비스 주체, Azure 관리형 ID 및 Google 서비스 계정과 같은 외부 프로그래밍 ID를 사용하여 MongoDB Cloud Manager 배포 액세스 할 수 있습니다.
작동 방법
Workload Identity Federation을 사용하면 애플리케이션이 OAuth 2.0 액세스 토큰을 사용하여 MongoDB 배포에 액세스 할 수 있습니다. 액세스 토큰은 Azure Entra ID 및 Google Cloud Platform 을 포함한 모든 외부 ID 제공자가 발급할 수 있습니다. Cloud Manager 는 사용자 식별자와 권한을 저장하지만 시크릿은 저장하지 않습니다. 애플리케이션에 대한 이 인증 메커니즘 은 특정 MongoDB 드라이버에서만 지원됩니다.
MongoDB 드라이버는 워크로드 아이덴티티 페더레이션에 대해 내장 인증과 콜백 인증, 두 가지 유형의 인증 흐름을 지원 합니다.
내장 인증
지원되는 주체 유형으로 지원되는 인프라에 애플리케이션 을 배포 경우 내장 인증 을 사용할 수 있습니다. 비밀번호를 제공하거나 cloud 제공자의 메타데이터 서비스에 JSON web token 을 수동으로 요청하지 않고도 애플리케이션 에서 Cloud Manager 배포에 액세스 할 수 있습니다.Cloud Manager JSON web token 대신 선택한 MongoDB 운전자 는 기존 주체 식별자를 사용하여 내부적으로 MongoDB JSON web token JSON web token 액세스 토큰을 요청 다음,Cloud Manager 애플리케이션 이 연결될 때 Cloud Manager 배포서버 에 자동으로 전달됩니다.
구현 에 대한 자세한 내용은 선택한 드라이버의 설명서를 참조하세요.
기본 제공 인증 지원 인프라 및 주체 유형
클라우드 제공자 | 인프라 유형 | 주체 유형 |
---|---|---|
GCP | Compute Engine | GCP 서비스 계정 |
App Engine 표준 환경 | ||
App Engine 가변형 환경 | ||
Cloud 함수 | ||
Cloud Run | ||
Google Kubernetes Engine | ||
클라우드 빌드 | ||
Azure | Azure VM | Azure 관리 ID(사용자 및 시스템 할당) |
콜백 인증
OAuth 2.0 액세스 토큰을 지원하는 모든 서비스에서 콜백 인증 을 사용할 수 있습니다. Workload Identity Federation은 콜백 메서드를 호출하여, 권한 부여 서버 또는 cloud 제공자 JSON web token 에게 Cloud Manager 애플리케이션 이 Workload Identity Federation을 사용하여 Cloud Manager 에 연결할 때 전달해야 하는 필수 JSON web token 을 요청 수 있습니다.
추가 구현 세부 정보는 선택한 드라이버의 설명서를 검토하세요 .
필요한 액세스 권한
Workload Identity Federation을 구성하려면 Cloud Manager 에 대한 액세스 이 있어야 Project Owner
합니다.
전제 조건
다음 사항이 있어야 합니다.
MongoDB 7.0 이상.
MongoDB Agent 가 구성된 다른 인증 메커니즘 이 하나 이상 있습니다.
참고
MongoDB Agent 는 OIDC를 통해 배포서버 서버에 연결할 수 없습니다. MongoDB Agent 에 대한 추가 인증 메커니즘을 활성화 해야 합니다. Cloud Manager 가 모니터링 또는 백업을 관리 하지 않는 경우 대체 인증 메커니즘 을 사용하도록 수동으로 구성해야 합니다.
절차
Workload Identity Federation을 구성하려면 다음 단계를 완료하세요.
워크로드 아이덴티티 제공자를 구성합니다(일회성 설정).
외부 멱등 애플리케이션 구성
참고
프로젝트의 인증 및 TLS 설정을 재설정하려면 먼저 Cloud Manager가 프로젝트에서 관리하는 MongoDB 배포를 모두 관리 해제하세요.
Azure 관리형 ID 또는 Azure 서비스 주체를 사용하여 Cloud Manager 배포에 액세스 하려면 Azure Entra ID 애플리케이션 을 등록해야 합니다. 워크로드(휴먼 사용자) 액세스 에 대한 기존 애플리케이션 등록이 있는 경우 워크로드 액세스 에 대한 별도의 애플리케이션 을 등록하는 것이 좋습니다.
애플리케이션을 등록합니다.
App registrations 로 이동합니다.
Azure Portal 에서 계정을 검색 하고 를 Microsoft Entra ID 클릭합니다.
좌측 탐색의 Manage 섹션에서 App registrations을 클릭합니다.
New registration를 클릭합니다.
다음 값을 적용합니다.
필드값NameCloud Manager Database - WorkloadSupported Account TypesAccounts in this organizational directory only (single tenant)Redirect URIWeb
(선택 사항) 그룹 클레임을 추가합니다.
Cloud Manager 에서 액세스 권한을 정의할 때 서비스 주체 식별자를 MongoDB 사용자 식별자로 사용하는 것이 가장 좋습니다. 이 일반적인 접근 방식을 사용할 계획이라면 이 단계를 건너뛰세요. 그러나 Microsoft Entra ID 보안 그룹 식별자와 같은 그룹 식별자를 대신 사용하려는 경우 아래 단계에 따라 애플리케이션 등록에서 그룹 클레임을 설정하다 수 있습니다.
Token Configuration(으)로 이동합니다.
좌측 탐색의 Manage 섹션에서 Token Configuration을 클릭합니다.
Add groups claim를 클릭합니다.
Edit groups claim 0} 모달에서 을 Security 선택합니다.
선택하는 그룹은 Azure 환경에서 구성한 그룹 유형에 따라 다릅니다. 적절한 그룹 정보를 전송하려면 다른 그룹 유형을 선택해야 할 수도 있습니다.
0} Customize token properties by type 섹션에서 만 선택했는지 확인합니다.Group ID
Group Id를 선택하면 Azure에서 보안 그룹의 객체 ID를 보냅니다.
Add를 클릭합니다.
그룹 클레임 추가에 대해자세히 알아보려면 Azure 설명서를 참조하세요.
매니페스트를 업데이트합니다.
좌측 탐색의 Manage 섹션에서 Manifest을 클릭합니다.
0}을 accessTokenAcceptedVersion
null
에서2
로 업데이트합니다.숫자
2
는 Microsoft의 액세스 토큰 버전 2를 나타냅니다. 다른 애플리케이션에서는 이를 Active Directory에서 관리하는 사용자 ID의 서명된 증명으로 사용합니다. 버전 2는 토큰이 MongoDB가 이해할 수 있는 JSON Web Token인지 확인합니다.Save를 클릭합니다.
선택적 클레임을 추가하는 방법에 대해 자세히 알아보려면 Azure 설명서를 참조하세요.
메타데이터를 기억하세요.
왼쪽 탐색에서 Overview을 클릭합니다.
상단 탐색에서 Endpoints을 클릭합니다.
/.well-known/openid-configuration
부분을 제외한 OpenID Connect metadata document 값을 복사합니다.OpenID Connect metadata document URL을 따라가서
issuer
의 값을 복사하여 이 값을 검색할 수도 있습니다.
다음 표는 이러한 Microsoft Entra ID UI 값이 매핑되는 Cloud Manager 구성 속성을 보여줍니다.
Microsoft Entra ID UI | Cloud Manager 구성 속성 |
---|---|
OpenID Connect metadata document (without /.well-known/openid-configuration) | Issuer URI. |
Application ID URI (<Application ID>) | Audience |
GCP 계정에서 구성을 변경할 필요가 없습니다.
Workload Identity Federation 인증 구성
참고
Workload Identity Federation은 JSON web token 인증 을 위해 JSON web token 만 지원합니다. 불투명 액세스 토큰은 지원 하지 않습니다.
Cloud Manager 에서 Azure Entra ID 를 사용하여 Workload Identity Federation ID 제공자를 구성하려면 다음을 수행합니다.
배포서버 서버에 대한 대화 상자로 이동합니다.Security Settings
탐색 표시줄의 메뉴에서 프로젝트 가 포함된 조직 을 선택합니다. Organizations
탐색 표시줄의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Deployment를 클릭합니다.
Security 탭을 클릭합니다.
Settings 탭을 클릭합니다.
다음 작업 중 하나를 수행합니다.
이 프로젝트에 대한 TLS, 인증 또는 권한 부여 설정을 처음 구성하는 경우 Get Started을(를) 클릭합니다.
이 프로젝트에 대한 TLS 인증 또는 권한 부여 설정을 이미 구성한 경우 Edit을(를) 클릭합니다.
선택 사항: TLS 설정을 지정합니다.
필드 | 작업 |
---|---|
MongoDB deployment TLS(전송 계층 보안) | 이 슬라이더를 ON(으)로 전환합니다. |
TLS CA 파일 경로 | TLS 인증 기관 파일은 인증 기관의 루트 인증서 체인을 포함하는 인증서 파일의 암호화된 비공개 키는 MongoDB 프로세스를 실행하는 모든 호스트에서 TLS 인증 기관 파일의 파일 경로를 입력합니다.
이렇게 하면 프로젝트의 MongoDB 프로세스에 대한 배포서버의 각 호스트에 지정된 경로에 TLS 인증 기관이 있는지 테스트하려면 Validate을(를) 클릭하세요. |
클러스터 TLS CA 파일 경로 | 클라이언트가 연결을 구축할 때 제시한 인증서의 유효성을 검사할 때 사용된 인증 기관의 루트 인증서 체인이 포함되어 있는
|
클라이언트 인증서 모드 | 클라이언트 애플리케이션 또는 MongoDB Agent가 TLS 지원 MongoDB deployment에 연결할 때 TLS 인증서를 제시해야 하는지 여부를 선택합니다. 각 MongoDB deployment 는 연결을 시도할 때 이러한 클라이언트 호스트의 인증서를 확인합니다. 클라이언트 TLS 인증서를 요구하도록 선택한 경우 인증서가 유효한지 확인합니다. 허용되는 값은 다음과 같습니다. |
다음 설정을 입력합니다.
설정 | 필요성 | 값 |
---|---|---|
Configuration Name | 필수 사항 | 이 구성을 식별하는 고유 레이블입니다. 이 레이블은 Cloud Manager 사용자가 볼 수 있으며 권한 부여 를 위한 사용자 및 역할을 만들 때 사용됩니다. 대소문자를 구분하며 다음 문자만 포함할 수 있습니다.
구성을 저장한 후에는 구성 이름을 편집할 수 없습니다. |
Issuer URI | 필수 사항 | 등록된 IdP 애플리케이션에서 제공하는 발급자 값입니다. MongoDB는 이 URI를 사용하여 /.wellknown/open-id-configuration 엔드포인트에서 사용할 수 있는 OpenID Provider Configuration Document(OpenID 제공자 구성 문서)를 찾습니다. |
Audience | 필수 사항 | 외부 ID 제공자 가 토큰을 사용하는 엔티티입니다. 외부 ID 제공자에 등록한 앱 의 audience 값을 입력합니다. |
권한 부여 유형 | 필수 사항 | IdP 사용자 그룹 멤버십을 기반으로 권한을 부여하려면 애플리케이션 액세스 에는 |
Customize User Claim | 필수 사항 | 사용자 보안 주체 ID를 포함하는 클레임의 식별자.IdP가 다른 클레임을 사용하지 않는 한 기본값을 그대로 사용합니다. 기본값: |
Customize Group Claim | 필수 사항 | 권한 부여 유형으로 기본값: |
Cloud Manager 에서 GCP 를 사용하여 Workload Identity Federation ID 제공자를 구성하려면 다음을 수행합니다.
배포서버 서버에 대한 대화 상자로 이동합니다.Security Settings
탐색 표시줄의 메뉴에서 프로젝트 가 포함된 조직 을 선택합니다. Organizations
탐색 표시줄의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Deployment를 클릭합니다.
Security 탭을 클릭합니다.
Settings 탭을 클릭합니다.
다음 작업 중 하나를 수행합니다.
이 프로젝트에 대한 TLS, 인증 또는 권한 부여 설정을 처음 구성하는 경우 Get Started을(를) 클릭합니다.
이 프로젝트에 대한 TLS 인증 또는 권한 부여 설정을 이미 구성한 경우 Edit을(를) 클릭합니다.
선택 사항: TLS 설정을 지정합니다.
필드 | 작업 |
---|---|
MongoDB deployment TLS(전송 계층 보안) | 이 슬라이더를 ON(으)로 전환합니다. |
TLS CA 파일 경로 | TLS 인증 기관 파일은 인증 기관의 루트 인증서 체인을 포함하는 인증서 파일의 암호화된 비공개 키는 MongoDB 프로세스를 실행하는 모든 호스트에서 TLS 인증 기관 파일의 파일 경로를 입력합니다.
이렇게 하면 프로젝트의 MongoDB 프로세스에 대한 배포서버의 각 호스트에 지정된 경로에 TLS 인증 기관이 있는지 테스트하려면 Validate을(를) 클릭하세요. |
클러스터 TLS CA 파일 경로 | 클라이언트가 연결을 구축할 때 제시한 인증서의 유효성을 검사할 때 사용된 인증 기관의 루트 인증서 체인이 포함되어 있는
|
클라이언트 인증서 모드 | 클라이언트 애플리케이션 또는 MongoDB Agent가 TLS 지원 MongoDB deployment에 연결할 때 TLS 인증서를 제시해야 하는지 여부를 선택합니다. 각 MongoDB deployment 는 연결을 시도할 때 이러한 클라이언트 호스트의 인증서를 확인합니다. 클라이언트 TLS 인증서를 요구하도록 선택한 경우 인증서가 유효한지 확인합니다. 허용되는 값은 다음과 같습니다. |
다음 설정을 입력합니다.
설정 | 필요성 | 값 |
---|---|---|
Configuration Name | 필수 사항 | 이 구성을 식별하는 고유 레이블입니다. 이 레이블은 Cloud Manager 사용자가 볼 수 있으며 권한 부여 를 위한 사용자 및 역할을 만들 때 사용됩니다. 대소문자를 구분하며 다음 문자만 포함할 수 있습니다.
구성을 저장한 후에는 구성 이름을 편집할 수 없습니다. |
Issuer URI | 필수 사항 | URI https://accounts.google.com 을(를) 입력합니다. |
Audience | 필수 사항 | 사용자 지정 값을 지정합니다. Audience는 MongoDB 드라이버를 호출하는 동안 사용됩니다. |
권한 부여 유형 | 필수 사항 | IdP 사용자 그룹 멤버십을 기반으로 권한을 부여하려면 애플리케이션 액세스 에는 |
Customize User Claim | 필수 사항 | 기본값 인 기본값: |
OIDC 인증 구성
MongoDB 는 OIDC에 대한 데이터베이스 사용자를 명시적으로 생성하지 않습니다. 구성을 기반으로 OIDC 사용자를 MongoDB 역할에 매핑합니다.
OIDC 인증 을 구성할때 선택한 권한 부여 유형에 따라 탭 을 선택합니다.
User ID
권한 부여 유형을 선택한 경우 새 사용자를 생성하여 개별 사용자에게 권한을 권한 부여 합니다.
OIDC 사용자를 추가합니다.
참고
사용자를 추가하기 전에 사용자에게 할당하려는 역할을 생성했는지 확인합니다.
사용자 계정 필드를 작성합니다.
필드설명Identifier첫 번째 필드 에
$external
데이터베이스 를 입력합니다.두 번째 필드 에는 OIDC IdP 구성 이름을 사용하여 사용자 이름 을 입력하고 구성의 사용자 주체 클레임을 슬래시 로 구분하여
/
입력합니다.{configuration_name}/{user_principal_claim}
Roles이 상자에 사용 가능한 사용자 정의 역할과 기본 제공 역할을 입력합니다. 콤보 상자를 클릭하면 기존 역할 목록이 제공됩니다.Authentication RestrictionsAdd Entry를 클릭합니다.
또는 상자에 하나 이상의 IP 주소 및/또는 CIDR 블록을 추가합니다.Client Source Server Address 여러 주소 또는 블록을 쉼표로 구분하세요.
Client Source 이 사용자가 인증하고 지정된 역할을 사용할 수 있는 주소를 제한합니다.
Server Address 이 사용자가 인증할 수 있고 지정된 역할을 갖는 주소를 제한합니다.
Save를 클릭합니다.
다른 항목을 추가하려면 Add Entry 을 클릭합니다.
Add User를 클릭합니다.
권한 부여 유형을 선택한 경우 다음 단계를 Group Membership
완료하여 IdP 사용자 그룹 멤버십을 기반으로 권한 부여 을 부여하는 사용자 지정 역할 을 생성합니다.
OIDC 역할을 만듭니다.
다음 필드를 입력합니다.
필드필요성설명Identifier필수 사항Database 상자에
admin
을 입력합니다.Name 상자에 OIDC IdP 구성 이름과 외부 ID 제공자 의 그룹 이름을 슬래시 로 구분하여
/
입력합니다.{configuration_name}/{group_name} Inherits From옵션역할 이름 및 데이터베이스 쌍 목록입니다. 이러한 쌍의 형식은roleName@dbName
입니다.Authentication Restrictions옵션IdP 에서 제한하려는 IP 주소 또는 CIDR 표기법의 목록입니다.Privilege Actions by Resource옵션리소스에 허용된 조치입니다.
학습 내용은 권한 작업을 참조하세요.
Add Role를 클릭합니다.
Workload Identity Federation을 사용하여 애플리케이션을 MongoDB에 연결하기
다음 MongoDB 드라이버를 사용하여 Workload Identity Federation 인증 을 통해 애플리케이션 을 MongoDB 에 연결합니다.
기존 워크로드 아이덴티티 페더레이션 구성 관리
Workload Identity Federation 구성을 관리 하기 위해 다음 조치를 수행할 수 있습니다.
Revoke JWKS
참고
이 기능을 사용하여 서명키를 순환하지 마세요.OIDC IdP 서명키를 순환하면 기존 액세스 토큰이 만료될 때 MongoDB가 자동으로 JWKS를 가져옵니다.
개인키가 손상된 경우 MongoDB 노드에 캐시된 JSON 웹 키 세트(JWKS)를 즉시 취소할 수 있습니다.
MongoDB Cloud ManagerGo MongoDB Cloud Manager 에서 프로젝트 의 Deployment 페이지로 고 (Go) 합니다.
이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
Deployment 페이지가 아직 표시되지 않은 경우 사이드바에서 Deployment를 클릭합니다.
배포 페이지가 표시됩니다.
Security 페이지로 이동합니다.
배포서버 의 Security 탭 을 클릭합니다.
보안 페이지가 표시됩니다.
배포서버 서버에 대한 대화 상자로 고 (Go)Security Settings 합니다.
Settings 탭을 클릭합니다.
구성 편집
Workload Identity Federation 구성을 편집하려면 다음을 수행합니다.
MongoDB Cloud ManagerGo MongoDB Cloud Manager 에서 프로젝트 의 Deployment 페이지로 고 (Go) 합니다.
이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
Deployment 페이지가 아직 표시되지 않은 경우 사이드바에서 Deployment를 클릭합니다.
배포 페이지가 표시됩니다.
Security 페이지로 이동합니다.
배포서버 의 Security 탭 을 클릭합니다.
보안 페이지가 표시됩니다.
구성 삭제
Workload Identity Federation 구성을 삭제하려면 다음을 수행합니다.
MongoDB Cloud ManagerGo MongoDB Cloud Manager 에서 프로젝트 의 Deployment 페이지로 고 (Go) 합니다.
이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
Deployment 페이지가 아직 표시되지 않은 경우 사이드바에서 Deployment를 클릭합니다.
배포 페이지가 표시됩니다.
Security 페이지로 이동합니다.
배포서버 의 Security 탭 을 클릭합니다.
보안 페이지가 표시됩니다.