MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /
/ / /

AtlasDatabaseUser 사용자 지정 리소스

AtlasDatabaseUser 사용자 지정 리소스 는 Atlas 프로젝트 에서 데이터베이스 사용자를 구성합니다. 데이터베이스 사용자는 클러스터 가 아닌 프로젝트 별로 생성합니다. 따라서 AtlasDatabaseUser 사용자 지정 리소스 구성에는 AtlasProject 사용자 지정 리소스 에 대한 참조가 포함됩니다. AtlasProject Custom Resource(사용자 지정 리소스) 를 미리 생성합니다.

중요

Custom Resource(사용자 정의 리소스)는 더 이상 기본적으로 객체를 삭제하지 않음

  • Atlas Kubernetes Operator 사용자 지정 리소스 구성 파일을 사용하여 Atlas 구성을 관리 하지만, Atlas Kubernetes Operator 부터는 Kubernetes 에서 삭제 사용자 지정 2.0 리소스가 더 이상 ( 기본값) Atlas 에서 삭제되지 않습니다. 대신 Atlas Kubernetes Operator Atlas 에서 해당 리소스 관리를 중지할 뿐입니다. 예시 들어, Kubernetes 에서 Custom Resource(사용자 AtlasProject 지정 리소스)를 삭제 하면 기본값 으로 Atlas Kubernetes Operator 더 이상 Atlas 에서 해당 프로젝트 자동으로 삭제하지 않습니다. 이러한 동작 변경은 우발적이거나 예기치 않은 삭제를 방지하기 위한 것입니다. 이 동작을 Atlas Kubernetes Operator 이전에 사용된 기본값 으로 되돌리는 2 방법0 등 자세한 학습 새 기본값: Atlas Kubernetes Operator 2 의 삭제0 보호 기능을 참조하세요.

    마찬가지로, Atlas Kubernetes Operator 를 사용하여 Kubernetes 의 Atlas 프로젝트 에서 팀을 제거 하는 경우 Atlas Kubernetes Atlas Kubernetes Operator 는 Atlas 에서 팀을 삭제 하지 않습니다.

  • 기본값 Atlas 구성 값을 암시적으로 사용하지 않으려면 원하는 구성 세부 정보를 명시적으로 정의하세요. 경우에 따라 Atlas 기본값을 상속하면 조정 루프가 발생하여 사용자 지정 리소스 READY 상태 달성하지 못할 수 있습니다. 예시 들어 AtlasDeployment 사용자 지정 리소스 에 원하는 자동 확장 동작을 명시적으로 정의하면 포함된 예시 와 같이 사용자 지정 리소스 의 정적 인스턴스 크기가 자동 확장이 활성화된 Atlas 배포서버 에 반복적으로 적용되지 않도록 할 수 있습니다.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40

다음 예제는 AtlasProject 사용자 지정 리소스에 대한 참고를 보여줍니다.

spec:
projectRef:
name: my-project

Atlas Kubernetes Operator는 Atlas의 데이터베이스 사용자 구성이 Kubernetes의 구성과 일치하도록 합니다.

Atlas Kubernetes Operator 는 Atlas 데이터베이스 사용자 API 를 사용하여 다음 작업 중 하나를 수행합니다.

  • 새 데이터베이스 사용자를 생성합니다.

  • 기존 사용자를 업데이트합니다.

데이터베이스 사용자를 생성하기 전에 단일 password 필드 있는 불투명 시크릿 을 생성하여 Atlas cluster 데이터베이스에 로그 해야 합니다.

참고

다음 예시에서는 시크릿을 생성합니다.

kubectl create secret generic the-user-password --from-literal="password=P@@sword%"

Atlas Kubernetes Operator atlas.mongodb.com/type=credentials 불필요한 시크릿을 감시하지 않기 위해 레이블이 있는 시크릿만 감시합니다.

다음 예시에서는 시크릿에 레이블을 지정합니다.

kubectl label secret the-user-password atlas.mongodb.com/type=credentials

Atlas Kubernetes Operator가 Atlas에서 데이터베이스 사용자를 성공적으로 만들거나 업데이트한 후에는 Atlas Kubernetes Operator가 AtlasDatabaseUser 사용자 지정 리소스가 있는 네임스페이스와 동일한 네임스페이스에 연결 비밀을 만들거나 업데이트합니다.

연결 비밀에는 다음 매개변수를 포함하여 Atlas cluster에 연결하는 데 필요한 모든 정보가 포함되어 있습니다.

Parameter
설명

connectionStringStandard

공개 mongodb:// 연결 URI.

