OCP4 구성 : 3.Group Management

Modern IT Story
9 min readApr 18, 2021

--

Red Hat OpenShift Container Platform 4 Configuration의 이전 Authentication 내용에 이어서 Group Management 교육 내용을 정리한 것입니다. 이전글을 참고하지 않으신 분은 이전글을 먼저 참고해 주세요. 그리고 여기에 수록된 내용에 대한 최신 정보는 공식 Red Hat 기술 문서를 참고하세요.

Module Topics

  • Groups Overview
  • Local Group Management
  • LDAP Group Synchronization
  • System Groups

Groups 개요

그룹 및 역할 기반 액세스 제어

그룹은 RBAC (역할 기반 액세스 제어)를 의미함 :

  • 클러스터에 대한 전체보기 액세스 권한이있는 사용자 “alice”는 미스테리 일 수 있음
  • 전체보기 액세스 권한을 가진 그룹 “security-audit”는 미스터리가 아님
  • 그룹은 Red Hat OpenShift Container Platform에서 조직 역할을 나타내는 권장 사례임

그룹(Groups)의 예 :

  • 애플리케이션 개발 팀, 팀 리더, 품질 보증
  • 플랫폼 관리자, 보안, 운영(Platform administrators, security, operations)

그룹 관리

그룹은 OpenShift Container Platform에서 수동으로 관리하거나 자동화로 관리 할 수 있습니다.

  • 자동화는 그룹을 다른 시스템과 동기화 할 수 있음
  • 자동화를 사용할 수 없는 경우 수동 그룹 관리 필요

그룹 관리에 필요한 OpenShift 클러스터 관리자 액세스

  • 그룹 관리는 cluster-admin이 아닌 사용자에게 위임 될 수 없음

Local Group Management

Group Management Commands

그룹 및 구성원 리스트

oc get groups

새로운 그룹 만들기

oc adm groups new GROUP

그룹에 사용자 추가하기

oc adm groups add-users GROUP USER

그룹에서 사용자 제거하기

oc adm groups remove-users GROUP USER

그룹 삭제하기

oc delete group GROUP

그룹은 사용자를 문자열로 취급합니다. 사용자가 존재하는지 또는 사용자 이름이 유효한지 확인하는 검증이 수행되지 않습니다.

LDAP Group Synchronization

ID 및 액세스 관리 (IAM) 시스템

OpenShift는 그룹을 LDAP와 동기화하는 도구를 제공합니다.

  • LDAP = Lightweight Directory Access Protocol
    - 공통 ID 및 액세스 관리 (IAM) 구성 요소
  • 사용자 및 그룹 구성에 대한 액세스를 안전하게 제공 할 수 있음
  • 그룹은 LDAP 인증을 사용하거나 사용하지 않고 LDAP와 동기화 할 수 있음

외부 시스템은 OpenShift API로 OpenShift 그룹을 관리 할 수도 있습니다.

OpenShift 그룹 동기화 명령

  • oc adm groups sync : LDAP의 그룹을 OpenShift 그룹에 동기화
  • oc adm groups prune : 이전에 동기화 되었지만 더 이상 LDAP에서 찾을 수없는 그룹 제거

명령어 옵션들

  • --sync-config=...: YAML 형식 LDAP 동기화 구성 파일의 파일 경로 (필수)
  • --confirm : 이 플래그가 없으면 그룹 동기화가 테스트 실행(dry run)됨
  • --confirm : 무시할 LDAP 그룹 목록이 포함 된 텍스트 파일의 파일 경로
  • --blacklist=... : LDAP 그룹 목록이 포함 된 텍스트 파일의 파일 경로 (제공된 경우 다른 모든 그룹은 무시 됨)
  • --whitelist=... : LDAP 그룹 목록이 포함 된 텍스트 파일의 파일 경로 (제공된 경우 다른 모든 그룹은 무시 됨)

Example LDAP Group Sync Configuration (RFC 2307 LDAP)

kind: LDAPSyncConfig
apiVersion: v1
url: "ldap://ipa.shared.example.opentlc.com:389"
bindDN: "uid=admin,cn=users,cn=accounts,dc=shared,dc=example,dc=opentlc,dc=com"
bindPassword:
file: /etc/secrets/bind_password
ca: /etc/config/ldap-ca.crt
insecure: false
rfc2307:
groupsQuery:
baseDN: "cn=groups,cn=accounts,dc=shared,dc=example,dc=opentlc,dc=com"
scope: sub
derefAliases: never
filter: (!(objectClass=mepManagedEntry))
pageSize: 0
timeout: 0
groupUIDAttribute: dn
groupNameAttributes: [ cn ]
groupMembershipAttributes: [ member ]
usersQuery:
baseDN: "cn=users,cn=accounts,dc=shared,dc=example,dc=opentlc,dc=com"
scope: sub
derefAliases: never
userUIDAttribute: dn
userNameAttributes: [ uid ]

