ㅡ.ㅡ

[Security] EKS RBAC 본문

Security

[Security] EKS RBAC

ekwkqk12 2022. 5. 20. 00:06

EKS는 클러스터 생성자의 IAM에 API Server를 통해 자원에 접근 할 수 있는 system:master 권한(Role)을 자동으로 부여합니다.(실제 계정과 어떻게 연결되어 있는지는 안보이네요.... 찾으면 추가해놓겠슴다)

타 Iam User/Role로 API Server를 통해 자원에 접근 시 정상적인 인증 단계(kube config)가 통과되어도 리소스에 접근할 권한이 없어 에러가 발생합니다.

Kubernetes 공식 문서를 확인해보면 최상위 권한인 ClusterRole(cluster-admin)을 통해 클러스터와 모든 네임스페이스의 리소스에 접근할 수 잇는걸 확인할 수 있습니다.

Role <> RoleBinding : Role이 생성된 네임스페이스 내 리소스만 접근 가능
ClusterRole <> ClusterRolebinding : 클러스터 내 모든 네임스페이스 및 리소스 접근 가능
리소스에 접근할 수 있는 권한을 User, Group, SA와 연결하여 사용

EKS 내 리소스에 접근 허용할 Role 및 Rolebinding 생성(app1 네임스페이스의 모든 리소스 접근 허용)

kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: app1-ns-role
  namespace: app1
rules:
  - apiGroups: ["*"]
    # 접근 리소스(pods, servcies 등)
    resources: ["*"]
    # 리소스에 대한 행위(get, create 등)
    verbs: ["*"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: test-rolebinding
  namespace: app1
subjects:
- kind: Group
  name: app1-ns-role
roleRef:
  kind: Role
  name: app1-ns-role
  apiGroup: rbac.authorization.k8s.io

aws-auth configmap을 수정하여 권한 iam user/role에 대한 리소스 접근 권한 추가
모든 리소스에 접근하려면 groups에 system:masters를 등록

kubectl edit cm/aws-auth -n kube-system

apiVersion: v1
data:
  mapRoles: |
    - groups:
      - system:bootstrappers
      - system:nodes
      rolearn: arn:aws:iam::xxxxxxxxxx:role/xxxxxxxxx-nodegroup-w-NodeInstanceRole-1LUJ7US8NGV2N
      username: system:node:{{EC2PrivateDNSName}}
  # RoleBinding에 명시한 subjects kind를 통해 iam user/role과 매핑
  mapUsers: |
    - userarn: arn:aws:iam::xxxxxxxxxxx:user/xxxxxxxx
      username: xxxxxxxx
      groups:
        - app1-ns-role
kind: ConfigMap
metadata:
  creationTimestamp: "2022-05-14T02:55:48Z"
  name: aws-auth
  namespace: kube-system
  resourceVersion: "1019541"
  uid: xxxxxxxxxxxxxxxxxxxxxxx

'Security' 카테고리의 다른 글

[Container] PSS(Pod Security Standards)  (0) 2022.02.27
[Server] 서버 점검  (0) 2022.02.27
[Container] Trivy Docker image Scan  (0) 2021.10.28
[Code] Sonarqube Code Analysis  (0) 2021.10.23
[Code] Sonarqube  (0) 2021.10.23