connectionstringStandardSrv

공개 mongodb+srv:// 연결 URI 입니다.

username

데이터베이스 사용자를 식별하는 이름입니다.

password

데이터베이스 사용자의 비밀번호입니다.

Kubernetes에서 실행되는 애플리케이션은 이 정보를 사용하여 Atlas cluster에 연결할 수 있습니다. 애플리케이션 포드에 시크릿을 파일로 마운트할 수 있으며, 애플리케이션 프로세스는 이러한 파일을 읽어 데이터를 가져올 수 있습니다.

다음 예시에서는 시크릿을 환경 변수로 마운트하는 방법을 보여줍니다.

spec:
containers:
- name: test-app
env:
- name: "CONNECTIONSTRING"
valueFrom:
secretKeyRef:
name: project-cluster-basic-theuser
key: connectionStringStandardSrv

다음 예시에서는 시크릿을 파일로 마운트하는 방법을 보여줍니다.

spec:
containers:
- name: test-app
volumeMounts:
- mountPath: /var/secrets/
name: theuser-connection
volumes:
- name: theuser-connection
secret:
secretName: project-cluster-basic-theuser

기본값 으로 Atlas Kubernetes Operator 가 참조하는 동일한 프로젝트 의 각 클러스터 에 대한 데이터베이스 사용자 연결 AtlasDatabaseUser 비밀을 생성합니다.spec.scopes 매개변수를 사용하여 이 동작을 변경할 수 있습니다. 이 매개변수는 데이터베이스 사용자가 생성되는 클러스터를 제한합니다. 연결 암호의 이름은 형식을 사용합니다. <project_name>-<cluster_name>-<db_user_name>

다음 예시는 Atlas 프로젝트와 이를 참고하는 cluster를 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: p1
projectIpAccessList:
- ipAddress: "192.0.2.15"
comment: "IP address for Application Server A"
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-aws-cluster
spec:
name: aws-cluster
projectRef:
name: my-project
providerSettings:
instanceSizeName: M10
providerName: AWS
regionName: US_EAST_1
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-gcp-cluster
spec:
name: gcp-cluster
projectRef:
name: my-project
providerSettings:
instanceSizeName: M10
providerName: GCP
regionName: EASTERN_US

다음 예시 spec.scopes 가 생략된 AtlasDatabaseUser 사용자 지정 리소스 사양을 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
description: "User for the reporting application."
roles:
- roleName: readWriteAnyDatabase
databaseName: admin
projectRef:
name: my-project
username: theuser
passwordSecretRef:
name: the-user-password

이 사용자 지정 리소스를 생성하면 Atlas Kubernetes Operator가 다음과 같은 시크릿을 생성합니다.

  • p1-aws-cluster-theuser

  • p1-gcp-cluster-theuser

다음 예시 AtlasDatabaseUser spec.scopes가 Google Cloud 클러스터 로만 설정하다 사용자 지정 리소스 사양을 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
username: theuser
passwordSecretRef:
name: the-user-password
scopes:
- type: CLUSTER
name: gcp-cluster

이 사용자 지정 리소스를 업데이트하면 Atlas Kubernetes Operator가 aws-cluster 에서 theuser 을(를) 제거합니다. 또한 Kubernetes cluster에서 p1-aws-cluster-theuser 시크릿을 제거합니다.

다음 예제에서는 X.509 인증을 사용하는 AtlasDatabaseUser 사용자 지정 리소스 사양을 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
username: CN=my-x509-authenticated-user,OU=organizationalunit,O=organization
databaseName: "\$external"
x509Type: "CUSTOMER"
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project

다음 예는 OIDC 가 있는 AtlasDatabaseUser 사용자 지정 리소스 사양을 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
username: my-oidc-group-id/my-idp-group-name
oidcAuthType: IDP_GROUP

다음 예시 는 AtlasDatabaseUser Amazon Amazon Web Services Web Services IAM을 사용하는 사용자 지정 리소스 사양을 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
username: arn:aws:iam::123456789012:user/johndoe
databaseName: "$external"
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
awsIamType: USER

AtlasDatabaseUser는 Atlas 데이터베이스 사용자 API 의 스키마입니다.

Name
유형
설명
필수 사항

apiVersion

문자열

atlas.mongodb.com/v1

true

kind

문자열

AtlasDatabaseUser

true

metadata

객체

metadata 필드 의 필드에 대해서는 Kubernetes API 설명서를 참조하세요.

true

spec

객체

