Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes Operator
/

X.509 인증 설정

이 페이지의 내용

  • 전제 조건
  • cert-manager를 사용하여 X.509 인증서 생성
  • 사용자 지정 스크립트로 X.509 인증서 생성
  • 절차
  • 인증서를 사용하도록 프로젝트를 구성합니다.
  • X.509 인증을 사용하는 데이터베이스 사용자를 추가합니다.

X.509 클라이언트 인증서는 데이터베이스 사용자에게 프로젝트 의 데이터베이스 배포에 액세스 를 제공합니다. Atlas Kubernetes Operator 를 활성화 하여 AtlasProject Custom Resource (사용자 지정 리소스) 및 AtlasDatabaseUser Custom Resource(사용자지정 리소스)에 대해 X.509 인증 을 활성화할 수 있습니다.

X.509 인증 옵션에는 Atlas 관리형 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

돌아가기

클라우드 공급자 통합