📂
Amazon EKS
  • Amazon EKS
  • 워크스페이스 생성하기
    • Cloud9 IDE 환경 구성
    • IAM 역할 생성
    • SSH & CMK Key 생성하기
  • EKS 클러스터 구축
    • EKS 클러스터 만들기
  • 쿠버네티스 대시보드 배포
    • Kubernetes 공식 대시보드 배포
  • 마이크로서비스 배포
    • 예제 애플리케이션 배포
    • 서비스 스케일(Scaling)
    • 애플리케이션 정리하기
  • 애플리케이션 배포 - Helm
    • HELM 설치
    • Helm으로 Nginx 배포
    • Helm을 사용하여 마이크로서비스 배포
    • 정리하기
  • 리소스 관리 - POD 배치
    • NodeSelector
    • Affinity and Anti-affinity
    • 더 실용적인 사용 사례
    • 정리하기
  • 리소스 관리 - Health Checks
    • Liveness 프로브 구성
    • Readiness 프로브 구성
    • 정리하기
  • 리소스 관리 - AutoScaling
    • HPA 구성하기
    • CA 구성하기
    • 정리하기
  • 네트워킹 - 서비스 노출
    • 서비스와 애플리케이션 연결
    • 서비스에 접근하기
    • 서비스 노출
    • Ingress
    • Ingress Controller
    • 정리하기
  • 네트워크 - Calico 정책
    • Calico 설치하기
    • Stars Policy Demo
    • 정리하기
  • Updating 권한설정 - RBAC
    • 테스트 POD 설치
    • 사용자 생성 및 맵핑
    • 역할과 바인딩
    • 정리하기
  • Updating 권한설정 - IAM 그룹
    • IAM Role, Group & User 생성하기
    • RBAC 설정하기
    • EKS 엑세스 테스트
    • 정리하기
  • Updating 권한설정 - Service account
    • OIDC 자격 증명 공급자 생성하기
    • IAM 역할 생성 및 지정
    • 샘플 POD 배포
    • 정리하기
  • Updating - 네트워크 - POD Security Group
    • SG 생성하기
    • RDS 생성하기
    • CNI 구성하기
    • SG 정책
    • Pod 배포하기
    • 정리하기
  • Updating - 모니터링 - Prometheus and Grafana
    • Prometheus 배포하기
    • Grafana 배포하기
    • 정리하기(Optional)
  • Updating 모니터링 - X-Ray
    • X-Ray DaemonSet 배포하기
    • 샘플 마이크로서비스 배포
    • X-Ray console 확인
    • 정리하기(Optional)
  • Updating 모니터링 - Container Insights
    • 사전 준비
    • Container Insights 구성하기
    • 부하 테스트
    • Container Insights 확인하기
    • 정리하기(Optional)
  • Updating CD - Gitops with Flux
    • 사전 준비
    • Codepipeline
    • EKS에 배포
    • 정리하기
  • Updating Argo Rollouts
  • Updating Service Mesh - AWS App Mesh
    • Fargate 및 OBSERVABILITY 구성
    • Product Catalog App 배포
    • APP MESH 설치
    • Porting to APP MESH
    • Virtual Gateway 구성
    • Canary
    • Observability
  • Updating 버전 업그레이드 - EKS Cluster
    • Upgrade EKS control Plane
    • Upgrade EKS CORE ADD-ONs
    • Upgrade Managed Node Group
Powered by GitBook
On this page
  • 1. IAM 사용자 생성하기
  • 2. IAM 사용자를 쿠버테니스에 맵핑하기
  • 3. 새로운 사용자 테스트

Was this helpful?

  1. Updating 권한설정 - RBAC

사용자 생성 및 맵핑

Previous테스트 POD 설치Next역할과 바인딩

Last updated 3 years ago

Was this helpful?

1. IAM 사용자 생성하기

간단히 시험하기 위해 이 장에서는 사용자간에 쉽게 전환 할 수 있도록 자격 증명을 파일에 저장 합니다. Production 혹은 특권 접근을 가진 자격 증명으로 이 작업을 수행하지 마십시오. 파일 시스템에 자격 증명을 저장하는 것은 보안 모범 사례가 아닙니다.

Cloud9 터미널 내에서 rbac-user 라는 새 사용자를 만들고 자격 증명을 생성/저장 합니다.

aws iam create-user --user-name rbac-user
aws iam create-access-key --user-name rbac-user | tee /tmp/create_output.json

위의 명령을 실행하면 다음과 유사한 응답을 가져오게 됩니다.

클러스터를 생성한 관리자와 이 새로운 rbac-user 간에 쉽게 전환 할 수 있도록 다음 명령을 실행하여 스크립트를 만듭니다 스크립트가 공급될때 활성 사용자를 rbac-user로 설정 합니다 :

cat << EoF > rbacuser_creds.sh
export AWS_SECRET_ACCESS_KEY=$(jq -r .AccessKey.SecretAccessKey /tmp/create_output.json)
export AWS_ACCESS_KEY_ID=$(jq -r .AccessKey.AccessKeyId /tmp/create_output.json)
EoF

2. IAM 사용자를 쿠버테니스에 맵핑하기

rbac-user라는 쿠버네티스 사용자를 정의하고 IAM 사용자로 맵핑 할 것입니다. 다음을 실행하여 존재하는 ConfigMap을 가져오고 aws-auth.yaml 이라는 파일에 저장 하십시오:

kubectl get configmap -n kube-system aws-auth -o yaml > aws-auth.yaml

다음은 rbac-user 매핑을 기존 ConfigMap에 추가 합니다.

cat << EoF >> aws-auth.yaml
data:
  mapUsers: |
    - userarn: arn:aws:iam::${ACCOUNT_ID}:user/rbac-user
      username: rbac-user
EoF

일부 값은 파일이 생성 될 때 동적으로 채워질 수 있습니다. 모든 항목이 채워지고 올바르게 생성되었는지 확인 하려면 다음을 실행 하십시오:

cat aws-auth.yaml

그리고 출력은 rolearn과 userarn이 채워지고 비슷한 것을 반영 해야 합니다.

그런 다음 ConfigMap을 적용하여 시스템에 이 매핑을 적용 합니다.

kubectl apply -f aws-auth.yaml

3. 새로운 사용자 테스트

지금까지 클러스터 운영하는 관리자로 클러스터에 액세스 했습니다. 이제 새로 생성 된 rbac-user로 클러스터에 액세스 할 때 어떤 일이 발생 하는지 살펴 보겠습니다.

다음 명령을 실행하여 rbac-user의 AWS IAM 사용자 환경 변수를 제공합니다.

. rbacuser_creds.sh

위의 명령을 실행하면 기본 관리자 또는 역할을 덮어쓰는 AWS 환경 변수를 설정 합니다. 기본 사용자 설정을 해제했는지 확인하려면 다음 명령을 실행 하십시오:

aws sts get-caller-identity

이제는 rbac-user로 API 호출을 하고 아래와 유사한 출력이 발생하는지 확인 합니다.

이제 rbac-user의 컨텍스트에서 호출 하고 있으므로 모든 파드정도를 얻을 수 있습니다.

kubectl get pods -n rbac-test

다음과 유사한 응답을 받아야 합니다.

우리는 이미 rbac-user를 만들었는데 왜 이런 오류가 발생 했을까요?

사용자를 만드는 것 만으로는 해당 사용자가 클러스터의 리소스에 액세스 할 수 없습니다. 이를 달성하기 위해 역할을 정의한 다음 사용자를 해당 역할에 바인딩 해야 합니다.