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 를 사용하여 X.509 인증서를 생성합니다.509.go 스크립트에서 다음 단계를 수행하세요.
사용자 지정 스크립트를 실행합니다.
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
시크릿 지정 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
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