📂
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 Role 생성하기
  • 2. IAM Group 생성하기
  • 3. IAM User 생성하기

Was this helpful?

  1. Updating 권한설정 - IAM 그룹

IAM Role, Group & User 생성하기

1. IAM Role 생성하기

실습을 위해 3개의 역할을 만듭니다.

  • k8sAdmin 역할은 EKS 클러스터에서 admin 권한을 가집니다.

  • k8sDev 역할은 EKS 클러스터에서 developers 네임스페이스에 접근할 권한을 가집니다.

  • k8sInteg 역할은 EKS 클러스터에서 integration 네임스페이스에 접근할 권한을 가집니다.

역할을 생성합니다:

POLICY=$(echo -n '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::'; echo -n "$ACCOUNT_ID"; echo -n ':root"},"Action":"sts:AssumeRole","Condition":{}}]}')

echo ACCOUNT_ID=$ACCOUNT_ID
echo POLICY=$POLICY

aws iam create-role \
  --role-name k8sAdmin \
  --description "Kubernetes administrator role (for AWS IAM Authenticator for Kubernetes)." \
  --assume-role-policy-document "$POLICY" \
  --output text \
  --query 'Role.Arn'

aws iam create-role \
  --role-name k8sDev \
  --description "Kubernetes developer role (for AWS IAM Authenticator for Kubernetes)." \
  --assume-role-policy-document "$POLICY" \
  --output text \
  --query 'Role.Arn'
  
aws iam create-role \
  --role-name k8sInteg \
  --description "Kubernetes role for integration namespace in quick cluster." \
  --assume-role-policy-document "$POLICY" \
  --output text \
  --query 'Role.Arn'
  

위 역할은 EKS 클러스터 내에서 인증 하는 것으로만 사용 되므로 AWS 권한이 필요하지 않습니다. 우리는 일부 IAM 그룹이 EKS 클러스터에 액세스 할 수 있는 역할을 지정 할 것입니다.

2. IAM Group 생성하기

특정 IAM 그룹에 추가 될 IAM 사용자는 쿠버네티스 클러스터에서 다른 권한을 가지게 합니다.

실습을 위해 3개의 그룹을 정의 합니다.

  • k8sAdmin - 이 그룹의 사용자는 쿠버네티스 클러스터에 대한 관리자 권한을 갖습니다.

  • k8sDev - 이 그룹의 사용자는 클러스터의 개발 네임스페이스 에서만 전체 액세스 권한을 갖습니다.

  • k8sInteg - 이 그룹의 사용자는 통합 네임스페이스에 액세스 할 수 있습니다.

실제로 k8sDev 및 k8sInteg 그룹의 사용자는 연결된 쿠버네티스 역할에 대한 쿠버네티스 RBAC 액세스를 정의한 네임스페이스에만 액세스 할 수 있습니다. 먼저 그룹을 생성 해 보겠습니다.

먼저 k8sAdmin IAM Group을 생성합니다.

aws iam create-group --group-name k8sAdmin

이 그룹의 사용자가 k8sAdmin 역할을 맡을 수 있도록 그룹에 정책을 추가 해 봅시다.

ADMIN_GROUP_POLICY=$(echo -n '{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowAssumeOrganizationAccountRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::'; echo -n "$ACCOUNT_ID"; echo -n ':role/k8sAdmin"
    }
  ]
}')
echo ADMIN_GROUP_POLICY=$ADMIN_GROUP_POLICY

aws iam put-group-policy \
--group-name k8sAdmin \
--policy-name k8sAdmin-policy \
--policy-document "$ADMIN_GROUP_POLICY"

먼저 k8sDev IAM Group을 생성합니다.

aws iam create-group --group-name k8sDev

이 그룹의 사용자가 k8sDev 역할을 맡을 수 있도록 그룹에 정책을 추가 해 봅시다.

DEV_GROUP_POLICY=$(echo -n '{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowAssumeOrganizationAccountRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::'; echo -n "$ACCOUNT_ID"; echo -n ':role/k8sDev"
    }
  ]
}')
echo DEV_GROUP_POLICY=$DEV_GROUP_POLICY

aws iam put-group-policy \
--group-name k8sDev \
--policy-name k8sDev-policy \
--policy-document "$DEV_GROUP_POLICY"

먼저 k8sInteg IAM Group을 생성합니다.

aws iam create-group --group-name k8sInteg

이 그룹의 사용자가 k8sInteg 역할을 맡도록 허용하는 정책을 그룹에 추가 하겠습니다.

INTEG_GROUP_POLICY=$(echo -n '{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowAssumeOrganizationAccountRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::'; echo -n "$ACCOUNT_ID"; echo -n ':role/k8sInteg"
    }
  ]
}')
echo INTEG_GROUP_POLICY=$INTEG_GROUP_POLICY

aws iam put-group-policy \
--group-name k8sInteg \
--policy-name k8sInteg-policy \
--policy-document "$INTEG_GROUP_POLICY"

이제 3개의 IAM Group이 있어야 합니다.

aws iam list-groups

3. IAM User 생성하기

시나리오를 테스트하기 위해 생성한 각 그룹별로 한 명씩 총 3명의 사용자를 생성 합니다.

aws iam create-user --user-name PaulAdmin
aws iam create-user --user-name JeanDev
aws iam create-user --user-name PierreInteg

사용자를 연결된 그룹에 추가 합니다.

aws iam add-user-to-group --group-name k8sAdmin --user-name PaulAdmin
aws iam add-user-to-group --group-name k8sDev --user-name JeanDev
aws iam add-user-to-group --group-name k8sInteg --user-name PierreInteg

사용자가 그룹에 올바르게 추가 되었는지 확인 합니다.

aws iam get-group --group-name k8sAdmin
aws iam get-group --group-name k8sDev
aws iam get-group --group-name k8sInteg

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

가짜 사용자를 위한 액세스 키를 검색 합니다:

aws iam create-access-key --user-name PaulAdmin | tee /tmp/PaulAdmin.json
aws iam create-access-key --user-name JeanDev | tee /tmp/JeanDev.json
aws iam create-access-key --user-name PierreInteg | tee /tmp/PierreInteg.json

다시 정리해 보면:

  • Pauladmin은 k8sadmin 그룹에 있으며 k8sadmin 역할을 맡습니다.

  • Jeandev는 k8sdev 그룹에 있으며 IAM 역할 k8sdev를 맡습니다.

  • Pierreinteg는 k8sinteg 그룹에 있으며 IAM 역할 k8sinteg를 맡습니다.

PreviousUpdating 권한설정 - IAM 그룹NextRBAC 설정하기

Last updated 1 year ago

Was this helpful?

이 예제 에서는 assume-role-policy는 루트 계정이 역할을 맡을 수 있도록 합니다. 우리는 특정 그룹이 그 역할을 맡을 수 있도록 할 것 입니다. 자세한 정보는 를 확인하십시오.

공식 문서