Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes Operator
/

X.509 인증 설정

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 인증을 설정하려면 다음을 수행합니다.

  1. X.509 인증서를 생성합니다.

  2. 인증서를 사용하도록 AtlasProject 사용자 지정 리소스 를 구성합니다.

  3. 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 생성하려면 다음 단계를 수행하세요.

1

cert-manager를 설치하려면 cert-manager 설치 설명서 를 참조하세요. .

2

cert-manager Issuer 를 만들려면 cert-manager 구성 문서 를 참조하세요. .

자세한 내용은 예제를 참조하세요.

3

인증서를 만들려면 cert-manager 사용 설명서를 참조하세요.

자세한 내용은 예제를 참조하세요.

create_X 를 사용하여 X.509 인증서를 생성합니다.509.go 스크립트에서 다음 단계를 수행하세요.

1

create_X를 실행합니다.509.go 스크립트:

go run scripts/create_x509.go --path={pem-file-path}

예시:

go run scripts/create_x509.go --path=tmp/x509/
2

시크릿 에 인증서를 추가하려면 다음 명령을 실행합니다.

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
1

AtlasProject 시크릿 지정 Custom Resource(사용자 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
2

AtlasDatabaseUser 사용자 지정 리소스에 대한 x509Type 매개 변수를 지정합니다.

이 매개 변수는 다음을 허용합니다.

none

X.509 인증을 사용하지 않는 사용자입니다.

MANAGED

Atlas managed X.509를 사용하는 사용자입니다.

spec.databaseName 매개 변수에 \$external 를 지정해야 합니다.

CUSTOMER

자체 관리형 X를 사용하는 사용자입니다.509. 이 x509Type 로 생성된 사용자는 username 필드에 CN(일반 이름)이 필요합니다. 자세한 내용은 RFC 2253 를 참조하세요.

spec.databaseName 매개 변수에 \$external 를 지정해야 합니다.

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

돌아가기

사용자 지정 데이터베이스 역할

이 페이지의 내용