안녕하세요:)
베스핀글로벌 D&A실 김예지 님이 작성해 주신 ‘Amazon EKS 다중 IAM 사용자 구성 가이드’에 대해 알아보겠습니다.
[구성 가이드]
Bastion Host 에서 EKS 접근이 가능한 기존 사용자 확인 및 새로운 IAM 사용자 추가
// (1) 클러스터 내의 사용자 확인
eksctl get iamidentitymapping --cluster 클러스터이름
// (2) aws-auth 내에 사용자 추가
// 네임스페이스가 kube-system 에서 , Configmap 의 aws-auth 를 수정하기
kubectl edit configmap aws-auth -n kube-system
// (3) 사용자 추가 - mapRoles 하단에 mapUsers 를 삽입
mapRoles: |
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws:iam::{account_id}:role/{workernode-role}
username: system:node:{{EC2PrivateDNSName}}
// --------------------------------- 추가 -----------------------------------
mapUsers: |
- userarn: arn:aws:iam::{account_id}:user/{user_name1}
username: user_name1
groups:
- system:mastsers
- userarn: arn:aws:iam::{account_id}:user/{user_name2}
username: user_name2
groups:
- system:masters
// -------------------------------------------------------------------------
- userarn: arn:aws:iam::{account_id}:user/{dev_user1}
username: dev_user1
groups:
- dev
- userarn: arn:aws:iam::{account_id}:user/{dev_user2}
username: dev_user2
groups:
- dev
AWS 콘솔에서 추가한 사용자에 대한 IAM 정책 부여 (최소 권한의 원칙) – EKSuserpolicy
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"eks:DescribeCluster"
],
"Resource": "arn:aws:eks:<region_name>:<account_id>:cluster/<eks_cluster_name>",
"Effect": "Allow"
}
}
}
추가 사용자로 aws configure 등록 및 확인
// aws configre 등록
aws configure
// aws credential 확인
aws sts get-caller-identity
[ 추가사항 ] RBAC 할당 – 특정 네임스페이스로 제한 시
Role 생성 – 특정할 네임스페이스 지정
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: 네임스페이스명
name: 롤이름
rules:
- apiGroups:
- "*"
resources:
- "*"
verbs:
- "*"
Rolebinding 생성
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: nginx-rolebinding
namespace: 네임스페이스명
subjects:
- kind: Group
name: 그룹명/사용자 지정
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: role 이름
apiGroup: rbac.authorization.k8s.io
다시 aws-auth 수정
// aws-auth 파일 접속
kubectl edit configmap aws-auth -n kube-system
// 파일 내에서 그룹 수정
mapUsers: |
- userarn: arn:aws:iam::계정ID:user/사용자명
username: 사용자명
groups:
- 그룹명
aws credential 파일 수정
// aws credential 파일 수정
vi ~/.aws/credentials
// 유저 변경
export AWS_PROFILE=Profile_Name
// aws configure 확인
aws sts get-caller-identity
감사합니다 🙂
Written by 김 예지 / Yeji Kim
Cloud Engineer