Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

6.5. 서비스 계정별로 자체 프로비저닝 프로젝트 활성화 및 제한

기본적으로 서비스 계정은 프로젝트를 생성할 수 없습니다. 그러나 관리자는 서비스 계정당 이 기능을 활성화할 수 있으며, 지정된 서비스 계정에서 요청한 자체 프로비저닝 프로젝트 수는 ProjectRequestLimit 승인 제어 플러그인으로 제한할 수 있습니다.

참고

서비스 계정이 프로젝트를 생성할 수 있는 경우 프로젝트 편집기에서 해당 레이블을 조작할 수 있으므로 해당 계정에 배치된 레이블을 신뢰할 수 없습니다.

  1. 프로젝트에 서비스 계정이 없는 경우 해당 계정을 생성합니다.

    $ oc create sa <sa_name>
  2. cluster-admin 권한이 있는 사용자로 서비스 계정에 self-provisioner 클러스터 역할을 추가합니다.

    $ oc adm policy \
        add-cluster-role-to-user self-provisioner \
        system:serviceaccount:<project>:<sa_name>
  3. /etc/origin/master/master-config.yaml 에서 마스터 구성 파일을 편집하고 ProjectRequestLimit 섹션의 maxProjectsForServiceAccounts 매개변수 값을 생성할 수 있는 지정된 프로젝트 수로 설정합니다.

    예를 들어 다음 구성은 서비스 계정당 프로젝트 3개로 글로벌 제한을 설정합니다.

    admissionConfig:
      pluginConfig:
        ProjectRequestLimit:
          configuration:
            apiVersion: v1
            kind: ProjectRequestLimitConfig
            maxProjectsForServiceAccounts: 3
  4. 변경 사항을 저장한 후 OpenShift Container Platform을 다시 시작하여 변경 사항을 적용합니다.

    # master-restart api
    # master-restart controllers
  5. 서비스 계정으로 로그인하고 새 프로젝트를 생성하여 변경 사항이 적용되었는지 확인합니다.

    1. 토큰을 사용하여 서비스 계정으로 로그인합니다.

      $ oc login --token <token>
    2. 새 프로젝트를 생성합니다.

      $ oc new-project <project_name>