LDAP Group Sync Configuration Reference: General

url

  • 데이터베이스 및 선택적 포트를 호스팅하는 LDAP 서버용 연결 프로토콜 및 호스트 — scheme://host:port로 형식 지정. 여기서 scheme = ldap또는 ldaps

bindDN

  • bind DN으로 사용할 선택적 DN
  • OpenShift Container Platform은 동기화 작업을 위해 항목을 검색하는 데 높은 권한이 필요한 경우 사용함

bindPassword

  • 선택적 LDAP 바인드 비밀번호
  • 바인드 비밀번호를 단순 문자열 값 또는 환경 변수로 제공하는 옵션
  • 제공된 복호화를 위해 bindPassword.keyFile로 값을 암호화하는 옵션

ca

  • 구성된 URL에 대한 서버 인증서의 유효성을 검사하는 데 사용할 인증서 번들
  • 비어 있는 경우 OpenShift Container Platform은 시스템에서 신뢰하는 roots를 사용 — but only if insecure not set to true

insecure

  • Optional
  • If set to true and url scheme is ldap://, then insecure LDAP
  • Otherwise, TLS security applied to connection

LDAP Group Sync Configuration Reference: Groups

rfc2307.groupsQuery.baseDN

  • 그룹 검색이 시작되는 디렉토리 분기의 DN

rfc2307.groupsQuery.scope

  • 검색 범위
  • Value = one 기본 DN 바로 아래에있는 개체 만 검색하려면 one
  • Value = sub기본 DN 아래에서 전체 하위 트리를 검색하려면sub

rfc2307.groupsQuery.derefAliases

  • LDAP alias-handling behavior (LDAP 별칭 처리 동작)
  • Valid values = never, search, base, always (default)

rfc2307.groupsQuery.filter

  • LDAP 검색 필터
  • 정의되지 않은 경우 기본값은(objectClass=*)

rfc2307.groupsQuery.pageSize

  • 요청 당 가져올 선택적 최대 LDAP 항목 수
  • 0으로 설정하면 응답 페이지에 크기 제한이 없음
  • 쿼리가 클라이언트 또는 서버에서 기본적으로 허용하는 것보다 더 많은 항목을 반환 할 때 필요한 페이지 크기 설정

rfc2307.groupsQuery.timeout

  • 클라이언트 검색에 허용되는 시간 제한 (초)
  • 값 0은 클라이언트 측 제한을 부과하지 않음

rfc2307.groupUIDAttribute

  • LDAP 서버에서 그룹을 고유하게 식별하는 속성

rfc2307.groupNameAttributes

  • 그룹의 이름을 검색하는 데 사용할 속성 목록

rfc2307.groupMembershipAttributes

  • 회원 정보를 저장하는 사용자의 속성

LDAP Group Sync Configuration Reference: Users

rfc2307.usersQuery.baseDN

  • 사용자 검색이 시작되는 디렉토리 분기의 DN

rfc2307.usersQuery.scope

  • 검색 범위(Scope of search)
  • Value = one 기본 DN 바로 아래에있는 개체 만 검색하려면 one
  • Value = sub 기본 DN 아래에서 전체 하위 트리를 검색하려면 sub

rfc2307.usersQuery.derefAliases

  • LDAP alias-handling behavior (LDAP 별칭 처리 동작)
  • Valid values = never, search, base, or always (default)

rfc2307.userUIDAttribute

  • LDAP 서버에서 사용자를 고유하게 식별하는 속성

rfc2307.userNameAttributes

  • 그룹 구성원의 사용자 이름을 검색하는 데 사용할 속성 목록
  • 인증 ID 공급자로 구성된 사용자 이름과 일치해야 함

Active Directory LDAP에서 그룹 동기화

  • Active Directory LDAP 스키마가 RFC 2037을 따르지 않음
  • Active Directory에서 동기화하려면 다음 중 하나가 필요함
    - activeDirectory
    - augmentedActiveDirectory

System Groups

연결된 그룹 리소스 정의가없는 기본 제공 가상 그룹

Default System Groups

system:authenticated

  • 인증 된 사용자

system:authenticated:oauth

  • OAuth로 인증 된 사용자

system:cluster-admins

  • kubeadmin, system:admin과 같은 기본 제공 클러스터 관리자

system:serviceaccounts

  • 모든 OpenShift 서비스 계정

system:serviceaccounts:NAMESPACE

  • 특정 프로젝트 네임 스페이스의 모든 OpenShift 서비스 계정

system:unauthenticated

  • 익명의 인증되지 않은 요청

서비스 계정은 다른 모듈에서 자세히 다룹니다.

> Next : 4. Role-Based Access Control

< Previous : 2.Authentication

--

--

Modern IT Story
Modern IT Story

Written by Modern IT Story

Certified Architect, Hybrid Cloud

No responses yet