[ k8s ] 쿠버네티스 Role,

Kubernetes 역할 기반 액세스 제어(RBAC)사용자 및 서비스 계정이 Kubernetes 클러스터의 리소스에 대한 액세스를 제어할 수 있는 메커니즘을 제공합니다.하다. RBAC에서 역할은 리소스와 관련된 작업 집합을 나타내는 정책 집합입니다.보지마. 역할은 API 그룹, 리소스 및 작업(동사)에 대한 세 가지 주요 속성을 정의합니다. API 그룹은 작업이 수행되는 리소스 유형을 식별하고 리소스는 부여된 액세스 권한을 나타내며 작업은 리소스에서 수행할 수 있는 작업(예: 생성, 삭제, 가져오기, 업데이트 등)을 정의합니다.

역할에는 다음 필드가 포함됩니다.
유형: 역할
apiVersion: 역할의 API 버전
메타데이터: 역할의 메타데이터
규칙: 역할에서 허용하는 작업(동사), 리소스(명사) 및 API 그룹.

다음은 “개발자” 역할을 생성하는 예입니다.

vbnet
Copy code
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: developer-role
rules:
- apiGroups: ("")
  resources: ("pods", "services", "deployments", "configmaps", "secrets")
  verbs: ("get", "list", "watch", "create", "update", "patch", "delete")

이 역할은 “default” 네임스페이스에 “developer”라는 역할 이름으로 생성됩니다.

이 역할에는 다음 권한이 있습니다.

“파드”, “서비스”, “배포”, “configmaps” 및 “비밀” 리소스에 대한 “가져오기”, “목록”, “감시”, “생성”, “업데이트”, “패치”, “삭제” 작업을 수행할 수 있습니다. 실시한다. 이 역할은 서비스 계정이나 사용자에게 직접 할당되지 않습니다. 대신 RoleBinding을 사용하여 역할을 적용할 서비스 계정 또는 사용자를 지정합니다. 이렇게 하면 클러스터 리소스에 대한 액세스 권한을 특정 서비스 계정 또는 사용자에게 할당할 수 있습니다.

역할 바인딩쿠버네티스는 RBAC(역할 기반 액세스 제어)중 하나로 사용자 또는 그룹에 역할을 할당하는 역할RoleBinding을 사용하면 역할과 사용자 또는 그룹 간의 연결을 정의할 수 있으며 연결된 사용자 또는 그룹은 역할에 정의된 리소스 및 작업을 수행할 수 있습니다.

RoleBinding에는 다음 필드가 포함되어 있습니다.
유형: 역할 바인딩
apiVersion: RoleBinding의 API 버전
메타데이터: RoleBinding의 메타데이터
주제: RoleBinding이 적용되는 사용자 또는 그룹.
roleRef: RoleBinding이 적용되는 역할
RoleBinding을 사용하여 역할을 할당하면 사용자 또는 그룹에 Kubernetes 클러스터 내에서 작업을 수행할 수 있는 권한이 부여됩니다. 이를 통해 개별 사용자 또는 그룹에 권한을 할당하고 보안을 강화할 수 있습니다.

예를 들어 개발자-사용자 주체가 개발자 역할 역할에 액세스할 수 있도록 하는 RoleBinding을 만들 수 있습니다. 그 아래에는 네임스페이스 “default”의 역할 “developer-role”에 대한 사용자 “developer”가 있습니다. -user에게 권한을 부여하는 RoleBinding의 예입니다.

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: developer-rolebinding
  namespace: default
subjects:
- kind: User
  name: developer-user
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: developer-role
  apiGroup: rbac.authorization.k8s.io

위의 RoleBinding YAML 파일에서 “developer-role” 역할이 참조되고 사용자 “developer-user”가 이 역할의 주체로 지정됩니다. 이 RoleBinding은 “기본” 네임스페이스에서만 유효합니다.

개발자 사용자는 이제 기본 네임스페이스의 개발자 역할에 정의된 리소스(포드, 서비스, 배포, 구성 맵, 비밀, 네임스페이스, 영구 볼륨 클레임)를 가져오고, 나열하고, 관찰하고, 생성하고, 업데이트하고, 액세스할 수 있으며 패치 및 삭제 권한이 있습니다.