AtlasDatabaseUserSpec Atlas 유효성 검사에서 데이터베이스 사용자의 대상 상태 정의합니다.

  • (has(self.``externalProjectRef``) && !has(self.``projectRef``)) || (!has(self.``externalProjectRef``) && has(self.``projectRef``)): externalProjectRef 또는 projectRef를 통해 프로젝트 참조를 하나만 정의해야 합니다.

  • (has(self.``externalProjectRef``) && has(self.``connectionSecret``)) || !has(self.``externalProjectRef``): 외부 프로젝트 참조할 때 로컬 연결 비밀을 정의해야 합니다.

거짓

status

객체

AtlasDatabaseUserStatus 의 관찰된 상태 정의합니다. AtlasProject

거짓

AtlasDatabaseUserSpec은 Atlas 에서 데이터베이스 사용자의 대상 상태 정의합니다.

Name
유형
설명
필수 사항

roles

[] 객체

역할은 이 사용자의 rolesroles 이 적용 데이터베이스/컬렉션의 배열 입니다. 역할 통해 사용자는 지정된 데이터베이스 에서 특정 조치를 수행할 수 있습니다.

true

username

문자열

사용자 이름은 MongoDB 에 인증하기 위한 username 이며, MongoDB에 인증하는 사용자를 나타내는 사람이 읽을 수 있는 레이블입니다. 이 레이블의 형식은 인증 방법에 따라 다릅니다. AWS IAM의 경우: IAM 사용자/역할의 값은 AWS ARN 이어야 합니다. OIDC 워크로드 또는 워크포스의 경우: 값은 Atlas OIDC IdP ID, 그 뒤에 '/', IdP 그룹 이름이 와야 합니다. 일반 텍스트 인증의 경우: 값은 무엇이든 될 수 있습니다.

true

awsIamType

열거형

새 데이터베이스 사용자가 Amazon Web Services ()로 인증하는지 여부를 나타내는 사람이AWS 읽을 수 있는 레이블입니다.IAM 사용자 또는 사용자의 역할 과 연결된 ID 및 액세스 관리() 자격 증명 열거형:,, NONE USERROLE 기본값: NONE

거짓

connectionSecret

객체

Atlas API 비공개 및 공개 키가 포함된 시크릿의 이름입니다.

거짓

databaseName

문자열

DatabaseName Atlas 사용자를 인증하는 데이터베이스입니다.AWS IAM 사용자가, x.,509 LDAP또는 OIDC 워크로드로 인증하는 경우 이 값은 '$external'이어야 합니다. 사용자가 SCRAM-SHA 또는 OIDC Workforce로 인증하는 경우 이 값은 'admin'이어야 합니다. 기본값은 'admin'입니다. 기본값: 관리자

거짓

deleteAfterDate

문자열

DeleteAfterDate 은(는) ISO 8601 날짜 및 시간 형식의 타임스탬프이며 UTC 이후 Atlas 사용자를 삭제합니다. 지정된 날짜는 1주일 이내의 미래여야 합니다.

거짓

description

문자열

이 데이터베이스 사용자에 대한 설명입니다. 최대 100 자입니다.

거짓

externalProjectRef

객체

externalProjectRef 상위 Atlas 프로젝트 ID을(를) 보유합니다. "projectRef" 필드 와 상호 배타적입니다.

거짓

labels

[] 객체

레이블은 데이터베이스 사용자를 태그를 지정하다 하고 분류하는 키-값 쌍을 포함하는 배열 입니다. 각 키와 값의 최대 길이는 255 자입니다.

거짓

oidcAuthType

열거형

새 데이터베이스 사용자 OIDC 이름이 페더레이션 인증 사용하는지 여부를 나타내는 사람이 읽을 수 있는 레이블입니다.IDP_GROUP 페더레이션 인증 그룹 (Workforce)을 만들려면 이 USER 필드 에 값을 지정합니다. 페더레이션 인증 사용자(워크로드)를 만들려면 이 필드 에 값을 지정합니다. NONE 열거형:,, IDP_GROUP USER 기본값: NONE

거짓

passwordSecretRef

객체

PasswordSecret 사용자 비밀번호를 보관하는 Secret에 대한 참조입니다.

거짓

projectRef

객체

projectRef 상위 AtlasProject 리소스 에 대한 참조입니다. "externalProjectRef" 필드 와 상호 배타적입니다.

거짓

scopes

[] 객체

범위는 이 사용자가 액세스 할 수 있는 클러스터 및 Atlas Data Lake의 배열 입니다.

거짓

x509Type

열거형

X509Type is X. 메서드를509 통해 데이터베이스 제공된 사용자 이름 인증합니다. NONEMANAGED열거형:,, CUSTOMER 기본값: NONE

