Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes Operator
/

AtlasCustomRole 사용자 지정 리소스

이 페이지의 내용

  • 예시
  • 기본 예시
  • 독립적인 CRD 예제
  • 매개변수

AtlasCustomRole 사용자 지정 리소스 는 사용자 지정 데이터베이스 역할 을 정의하여 데이터베이스 사용자에게 권한을 할당합니다.

지정된 프로젝트 내에서 이 사용자 지정 역할 을 만들려면 다음 중 하나를 수행해야 합니다.

  • Atlas Kubernetes Operator 로 관리 하는 프로젝트의 경우 사용자 AtlasProject 지정 리소스 에서 사용자 지정 리소스 이름을 참조하세요.AtlasCustomRole

  • Atlas Kubernetes Operator 로 관리 하지 않는 프로젝트의 경우 사용자 지정 리소스 에서 Atlas 프로젝트 의 프로젝트 ID 를 참조하세요. AtlasCustomRole

중요

Custom Resource(사용자 정의 리소스)는 더 이상 기본적으로 객체를 삭제하지 않음

  • Atlas Kubernetes Operator 는 사용자 지정 리소스 구성 파일을 관리 하여 Atlas 구성을 2.0 관리하지만, Atlas Kubernetes Operator Kubernetes 에서 삭제 한 사용자 지정 리소스가 더 이상 ( 기본값) Atlas 에서 삭제되지 않습니다. 대신 Atlas Kubernetes Operator 는 Atlas 에서 해당 리소스 관리를 중지할 뿐입니다. 예를 예시 , Kubernetes 에서 AtlasProject Custom Resource(사용자 지정 리소스)를 삭제 하면 기본값 으로 Atlas Kubernetes Operator 는 더 이상 Atlas 에서 해당 프로젝트 를 자동으로 삭제하지 않습니다. 이러한 동작 변경은 우발적이거나 예기치 않은 삭제를 방지하기 위한 것입니다. 이 동작을 Atlas Kubernetes Operator 이전에 사용된 기본값 으로 되돌리는 방법 등 자세한 내용을 학습 보세요.,2 0 새 기본값: Atlas Kubernetes Operator 2 의 삭제 보호0 기능을참조하세요. .

    마찬가지로, Atlas Kubernetes Operator 를 사용하여 Kubernetes 의 Atlas 프로젝트 에서 팀을 제거 하는 경우 Atlas Kubernetes Atlas Kubernetes Operator 는 Atlas 에서 팀을 삭제 하지 않습니다.

  • 기본값 Atlas 구성 값을 암시적으로 사용하지 않으려면 원하는 구성 세부 정보를 명시적으로 정의하세요. 경우에 따라 Atlas 기본값을 상속하면 조정 루프가 발생하여 사용자 지정 리소스 가 READY 상태 를 달성하지 못할 수 있습니다. 예를 예시 AtlasDeployment 사용자 지정 리소스 에 원하는 자동 확장 동작을 명시적으로 정의하면 포함된 예시 와 같이 사용자 지정 리소스 의 정적 인스턴스 크기가 자동 확장이 활성화된 Atlas 배포서버 서버에 반복적으로 적용되지 않도록 할 수 있습니다.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40

Atlas Kubernetes Operator 는 Atlas Custom Database Role API Resource(사용자 지정 데이터베이스 역할 API 리소스)를 사용하여 다음 작업 중 하나를 수행합니다.

  • 새 사용자 지정 데이터베이스 역할 만듭니다.

  • 기존 사용자 지정 데이터베이스 역할 업데이트합니다.

다음 예시 는 my-project 프로젝트 내에서 샤딩된 클러스터를 백업하고 모니터링 할 수 있는 권한이 있는 shard-operator 사용자 지정 역할 을 정의하는 AtlasCustomRole 사용자 지정 리소스 를 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
projectRef:
name: my-project
namespace: my-operator-namespace
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

다음 예시 는 AtlasCustomRole shard-operator 기본 예제 에 정의된 것과 동일한 사용자 지정 역할 정의하는 독립적인 CRD를 보여줍니다. 이 사용자 지정 리소스 정의를 사용하면 이 리소스 를 정의하는 데 사용된 동일한 Atlas Kubernetes Operator 인스턴스 에서 관리 하지 않는 프로젝트 에서 이 역할 을 생성할 수 있습니다. 독립적인 작업을 활성화 하려면 externalProjectRef projectRef대신 를 사용해야 하며,connectionSecret 이 리소스 는 상위 프로젝트 로부터 API 자격 증명 을 상속할 수 없으므로 를 직접 제공해야 합니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
externalProjectRef:
id: 671998971c8520583f24f411
connectionSecret:
name: my-atlas-key
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

이 섹션에서는 사용 가능한 AtlasTeam 사용자 지정 리소스 매개 변수에 대해 설명합니다.

metadata.name

유형: 문자열

필수 사항

AtlasProject 사용자 지정 리소스 가 이 팀을 프로젝트에 추가하는 데 사용하는 이름입니다.

metadata.namespace

유형: 문자열

옵션

atlasTeam 사용자 지정 리소스를 포함하려는 default 이외의 네임스페이스입니다. 사용자 지정 네임스페이스를 정의하는 경우 이를 필드의 AtlasProject 사용자 지정 spec.teams.teamRef.namespace 리소스 에 추가해야 합니다.

spec.connectionSecret.name

유형: 문자열

조건부

