X.509 클라이언트 인증서는 데이터베이스 사용자에게 프로젝트 의 데이터베이스 배포에 액세스 를 제공합니다. Atlas Kubernetes Operator 를 활성화 하여 AtlasProject Custom Resource (사용자 지정 리소스) 및 AtlasDatabaseUser Custom Resource(사용자지정 리소스)에 대해 X.509 인증 을 활성화할 수 있습니다.
X.509 인증 옵션에는 Atlas-managed X.509 인증 및 자체 관리형 X.509 인증 포함됩니다. 자체 관리형 X.509 인증 에 대해 자세히 학습 자체 관리형 X.509 인증서 설정을 참조하세요.
X.509 인증을 설정하려면 다음을 수행합니다.
- X.509 인증서를 생성합니다. 
- 인증서를 사용하도록 - AtlasProject사용자 지정 리소스 를 구성합니다.
- Atlas managed 또는 자체 managed X.509 인증을 사용하도록 - AtlasDatabaseUser사용자 지정 리소스 를 구성합니다.
전제 조건
참고
자체 관리형 X.509 인증서를 사용하려면 MongoDB Atlas와 통합할 공개 키 인프라가 있어야 합니다.
- Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다. - Atlas Kubernetes Operator 가 새 Atlas 프로젝트 를 생성하도록 하려면Grant Programmatic Access to an Organization(조직에 프로그래밍 방식 액세스 권한을 부여합니다)을 클릭합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다. - 중요- API 키에 Organization Project Creator 조직 역할 이상을 할당해야 합니다. 
- 기존 Atlas 프로젝트 로 작업하려면 프로젝트에서 프로젝트액세스를 추가합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다. - 중요- API 키에 Project Owner 프로젝트 역할을 할당해야 합니다. 
 - 자세히 알아보려면 Atlas에 대한 액세스 구성을 참조하세요. 
- cert-manager 또는 create_X 를 사용하여 X.509 인증서를 생성합니다.509.go 스크립트. 
cert-manager를 사용하여 X.509 인증서 생성
cert-manager 를 사용하여 X.509 인증서를 생성하려면 다음 단계를 수행합니다.
cert-manager를 설치합니다.
cert-manager를 설치하려면 cert-manager 설치 설명서를 참조하세요.
을 Issuer 만듭니다.
cert-manager Issuer를 만들려면 cert-manager 구성 문서를 참조하세요.
인증서를 생성합니다.
인증서를 만들려면 cert-manager 사용 설명서를 참조하세요.
사용자 지정 스크립트로 X.509 인증서 생성
create_X..go를509 사용하여 X.509 인증서를 생성하려면 스크립트 에서 다음 단계를 수행합니다.
사용자 지정 스크립트를 실행합니다.
create_X.509.go 를 실행합니다. 스크립트:
go run scripts/create_x509.go --path={pem-file-path} 
예시:
go run scripts/create_x509.go --path=tmp/x509/ 
시크릿에 인증서를 추가합니다.
kubectl create secret generic {secret-name} --from-file={pem-file-directory} 
kubectl label secret {secret-name} atlas.mongodb.com/type=credentials 
예시:
kubectl create secret generic my-x509-cert --from-file=./tmp/x509/cert.pem 
kubectl label secret my-x509-cert atlas.mongodb.com/type=credentials 
절차
인증서를 사용하도록 프로젝트를 구성합니다.
AtlasProject 사용자 지정 리소스. 에 대한 매개변수 spec.x509CertRef.name내에 시크릿 을 지정합니다.
예시:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata:   name: my-project spec:   name: Test Project   projectIpAccessList:     - ipAddress: "192.0.2.15"       comment: "IP address for Application Server A"     - cidrBlock: "203.0.113.0/24"       comment: "CIDR block for Application Servers B - D"   x509CertRef:     name: my-x509-cert EOF 
X.509 인증을 사용하는 데이터베이스 사용자를 추가합니다.
AtlasDatabaseUser 사용자 지정 리소스에 대한 x509Type 매개 변수를 지정합니다.
이 매개 변수는 다음을 허용합니다.
| none | X.509 인증을 사용하지 않는 사용자입니다. | 
| MANAGED | Atlas managed X.509를 사용하는 사용자입니다. 
 | 
| CUSTOMER | 자체 관리형 X를509 사용하는 사용자. . 이  
 | 
API 에서 사용할 수 있는 구성 매개변수에 대해 자세히 알아보려면 Atlas 데이터베이스 사용자 API를 참조하세요.
예시:
cat <<EOF | kubectl apply -f - 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 EOF