거짓

RoleSpec을 사용하면 사용자가 지정된 데이터베이스 에서 특정 조치를 수행할 수 있습니다. 관리 데이터베이스 의 역할 에는 다른 데이터베이스에도 적용 권한이 포함될 수 있습니다.

Name
유형
설명
필수 사항

databaseName

문자열

DatabaseName 사용자가 지정된 역할 가진 데이터베이스 입니다. 관리 데이터베이스 의 역할 다른 데이터베이스에 적용 권한이 포함될 수 있습니다.

true

roleName

문자열

RoleName 은 (역할 의 이름입니다. 이 값은 내장 역할 또는 사용자 지정 역할 일 수 있습니다.

true

collectionName

문자열

CollectionName 은(는 ) 역할 적용되는 컬렉션 입니다.

거짓

Atlas API 비공개 및 공개 키가 포함된 시크릿의 이름입니다.

Name
유형
설명
필수 사항

name

문자열

true

externalProjectRef는 상위 Atlas 프로젝트 ID 보유합니다. "projectRef" 필드 와 상호 배타적입니다.

Name
유형
설명
필수 사항

id

문자열

ID Atlas 프로젝트 ID입니다.

true

LabelSpec에는 Cluster/DBUser를 태그를 지정하다 하고 분류하는 키-값 쌍이 포함되어 있습니다.

Name
유형
설명
필수 사항

key

문자열

이 구성 요소에 태그를 지정하다 하고 분류하는 데 적용되는 키입니다.

true

value

문자열

이 구성 요소에 태그를 지정하다 하고 분류하는 데 적용된 키에 설정하다 값입니다.

true

PasswordSecret은 사용자 비밀번호를 보관하는 Secret에 대한 참조입니다.

Name
유형
설명
필수 사항

name

문자열

이름은 Kubernetes 리소스의 name 입니다.

true

projectRef는 상위 AtlasProject 리소스 에 대한 참조입니다. "externalProjectRef" 필드 와 상호 배타적입니다.

Name
유형
설명
필수 사항

name

문자열

Kubernetes 리소스의 이름

true

namespace

문자열

Kubernetes 리소스의 네임스페이스

거짓

ScopeSpec이 있는 경우 데이터베이스 사용자는 표시된 리소스 (Cluster 또는 Atlas Data Lake )에 대한 액세스 권한만 있고, 지정된 리소스가 없는 경우에는 모두에 액세스 할 수 있습니다. 데이터베이스 사용자의 액세스 제한된 리소스 설정하다 로만 제한하는 것이 좋습니다.

Name
유형
설명
필수 사항

name

문자열

이름은 사용자가 액세스 할 수 있는 클러스터 또는 Atlas Data Lake 의 name 입니다.

true

type

열거형

유형은 type 사용자가 액세스 할 수 있는리소스 의 입니다. CLUSTER 열거형:, DATA_LAKE

true

AtlasDatabaseUserStatus는 AtlasProject의 관찰된 상태 정의합니다.

Name
유형
설명
필수 사항

conditions

[] 객체

조건은 Atlas Custom Resource(사용자 지정 리소스)의 현재 상태 보여주는 상태 목록입니다.

true

name

문자열

UserName 데이터베이스 사용자의 현재 name 입니다.

거짓

observedGeneration

integer

ObservedGeneration Atlas Operator가 인식하는 리소스 사양의 생성을 나타냅니다. Atlas Operator는 리소스 조정을 시작하는 즉시 이 필드 ' 메타데이터 .generation' 값으로 업데이트합니다. 형식: int64

거짓

passwordVersion

문자열

PasswordVersion 은(는 ) Atlas Operator가 알고 있는 비밀번호 시크릿의 'ResourceVersion'입니다.

거짓

조건은 특정 점 의 Atlas Custom Resource(사용자 지정 리소스) 상태 를 설명합니다.

Name
유형
설명
필수 사항

status

문자열

조건의 상태입니다. 참, 거짓, 알 수 없음 중 하나입니다.

true

type

문자열

Atlas Custom Resource(사용자 지정 리소스) 조건 유형입니다.

true

lastTransitionTime

문자열

마지막으로 조건이 한 상태에서 다른 상태로 전환된 시간입니다. 형식으로 ISO 8601 표시됩니다. 형식: 날짜-시간

거짓

message

문자열

전환에 대한 세부 정보를 제공하는 message 입니다.

거짓

reason

문자열

조건의 마지막 전환에 대한 reason 입니다.

거짓

돌아가기

AtlasDeployment

이 페이지의 내용