역할 기반 접근 제어

역할 기반 접근 제어 (Role-Based Access Control)

이 문서는 차트 매니페스트에서 RBAC 리소스를 만들고 포맷하는 방법을 논의해요. RBAC 리소스 구성과 기본 생성, ServiceAccount 사용 방법을 설명해요.

출처: 문서

본문

이 모범 사례 가이드의 이 부분은 차트 매니페스트에서 RBAC 리소스를 만들고 포맷하는 방법을 논의해요.

RBAC 리소스는 다음과 같아요:

  • ServiceAccount (네임스페이스 범위)

  • Role (네임스페이스 범위)

  • ClusterRole

  • RoleBinding (네임스페이스 범위)

  • ClusterRoleBinding

YAML 구성 (YAML Configuration)

RBAC와 ServiceAccount 구성은 별도의 키 아래에서 이루어져야 해요. 그것들은 별개의 것이에요. YAML에서 이 두 개념을 분리하면 모호함이 없어지고 더 명확해져요.

rbac:
  # RBAC 리소스를 생성할지 여부를 지정
  create: true

serviceAccount:
  # ServiceAccount를 생성할지 여부를 지정
  create: true
  # 사용할 ServiceAccount의 이름.
  # 설정하지 않고 create가 true이면 fullname 템플릿을 사용해 이름이 생성됨
  name:

이 구조는 여러 ServiceAccount가 필요한 더 복잡한 차트로 확장할 수 있어요.

someComponent:
  serviceAccount:
    create: true
    name:
anotherComponent:
  serviceAccount:
    create: true
    name:

RBAC 리소스는 기본적으로 생성되어야 해요 (RBAC Resources Should be Created by Default)

rbac.create는 RBAC 리소스를 생성할지 제어하는 불리언 값이어야 해요. 기본값은 true여야 해요. RBAC 접근 제어를 직접 관리하려는 사용자는 이 값을 false로 설정할 수 있어요 (이 경우 아래를 참조하세요).

RBAC 리소스 사용하기 (Using RBAC Resources)

serviceAccount.name은 차트가 생성하는 접근 제어된 리소스가 사용할 ServiceAccount의 이름으로 설정해야 해요. serviceAccount.create가 true이면 이 이름을 가진 ServiceAccount를 만들어야 해요. 이름이 설정되지 않으면 fullname 템플릿을 사용해 이름이 생성돼요. serviceAccount.create가 false이면 생성하지 않아야 하지만, 나중에 생성되어 이를 참조하는 수동 생성 RBAC 리소스가 올바르게 작동하도록 같은 리소스와 여전히 연결되어야 해요. serviceAccount.create가 false이고 이름이 지정되지 않으면 기본 ServiceAccount가 사용돼요.

ServiceAccount에는 다음 헬퍼 템플릿을 사용해야 해요.

{{/*
사용할 service account의 이름을 생성한다
*/}}
{{- define "mychart.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
    {{ default (include "mychart.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
    {{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

더 알아보기 (Learn more)