5.2. 확장 리소스에 대한 사용자 액세스


클러스터 확장이 설치되고 Operator Lifecycle Manager(OLM) v1에서 관리되면 확장은 클러스터에서 새로운 API 리소스를 노출하는 CustomResourceDefinition 개체(CRD)를 제공하는 경우가 많습니다. 클러스터 관리자는 일반적으로 이러한 리소스에 대한 전체 관리 액세스 권한을 가지고 있는 반면, 클러스터 관리자가 아닌 사용자나 일반 사용자는 충분한 권한이 부족할 수 있습니다.

OLM v1은 설치된 확장 프로그램에서 제공하는 API와 일반 사용자가 상호 작용할 수 있도록 역할 기반 액세스 제어(RBAC)를 자동으로 구성하거나 관리하지 않습니다. 클러스터 관리자는 이러한 사용자에 대한 사용자 정의 리소스(CR)를 생성, 보기 또는 편집하기 위해 필요한 RBAC 정책을 정의해야 합니다.

참고

확장 리소스에 대한 사용자 액세스에 대해 설명된 RBAC 권한은 클러스터 확장 자체의 OLM v1 기반 초기 설치를 활성화하기 위해 서비스 계정에 추가해야 하는 권한과 다릅니다. 확장을 설치하는 동안 RBAC 요구 사항에 대한 자세한 내용은 확장 관리의 "클러스터 확장 권한"을 참조하십시오.

5.2.1. 사용자를 위한 공통 기본 클러스터 역할

설치된 클러스터 확장에는 확장에서 제공하는 API 리소스에 대한 일반 사용자의 역할 기반 액세스 제어(RBAC)를 결정하기 위한 기본 클러스터 역할이 포함될 수 있습니다. 일반적인 클러스터 역할 집합은 다음 정책과 유사할 수 있습니다.

클러스터 역할 보기
클러스터 전체의 지정된 API 리소스의 모든 사용자 정의 리소스(CR) 개체에 대한 읽기 전용 액세스 권한을 부여합니다. 수정 권한 없이 리소스에 대한 가시성이 필요한 일반 사용자를 대상으로 합니다. 모니터링 목적이나 제한된 접근 권한으로 보기에 이상적입니다.
클러스터 역할 편집
사용자가 클러스터 내의 모든 CR 오브젝트를 수정할 수 있습니다. 사용자가 리소스를 생성, 업데이트, 삭제할 수 있으므로 리소스를 관리해야 하지만 RBAC를 제어하거나 다른 사람의 권한을 관리해서는 안 되는 팀 구성원에게 적합합니다.
관리자 클러스터 역할
클러스터 전체의 지정된 API 리소스에 대한 모든 사용자 정의 리소스 개체에 대한 생성 , 업데이트 , 삭제 동사를 포함한 전체 권한을 제공합니다.

5.2.2. 클러스터 확장에서 노출된 API 그룹 및 리소스 찾기

사용자에게 클러스터 확장 리소스에 대한 액세스 권한을 부여하기 위한 적절한 RBAC 정책을 만들려면 설치된 확장에서 어떤 API 그룹과 리소스가 노출되는지 알아야 합니다. 관리자는 OpenShift CLI( oc )를 사용하여 클러스터에 설치된 사용자 정의 리소스 정의(CRD)를 검사할 수 있습니다.

사전 요구 사항

  • 클러스터에 클러스터 확장이 설치되었습니다.

