# v1 ServiceAccount
################################################
##
# 개발자용 서비스 어카운트(SA) 작성
#
apiVersion: v1
kind: ServiceAccount
metadata:
name: developer
namespace: prod
---
################################################
##
# 개발자SA와 클러스터롤 바인딩
#
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: developer-crb
namespace: prod
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view # 운영에서는 참조만 가능
subjects:
- kind: ServiceAccount
namespace: prod
name: developer
##---
##
# 개발자 롤 작성
# 클러스토 롤에 포함되므로 필수는 아님
#
#apiVersion: rbac.authorization.k8s.io/v1
#kind: Role
#metadata:
# name: developer
# namespace: prod
#rules:
# pods 권한, Core API 지정 apiVersion: v1
#- apiGroups: [""]
# resources: ["pods","pods/log","services"]
# verbs: ["get", "watch", "list"]
# deployment 권한 extention/appls 지정
#- apiGroups: ["extensions", "apps"]
# resources: ["deployments"]
# verbs: ["get", "watch", "list"]
---
##
# 개발자 SA와 developer롤을 바인딩
# (클러스터 롤에 포함되므로 필수는 아님)
#
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: developer-rb
namespace: prod
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: developer
subjects:
- kind: ServiceAccount
namespace: prod ## prod 네임스페이서에서의 developer에게 롤 바인딩
name: developer
- kind: ServiceAccount
namespace: test ## test 네임스페이스에서의 developer에게 롤 바인딩
name: developer
##
# 운영 서비스를 담당하는 서비스 어카운트(SA) 작성
#
apiVersion: v1
kind: ServiceAccount
metadata:
name: sysop
namespace: prod
---
##
# SA와 클러스터롤 바인딩
#
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: sysop-crb
namespace: prod
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: admin
subjects:
- kind: ServiceAccount
namespace: prod
name: sysop
##---
##
# 운영 서비스 담당 롤 작성
# 클러스터 롤에 포함되므로 필수는 아님
#
#apiVersion: rbac.authorization.k8s.io/v1
#kind: Role
#metadata:
# name: sysop
# namespace: prod
#rules:
# 파드 접근 권한, Core API 지정 apiVersion: v1
#- apiGroups: [""]
# resources: ["pods","pods/log","services"]
# verbs: ["get", "watch", "list"]
# deployment 접근 권한, extention/appls 지정
#- apiGroups: ["extensions", "apps"]
# resources: ["deployments"]
# verbs: ["get", "watch", "list"]
---
##
# 운영 서비스 담당 SA와 sysop 롤 바인딩
# (클러스터 롤에 포함되므로 필수는 아님)
#
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: sysop-rb
namespace: prod
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: sysop
subjects:
- kind: ServiceAccount
namespace: prod
name: sysop