이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.
IAM 문제 해결
이 주제에서는 IAM과 함께 Amazon EKS를 사용하는 동안 발생할 수 있는 몇 가지 일반적 오류와 이를 해결하는 방법을 다룹니다.
AccessDeniedException
AWS API 작업을 호출할 때 AccessDeniedException
이 발생하면 사용하고 있는 IAM 보안 주체 자격 증명에 해당 호출을 수행할 필수 권한이 없는 것입니다.
An error occurred (AccessDeniedException) when calling the DescribeCluster operation:
User: arn:aws:iam::111122223333
:user/user_name
is not authorized to perform:
eks:DescribeCluster on resource: arn:aws:eks:region
:111122223333
:cluster/my-cluster
이전 예제 메시지에서 사용자는 Amazon EKS DescribeCluster
API 작업을 호출할 권한이 없습니다. IAM 보안 주체에게 Amazon EKS 관리 권한을 부여하려면 Amazon EKS 자격 증명 기반 정책 예제 섹션을 참조하세요.
IAM에 자세한 내용은 IAM 사용 설명서에서 정책을 사용하여 액세스 제어를 참조하세요.
컴퓨팅 탭에서 노드 또는 리소스 탭에서 아무것도 볼 수 없으며 AWS Management Console에서 오류가 발생합니다.
Your current user or role does not
have access to Kubernetes objects on this EKS cluster
라는 콘솔 오류 메시지가 나타날 수 있습니다. AWS Management Console를 함께 사용하는 IAM 보안 주체 사용자에게 필요한 권한이 있는지 확인하세요. 자세한 내용은 필수 권한 단원을 참조하십시오.
aws-auth ConfigMap
은 클러스터에 대한 액세스 권한을 부여하지 않습니다.
AWS IAM AuthenticatorConfigMap
에 사용된 역할 ARN의 경로를 허용하지 않습니다. 따라서 rolearn
를 지정하기 전에 경로를 제거하십시오. 예를 들면 arn:aws:iam::
를 111122223333
:role/team
/developers
/eks-admin
arn:aws:iam::
로 변경합니다.111122223333
:role/eks-admin
iam:PassRole을 수행하도록 인증되지 않음
iam:PassRole
작업을 수행할 수 있는 권한이 없다는 오류가 수신되면 Amazon EKS에 역할을 전달할 수 있도록 정책을 업데이트해야 합니다.
일부 AWS 서비스에서는 새 서비스 역할 또는 서비스 연결 역할을 생성하는 대신 해당 서비스에 기존 역할을 전달할 수 있습니다. 이렇게 하려면 사용자가 서비스에 역할을 전달할 수 있는 권한을 가지고 있어야 합니다.
다음 예제 오류는 marymajor
라는 IAM 사용자가 콘솔을 사용하여 Amazon EKS에서 작업을 수행하려고 하는 경우에 발생합니다. 하지만 작업을 수행하려면 서비스 역할이 부여한 권한이 서비스에 있어야 합니다. Mary는 서비스에 역할을 전달할 수 있는 권한을 가지고 있지 않습니다.
User: arn:aws:iam::123456789012:user/
marymajor
is not authorized to perform: iam:PassRole
이 경우, Mary가 iam:PassRole
작업을 수행할 수 있도록 Mary의 정책을 업데이트해야 합니다.
도움이 필요한 경우 AWS 관리자에게 문의하십시오. 관리자는 로그인 자격 증명을 제공한 사람입니다.
내 AWS 계정 외부의 사용자가 내 Amazon EKS 리소스에 액세스하도록 허용하려고 합니다.
다른 계정의 사용자 또는 조직 외부의 사람이 리소스에 액세스할 때 사용할 수 있는 역할을 생성할 수 있습니다. 역할을 수임할 신뢰할 수 있는 사람을 지정할 수 있습니다. 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 지원하는 서비스의 경우 이러한 정책을 사용하여 다른 사람에게 리소스에 대한 액세스 권한을 부여할 수 있습니다.
자세히 알아보려면 다음을 참조하세요.
-
Amazon EKS에서 이러한 기능을 지원하는지 알아보려면 Amazon EKS가 IAM과 작동하는 방식 섹션을 참조하세요.
-
소유하고 있는 AWS 계정의 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 IAM 사용 설명서의 자신이 소유한 다른 AWS 계정의 IAM 사용자에 대한 액세스 권한 제공을 참조하세요.
-
리소스에 대한 액세스 권한을 서드 파티 AWS 계정에게 제공하는 방법을 알아보려면 IAM 사용 설명서의 서드 파티가 소유한 AWS 계정에 대한 액세스 제공을 참조하세요.
-
ID 페더레이션을 통해 액세스 권한을 제공하는 방법을 알아보려면 IAM 사용 설명서의 외부에서 인증된 사용자에게 액세스 권한 제공(ID 페더레이션)을 참조하세요.
-
크로스 계정 액세스에 대한 역할과 리소스 기반 정책 사용의 차이점을 알아보려면 IAM 사용 설명서의 IAM의 크로스 계정 리소스 액세스를 참조하세요.
포드 컨테이너는 다음과 같은 오류가 발생합니다. An error occurred (SignatureDoesNotMatch) when calling
the GetCallerIdentity operation: Credential should be scoped to a valid
region
애플리케이션이 명시적으로 AWS STS 글로벌 엔드포인트(https://sts.amazonaws
)를 요청하고 Kubernetes 서비스 계정이 리전별 엔드포인트를 사용하도록 구성된 경우 컨테이너에 이 오류가 표시됩니다. 다음 옵션 중 하나를 사용하여 문제를 해결할 수 있습니다.
-
애플리케이션 코드를 업데이트하여 AWS STS 전역 엔드포인트에 대한 명시적 호출을 제거합니다.
-
애플리케이션 코드를 업데이트하여
https://sts.us-west-2.amazonaws.com
와 같은 리전별 엔드포인트를 명시적으로 호출합니다. 애플리케이션에는 해당 AWS 리전에서 서비스 장애가 발생한 경우 다른 AWS 리전을 선택하기 위해 기본 제공되는 중복성이 있어야 합니다. 자세한 내용은 IAM 사용 설명서의 AWS 리전에서 AWS STS 관리를 참조하세요. -
전역 엔드포인트를 사용하도록 서비스 계정을 구성합니다.
1.22
이하인 모든 버전은 기본적으로 글로벌 엔드포인트를 사용했지만 버전1.22
이상의 클러스터는 기본적으로 리전별 엔드포인트를 사용합니다. 자세한 내용은 서비스 계정의 AWS Security Token Service 엔드포인트 구성 단원을 참조하십시오.