프로세스

  • 해당 확장에서 소유한 CRD만 찾으려면 이름으로 특정 클러스터 확장을 대상으로 하는 라벨 선택기를 지정하는 동안 설치된 CRD를 나열하려면 다음 명령을 실행합니다.

    $ oc get crds -l 'olm.operatorframework.io/owner-kind=ClusterExtension,olm.operatorframework.io/owner-name=<cluster_extension_name>'
    Copy to Clipboard Toggle word wrap
  • 또는 설치된 모든 CRD를 검색하여 CRD 이름으로 개별적으로 검사할 수 있습니다.

    1. 다음 명령을 실행하여 현재 클러스터에 설치된 모든 사용 가능한 사용자 정의 리소스 정의(CRD)를 나열합니다.

      $ oc get crds
      Copy to Clipboard Toggle word wrap

      출력에서 원하는 CRD를 찾으세요.

    2. 다음 명령을 실행하여 개별 CRD를 추가로 검사하여 API 그룹을 찾습니다.

      $ oc get crd <crd_name> -o yaml
      Copy to Clipboard Toggle word wrap

클러스터 관리자는 사용자 지정 역할 바인딩을 사용하여 확장 리소스에 대한 사용자 액세스 권한을 부여하도록 RBAC(역할 기반 액세스 제어) 정책을 수동으로 생성하고 구성할 수 있습니다.

사전 요구 사항

  • 클러스터에 클러스터 확장이 설치되어 있습니다.
  • "클러스터 확장에 의해 노출되는 API 그룹 및 리소스 찾기"에 설명된 대로 API 그룹 및 리소스 이름 목록이 있습니다.

프로세스

  1. 설치된 클러스터 확장에서 기본 클러스터 역할을 제공하지 않는 경우 하나 이상의 역할을 수동으로 생성합니다.

    1. "사용자를 위한 공통 기본 클러스터 역할"에 설명된 역할 세트에 대한 사용 사례를 고려하십시오.

      예를 들어 다음 ClusterRole 오브젝트 정의 중 하나 이상을 생성하여 < cluster_extension_api_group > 및 < cluster_extension_custom_resource >를 설치된 클러스터 확장에서 제공하는 실제 API 그룹 및 리소스 이름으로 교체합니다.

      view-custom-resource.yaml 파일 예

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: view-custom-resource
      rules:
      - apiGroups:
        - <cluster_extension_api_group>
        resources:
        - <cluster_extension_custom_resources>
        verbs:
        - get
        - list
        - watch
      Copy to Clipboard Toggle word wrap

      edit-custom-resource.yaml 파일 예

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: edit-custom-resource
      rules:
      - apiGroups:
        - <cluster_extension_api_group>
        resources:
        - <cluster_extension_custom_resources>
        verbs:
        - get
        - list
        - watch
        - create
        - update
        - patch
        - delete
      Copy to Clipboard Toggle word wrap

      admin-custom-resource.yaml 파일의 예

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: admin-custom-resource
      rules:
      - apiGroups:
        - <cluster_extension_api_group>
        resources:
        - <cluster_extension_custom_resources>
        verbs:
        - '*' 
      1
      Copy to Clipboard Toggle word wrap

      1
      동사 에서 와일드카드(*)를 설정하면 지정된 리소스에 대한 모든 작업을 수행할 수 있습니다.
    2. 생성한 YAML 파일에 대해 다음 명령을 실행하여 클러스터 역할을 생성합니다.

      $ oc create -f <filename>.yaml
      Copy to Clipboard Toggle word wrap
  2. 클러스터 역할을 특정 사용자 또는 그룹에 연결하여 클러스터 역할을 개별 사용자 또는 그룹 이름에 바인딩하여 리소스에 필요한 권한을 부여합니다.

    1. 모든 네임스페이스 또는 특정 네임스페이스 내에서 액세스 권한을 부여할 역할 바인딩에 대한 액세스 권한을 부여하는 클러스터 역할 바인딩에 대한 오브젝트 정의를 생성합니다.

      • 다음 예제 클러스터 역할 바인딩은 모든 네임스페이스의 사용자 정의 리소스에 대한 읽기 전용 보기 액세스 권한을 부여합니다.

        사용자에 대한 ClusterRoleBinding 오브젝트의 예

        apiVersion: rbac.authorization.k8s.io/v1
        kind: ClusterRoleBinding
        metadata:
          name: view-custom-resource-binding
        subjects:
        - kind: User
          name: <user_name>
        roleRef:
          kind: ClusterRole
          name: view-custom-resource
          apiGroup: rbac.authorization.k8s.io
        Copy to Clipboard Toggle word wrap

        사용자에 대한 ClusterRoleBinding 오브젝트의 예

        apiVersion: rbac.authorization.k8s.io/v1
        kind: ClusterRoleBinding
        metadata:
          name: view-custom-resource-binding
        subjects:
        - kind: Group
          name: <group_name>
        roleRef:
          kind: ClusterRole
          name: view-custom-resource
          apiGroup: rbac.authorization.k8s.io
        Copy to Clipboard Toggle word wrap

      • 다음 역할 바인딩에서는 특정 네임스페이스에 대한 편집 권한을 제한합니다.

        사용자에 대한 RoleBinding 오브젝트의 예

        apiVersion: rbac.authorization.k8s.io/v1
        kind: RoleBinding
        metadata:
          name: edit-custom-resource-edit-binding
          namespace: <namespace>
        subjects:
        - kind: User
          name: <username>
        roleRef:
          kind: Role
          name: custom-resource-edit
          apiGroup: rbac.authorization.k8s.io
        Copy to Clipboard Toggle word wrap

    2. 오브젝트 정의를 YAML 파일에 저장합니다.
    3. 다음 명령을 실행하여 오브젝트를 생성합니다.

      $ oc create -f <filename>.yaml
      Copy to Clipboard Toggle word wrap

