31.2. ビルドストラテジーのグローバルな無効化
特定のビルドストラテジーへのアクセスをグローバルに禁止するには、cluster-admin 権限を持つユーザーとしてログインし、system:authenticated グループから対応するロールを削除し、アノテーション openshift.io/reconcile-protect: "true"
を適用してそれらを API の再起動間での変更から保護します。以下の例では、Docker ビルドストラテジーを無効にする方法を示します。
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"
に設定されています。
ロールを削除します。
$ oc adm policy remove-cluster-role-from-group system:build-strategy-docker system:authenticated
3.2 よりも前のバージョンでは、ビルドストラテジーのサブリソースは admin
および edit
ロールに組み込まれていました。
ビルドストラテジーのサブリソースもこれらのロールから削除されることを確認します。
$ oc edit clusterrole admin $ oc edit clusterrole edit
それぞれのロールについて、無効にするストラテジーのリソースに対応する行を削除します。
admin の Docker ビルドストラテジーの無効化
kind: ClusterRole
metadata:
name: admin
...
rules:
- resources:
- builds/custom
- builds/docker 1
- builds/source
...
...
- 1
- admin ロールを持つユーザーに対して、Docker ビルドをグローバルに無効にするためにこの行を削除します。