Atlas Kubernetes Operator 가 Atlas 에 연결하는 데 사용하는 조직 ID 및 API 키가 포함된 불투명 시크릿 의 이름입니다. 지정되지 않은 경우 Atlas Kubernetes Operator 는 다음 중 하나로 대체됩니다.

  • 상위 atlasProjectspec.connectionSecretRef.name 매개 변수

  • 기본값 global 시크릿(상위 atlasProject에 대해 spec.connectionSecretRef.name 이 정의되지 않은 경우)

이 매개변수는 독립적인 CRD의 경우 필수입니다.

Atlas Kubernetes Operator는 불필요한 시크릿 을 감시하지 atlas.mongodb.com/type=credentials 않기 위해 레이블이 있는 시크릿 만 감시합니다. .

다음 예시에서는 시크릿에 레이블을 지정합니다.

kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRef.id

유형: 문자열

조건부

사용자 지정 역할 이 속한 프로젝트 의 ID 입니다. 기존 Atlas 프로젝트의 프로젝트 ID 를 지정해야 합니다. 이 매개변수는 다음 중 하나에서 managed 되는 프로젝트에 속한 사용자 지정 역할에 필요합니다.

  • Atlas Kubernetes Operator 의 다른 인스턴스

  • Atlas Kubernetes Operator 이외의 도구

동일한 Atlas Kubernetes Operator 인스턴스 에서 managed 하는 프로젝트에 속한 사용자 지정 역할의 경우 spec.externalProjectRef.id을(를) 사용하지 않는 경우 spec.projectRef.name 을(를) 사용하세요.

사용자 지정 역할 은 하나의 프로젝트 에만 속할 수 있습니다. 여러 프로젝트에 대해 동일한 사용자 지정 역할 을 정의하려면 각 프로젝트 에 대한 사용자 지정 리소스 정의를 만듭니다.

spec.projectRef.name

유형: 문자열

조건부

사용자 지정 역할 이 속한 프로젝트 의 이름입니다. 기존 AtlasProject Custom Resource(사용자 지정 리소스)를 지정해야 합니다. 이 매개변수는 동일한 인스턴스 Atlas Kubernetes Operator 에서 managed 하는 프로젝트에 속한 사용자 지정 역할에만 적용됩니다.

다음 중 하나에서 managed 되는 프로젝트에 속한 사용자 지정 역할의 경우:

  • Atlas Kubernetes Operator 의 다른 인스턴스

  • Atlas Kubernetes Operator 이외의 도구

spec.externalProjectRef.id 을(를) 사용하세요.

사용자 지정 역할 은 하나의 프로젝트 에만 속할 수 있습니다. 여러 프로젝트에 대해 동일한 사용자 지정 역할 을 정의하려면 각 프로젝트 에 대한 사용자 지정 리소스 정의를 만듭니다.

spec.projectRef.namespace

유형: 문자열

조건부

AtlasProject 지정된 사용자 지정 리소스가 존재하는 네임스페이스입니다.spec.projectRef.name

다음 중 하나에서 managed 되는 프로젝트에 속한 사용자 지정 역할의 경우:

  • Atlas Kubernetes Operator 의 다른 인스턴스

  • Atlas Kubernetes Operator 이외의 도구

이 매개변수를 설정하다 하지 마세요.

spec.role.actions

유형: 배열

옵션

역할이 부여하는 개별 권한 작업 을 나타내는 객체 목록입니다.

spec.role.actions.name

유형: 문자열

옵션

권한 조치 을 식별하는 레이블입니다. Atlas 관리 API 에서 사용할 수 있는 작업의 전체 목록은 /reference/custom-role-actions를 참조하세요.

spec.role.actions.resources

유형: 배열

옵션

작업이 부여된 데이터베이스 및 컬렉션을 나타내거나 클러스터 리소스에 작업이 부여되었음을 나타내는 객체 목록입니다.

spec.role.actions.resources.cluster

유형: 부울

옵션

작업이 클러스터 리소스에 부여되었음을 나타내는 플래그입니다.

참고

이 매개변수는 spec.role.actions.resources.collectionspec.role.actions.resources.database 매개변수와 상호 배타적입니다.

spec.role.actions.resources.collection

유형: 문자열

옵션

작업이 부여된 컬렉션을 식별하는 사람이 읽을 수 있는 레이블입니다. 이 값이 빈 string 이면 spec.role.actions.resources.database 매개변수에 지정된 데이터베이스 내의 모든 컬렉션에 대해 작업이 부여됩니다.

참고

이 매개변수는 spec.role.actions.resources.cluster 매개변수와 상호 배타적입니다.

spec.role.actions.resources.database

유형: 문자열

옵션

조치가 부여된 데이터베이스를 식별하는 사람이 읽을 수 있는 레이블입니다.

참고

이 매개변수는 spec.role.actions.resources.cluster 매개변수와 상호 배타적입니다.

spec.role.inheritedRoles

유형: 배열

옵션

상속된 역할과 역할이 부여된 데이터베이스를 나타내는 키-값 쌍을 나타내는 객체 목록입니다.

spec.role.inheritedRoles.database

유형: 문자열

옵션

상속된 역할이 부여된 데이터베이스를 식별하는 사람이 읽을 수 있는 레이블입니다.

참고

이 값은 읽기readWrite를 제외한 모든 역할에 대해 admin 이어야 합니다.

spec.role.inheritedRoles.name

유형: 문자열

옵션

상속된 역할 을 고유하게 식별하는 레이블입니다. 다른 사용자 지정 역할 또는 내장 역할 을 지정할 수 있습니다.

돌아가기

AtlasDatabaseUser