Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- scraping
- deploy
- CI
- ECR
- docker
- Jenkins
- CI/CD
- gitlab cd
- eks
- 웹 해킹
- 크롤링
- gitlab ci
- Resource
- CD
- opentelemetry
- 스크레이핑
- 모의해킹
- 웹 취약점
- sonarqube
- Prometheus
- helm
- Grafana
- Crawling
- Service Mesh
- Kubernetes
- Monitoring
- GitLab
- argocd
- DevOps
- linkerd
Archives
- Today
- Total
ㅡ.ㅡ
[Security] EKS RBAC 본문
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 |