클러스터 관리자는 집계된 클러스터 역할을 사용하여 확장 리소스에 대한 사용자 액세스 권한을 부여하도록 역할 기반 액세스 제어(RBAC) 정책을 구성할 수 있습니다.

기존 기본 클러스터 역할을 자동으로 확장하려면 다음 레이블 중 하나 이상을 ClusterRole 개체에 추가하여 aggregation labels을 추가할 수 있습니다.

ClusterRole 오브젝트의 집계 라벨

# ..
metadata:
  labels:
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
    rbac.authorization.k8s.io/aggregate-to-view: "true"
# ..
Copy to Clipboard Toggle word wrap

이를 통해 이미 보기,편집 또는 관리자 역할이 있는 사용자는 특정 사용자 또는 그룹에 대한 추가 역할 또는 클러스터 역할 바인딩 없이도 ClusterRole 오브젝트에서 지정한 사용자 정의 리소스와 상호 작용할 수 있습니다.

사전 요구 사항

  • 클러스터에 클러스터 확장이 설치되었습니다.
  • "클러스터 확장에서 노출된 API 그룹 및 리소스 찾기"에 설명된 대로 API 그룹 및 리소스 이름 목록이 있습니다.

프로세스

  1. 클러스터 확장에서 제공하는 API 그룹과 리소스를 지정하는 클러스터 역할에 대한 개체 정의를 만들고 하나 이상의 기존 기본 클러스터 역할을 확장하기 위한 집계 레이블을 추가합니다.

    집계 레이블이 있는 ClusterRole 개체의 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: view-custom-resource-aggregated
      labels:
        rbac.authorization.k8s.io/aggregate-to-view: "true"
    rules:
      - apiGroups:
          - <cluster_extension_api_group>
        resources:
          - <cluster_extension_custom_resource>
        verbs:
          - get
          - list
          - watch
    Copy to Clipboard Toggle word wrap

    create , update , delete 와 같은 적절한 동사를 사용하여 editadmin에 대한 유사한 ClusterRole 객체를 만들 수 있습니다. 집계 레이블을 사용하면 사용자 지정 리소스에 대한 권한이 기본 역할에 추가됩니다.

  2. 개체 정의를 YAML 파일에 저장합니다.
  3. 다음 명령을 실행하여 객체를 생성합니다.

    $ oc create -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat