saml2aws로 eks 접근시 트러블슈팅
saml2aws 및 EKS Kubeconfig 갱신 문제 해결
saml2aws를 사용하여 AWS에 인증하고 aws eks update-kubeconfig 명령으로 EKS 클러스터 설정을 업데이트하는 과정에서 발생한 두 가지 주요 오류와 해결 과정을 기록했음.
🎯 목표
SAML 인증(saml2aws)을 통해 AWS 임시 자격 증명을 얻고, 이를 사용해 특정 EKS 클러스터의 kubeconfig 파일을 갱신하는 것이었음.
Problem 1: saml2aws 로그인 시 세션 기간 오류
saml2aws를 설정하고 로그인을 시도하는 과정에서 첫 번째 오류가 발생함.
실행한 명령:
Bash
# saml2aws 설정 (세션 기간을 8시간(28800초)으로 설정함)
$ saml2aws configure --profile=default --session-duration=28800
# 로그인 시도함
$ saml2aws login --force
발생한 오류:
Validating SAML assertion...
...
Error retrieving STS credentials using SAML: ValidationException: The requested DurationSeconds: 28800 exceeds the MaxSessionDuration set for this role: 3600
원인 분석:
오류 메시지는 명확했음. 요청한 세션 기간(28800초, 즉 8시간)이 이 SAML 역할에 설정된 최대 세션 기간(3600초, 즉 1시간)을 초과했음.
해결 방법:
역할에 허용된 최대 세션 기간(3600)에 맞춰 --session-duration 옵션을 명시하여 다시 로그인함.
Bash
$ saml2aws login --force --session-duration=3600
Authenticating as [USER_EMAIL]@[EXAMPLE_DOMAIN]...
? Please choose the role: [AWS_ACCOUNT_ID]:[ROLE_NAME]
...
Logged in as: arn:aws:sts::[AWS_ACCOUNT_ID]:assumed-role/[ROLE_NAME]/[USER_EMAIL]@[EXAMPLE_DOMAIN]
...
Your new access key pair has been stored in the AWS configuration
Problem 2: aws eks update-kubeconfig 실행 시 클러스터 찾기 오류
saml2aws 로그인이 성공한 후, AWS CLI v2를 설치하고 EKS kubeconfig 갱신을 시도했으나 두 번째 오류가 발생함.
실행한 명령:
Bash
# AWS CLI v2 설치 (macOS)
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"$ sudo installer -pkg AWSCLIV2.pkg -target /
$ aws --version
aws-cli/2.13.X ... # 버전 확인
# Kubeconfig 갱신 시도함
$ aws eks update-kubeconfig --name my-eks-cluster
발생한 오류:
An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: my-eks-cluster.
원인 분석:
ResourceNotFoundException은 대상 리소스를 찾을 수 없을 때 발생함. aws eks 명령어는 기본적으로 AWS CLI 설정에 지정된 기본 리전(region) 또는 환경 변수를 참조함. 대상 EKS 클러스터가 기본 설정된 리전이 아닌 다른 리전에 존재할 경우, 이 오류가 발생할 수 있음.
해결 방법:
--region 플래그를 사용하여 클러스터가 실제로 위치한 리전을 명시적으로 지정함.
Bash
$ aws eks update-kubeconfig --name my-eks-cluster --region ap-northeast-2
Updated context arn:aws:eks:ap-northeast-2:[AWS_ACCOUNT_ID]:cluster/my-eks-cluster in [USER_HOME]/.kube/config
📝 요약 및 교훈
-
saml2aws세션 기간:saml2aws login시ValidationException이 발생하면, 요청하는 세션 기간(--session-duration)이 **IAM 역할에 설정된MaxSessionDuration**을 초과하지 않는지 확인해야 함. -
AWS CLI 리전:
ResourceNotFoundException(EKS, EC2, S3 등)이 발생하면, 가장 먼저 명령어가 올바른 리전(region)을 대상으로 실행되고 있는지 확인해야 함.--region플래그를 사용하거나AWS_REGION환경 변수를 설정하여 해결할 수 있음.
Member discussion