OCP4 구성 : 3.Group Management
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 totrue
insecure
- Optional
- If set to
true
andurl
scheme isldap://
, 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
, oralways
(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