AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

서비스 계정을 사용하여 Atlas에 대한 액세스 구성

Atlas API 서비스 계정은 Atlas Kubernetes Operator를 Atlas Administration API에 대해 인증하기 위한 프로그래밍 API 키 에 대한 보안이 강화된 토큰 기반 대체입니다. 서비스 계정은 clientIdclientSecret 쌍에서 파생된 단기 존속 액세스 토큰을 사용하여 장기 존속 자격 증명 노출 위험을 줄이는 다.

MongoDB는 새 배포서버에 대해 프로그래밍 API 키보다 서비스 계정을 권장합니다. 서비스 계정은 다음과 같은 이점을 제공합니다.

  • managed에 의해 관리되는 자동 토큰 새로 고침이 있는 토큰 기반 인증.

  • 조직 수준 및 프로젝트 수준 범위 모두 지원.

  • Atlas Kubernetes Operator 워크로드에 대한 감사 가능하고 고유한 신원을 제공합니다.

중요

서비스 계정 비밀 만료

API 키와 달리 서비스 계정 비밀은 만료될 수 있습니다. 최대 1년까지 TTL 을 설정할 수 있습니다. 중단 없이 액세스를 유지하려면 서비스 계정 비밀이 만료되기 전에 교체해야 합니다. Atlas는 만료 일자가 다가올 때 서비스 계정 비밀이 만료될 예정입니다 경고를 자동으로 발생시킵니다. 그에 따라 교체 예정을 계획하세요.

이는 조직 수준 및 프로젝트 수준 서비스 계정 모두에 적용됩니다.

시작하기 전에 다음이 준비되어 있는지 확인하세요.

  • 조직 수준 서비스 계정의 경우 Organization Owner 역할이 있는 Atlas 계정, 프로젝트 수준 서비스 계정의 경우 Project Owner 역할이 있는 Atlas 계정.

  • Atlas Kubernetes Operator가 설치된 실행 중인 Kubernetes 클러스터.

  • kubectl Atlas Kubernetes Operator가 실행되는 Kubernetes 클러스터에 액세스합니다.

1

Atlas UI 또는 Atlas Administration API를 사용하여 Atlas에서 서비스 계정을 만듭니다. 조직 수준 서비스 계정을 만드는 방법은 "조직에서 서비스 계정 만들기"를 참조하십시오. 프로젝트 수준 서비스 계정을 만드는 방법은 "프로젝트에서 서비스 계정 만들기"를 참조하십시오.

clientIdclientSecret을(를) 복사합니다. 생성 후에는 clientSecret 를 다시 조회할 수 없으므로 안전하게 저장합니다.

2

Kubernetes 시크릿 을 만듭니다. orgId, clientId, clientSecret을 포함하는

  • global Atlas Kubernetes Operator 시크릿의 경우 다음 명령을 실행 .

    참고

    global Atlas Kubernetes Operator 시크릿의 이름은 사전 정의된 형식을 준수해야 합니다. Atlas Kubernetes Operator 배포서버 의 기본값 이름은 mongodb-atlas-operator입니다. 따라서 시크릿 의 이름은 mongodb-atlas-operator-service-account로 지정해야 합니다.

    kubectl create secret generic mongodb-atlas-operator-service-account \
    --from-literal="orgId=<the_atlas_organization_id>" \
    --from-literal="clientId=<the_service_account_client_id>" \
    --from-literal="clientSecret=<the_service_account_client_secret>" \
    -n <operator_namespace>
    kubectl label secret mongodb-atlas-operator-service-account \
    atlas.mongodb.com/type=credentials \
    -n mongodb-atlas-system
  • project Atlas Kubernetes Operator 시크릿의 경우 다음 명령을 실행 .

    kubectl create secret generic my-project-connection \
    --from-literal="orgId=<the_atlas_organization_id>" \
    --from-literal="clientId=<the_service_account_client_id>" \
    --from-literal="clientSecret=<the_service_account_client_secret>" \
    -n <atlas_project_namespace>
    kubectl label secret my-project-connection \
    atlas.mongodb.com/type=credentials \
    -n <atlas_project_namespace>
3

시크릿spec.connectionSecretRef.name을 사용하여 AtlasProject 사용자 지정 리소스에서 참조합니다.

global 시크릿을 만들었을 경우, 모든 프로젝트가 기본값으로 사용하므로 추가 구성이 필요하지 않습니다.

project 시크릿을 만들었다면 connectionSecretRefAtlasProject 사용자 지정 리소스에 추가합니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: "My Project"
connectionSecretRef:
name: my-project-connection
4

시크릿을 구성한 후 Atlas Kubernetes Operator가 성공적으로 인증되는지 확인합니다.

kubectl get atlasproject my-project -o jsonpath='{.status.conditions}'

Ready 조건이 True 인지 확인합니다. Atlas Kubernetes Operator가 Service Account 자격 증명으로 인증할 수 없으면 조건에 문제를 설명하는 오류가 표시됩니다.

다음 예시에서는 서비스 계정에 대해 구성된 연결 시크릿을 보여줍니다.

apiVersion: v1
kind: Secret
metadata:
name: my-project-connection
namespace: atlas-operator
labels:
atlas.mongodb.com/type: credentials
type: Opaque
stringData:
orgId: "5d39f0719ccf646554345678"
clientId: "mdb_sa_id_67890abcdef1234567890abc"
clientSecret: "mdb_sa_sk_abcdef1234567890abcdef12"

Atlas Kubernetes Operator managed 액세스 토큰을 자동으로 관리합니다. Atlas Kubernetes Operator 가 서비스 계정 연결 시크릿을 감지하면 Atlas Administration API에서 액세스 토큰을 확보하여 별도의 Kubernetes 시크릿에 저장합니다. 액세스 토큰 시크릿을 수동으로 편집하거나 삭제하지 마세요. Atlas Kubernetes Operator 는 필요에 따라 토큰을 새로 고칩합니다.

Atlas에서 서비스 계정 시크릿을 로테이션할 때:

  1. clientSecret로 Kubernetes 연결 시크릿을 업데이트합니다.

  2. Atlas Kubernetes Operator는 변경 사항을 감지하고 다음 재조정 사이클에서 새 액세스 토큰을 확보합니다. 다시 시작할 필요가 없습니다.

중요

서비스 계정 시크릿의 최대 TTL 은 1년입니다. Atlas에서 서비스 계정 시크릿이 만료될 예정입니다 경고를 모니터링하고 만료되기 전에 시크릿을 로테이트하여 인증 실패를 방지합니다. 이는 조직 수준 서비스 계정과 프로젝트 수준 서비스 계정 모두에 적용됩니다.

서비스 계정의 API 액세스 목록에는 프로그래밍 API 키 와 동일하게 Atlas Kubernetes Operator 팝에서 사용하는 유출 IP 주소 또는 CIDR 블록이포함되어야 합니다. 연산자 팝의 유출 IP가 서비스 계정 액세스 목록에 없으면 API 요청이 실패합니다.