6.5. 서비스 계정별로 자체 프로비저닝 프로젝트 활성화 및 제한
기본적으로 서비스 계정은 프로젝트를 생성할 수 없습니다. 그러나 관리자는 서비스 계정당 이 기능을 활성화할 수 있으며, 지정된 서비스 계정에서 요청한 자체 프로비저닝 프로젝트 수는 ProjectRequestLimit
승인 제어 플러그인으로 제한할 수 있습니다.
서비스 계정이 프로젝트를 생성할 수 있는 경우 프로젝트 편집기에서 해당 레이블을 조작할 수 있으므로 해당 계정에 배치된 레이블을 신뢰할 수 없습니다.
프로젝트에 서비스 계정이 없는 경우 해당 계정을 생성합니다.
$ oc create sa <sa_name>
cluster-admin
권한이 있는 사용자로 서비스 계정에self-provisioner
클러스터 역할을 추가합니다.$ oc adm policy \ add-cluster-role-to-user self-provisioner \ system:serviceaccount:<project>:<sa_name>
/etc/origin/master/master-config.yaml 에서 마스터 구성 파일을 편집하고
ProjectRequestLimit
섹션의maxProjectsForServiceAccounts
매개변수 값을 생성할 수 있는 지정된 프로젝트 수로 설정합니다.예를 들어 다음 구성은 서비스 계정당 프로젝트 3개로 글로벌 제한을 설정합니다.
admissionConfig: pluginConfig: ProjectRequestLimit: configuration: apiVersion: v1 kind: ProjectRequestLimitConfig maxProjectsForServiceAccounts: 3
변경 사항을 저장한 후 OpenShift Container Platform을 다시 시작하여 변경 사항을 적용합니다.
# master-restart api # master-restart controllers
서비스 계정으로 로그인하고 새 프로젝트를 생성하여 변경 사항이 적용되었는지 확인합니다.
토큰을 사용하여 서비스 계정으로 로그인합니다.
$ oc login --token <token>
새 프로젝트를 생성합니다.
$ oc new-project <project_name>