Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

31.2. 전역적으로 빌드 전략 비활성화

특정 빌드 전략에 대한 액세스를 전역적으로 방지하려면 cluster-admin 권한이 있는 사용자로 로그인하여 system:authenticated 그룹에서 해당 역할을 제거하고 주석 openshift.io/reconcile-protect: "true" 를 적용하여 API 재시작 시 변경되지 않도록 보호합니다. 다음 예제에서는 Docker 빌드 전략을 비활성화하는 방법을 보여줍니다.

  1. openshift.io/reconcile-protect 주석을 적용합니다.

    $ oc edit clusterrolebinding system:build-strategy-docker-binding
    
    apiVersion: v1
    groupNames:
    - system:authenticated
    kind: ClusterRoleBinding
    metadata:
      annotations:
        openshift.io/reconcile-protect: "true" 1
      creationTimestamp: 2018-08-10T01:24:14Z
      name: system:build-strategy-docker-binding
      resourceVersion: "225"
      selfLink: /oapi/v1/clusterrolebindings/system%3Abuild-strategy-docker-binding
      uid: 17b1f3d4-9c3c-11e8-be62-0800277d20bf
    roleRef:
      name: system:build-strategy-docker
    subjects:
    - kind: SystemGroup
      name: system:authenticated
    userNames:
    - system:serviceaccount:management-infra:management-admin
    1
    openshift.io/reconcile-protect 주석 값을 "true" 로 변경합니다. 기본적으로 "false" 로 설정됩니다.
  2. 역할을 제거합니다.

    $ oc adm policy remove-cluster-role-from-group system:build-strategy-docker system:authenticated

3.2 이전 버전에서는 build strategy 하위 리소스가 adminedit 역할에 포함되었습니다.

빌드 전략 하위 소스도 이러한 역할에서 제거되었는지 확인합니다.

$ oc edit clusterrole admin
$ oc edit clusterrole edit

각 역할에서 비활성화할 전략 리소스에 해당하는 행을 제거합니다.

관리자에대한 Docker 빌드 전략 비활성화

kind: ClusterRole
metadata:
  name: admin
...
rules:
- resources:
  - builds/custom
  - builds/docker 1
  - builds/source
  ...
...

1
admin 역할이 있는 사용자에 대해 Docker 빌드를 전역적으로 비활성화하려면 이 행을 삭제합니다.