AWS 관리 콘솔을 사용하여 IAM 역할을 전환할 때 발생하는 문제를 해결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2022년 4월 5일

AWS 관리 콘솔을 사용하여 AWS Identity and Access Management(IAM) 역할을 전환하려고 했는데 다음과 유사한 오류가 발생했습니다.

"하나 이상의 필드에 잘못된 정보가 있습니다. 정보를 확인하거나 관리자에게 문의하세요."

간략한 설명

이 오류는 다음과 같은 이유로 발생할 수 있습니다.

  • 잘못된 AssumeRole 작업 권한
  • 잘못된 IAM 신뢰 정책
  • 정책에서 명시적 거부
  • 잘못된 계정 ID 또는 역할 이름
  • 역할 전환을 위해 외부 ID 필요
  • 잘못된 신뢰 정책 조건

해결 방법

다음 지침에 따라 시나리오에 대한 IAM 역할을 전환하는 IAM 정책 구성을 확인합니다.

누락되거나 잘못된 AssumeRole 작업 권한

IAM 역할로 전환하려면 IAM 엔터티에 AssumeRole 작업 권한이 있어야 합니다. IAM 엔터티에는 다음과 유사한 AssumeRole 작업 권한이 있는 정책이 있어야 합니다.

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"  
}

리소스가 전환하려는 IAM 역할의 Amazon 리소스 이름(ARN)과 일치하는지 확인합니다. 자세한 내용은 사용자에게 역할 전환 권한 부여 단원을 참조하세요.

IAM 역할 신뢰 정책이 IAM 사용자의 계정 ID를 신뢰하지 않음

IAM 역할 신뢰 정책은 역할을 수임할 수 있는 보안 주체를 정의합니다. 신뢰 정책이 IAM 사용자의 계정 ID를 신뢰할 수 있는 보안 주체 엔터티로 나열하는지 확인합니다. 예를 들어 계정 ID가 111222333444인 Bob이라는 IAM 사용자가 계정 ID 444555666777의 Alice라는 IAM 역할로 전환하려고 합니다. 계정 ID 111222333444는 신뢰할 수 있는 계정이고 계정 ID 444555666777은 신뢰하는 계정입니다. IAM 역할 Alice에는 다음과 유사한 Bob을 신뢰하는 신뢰 정책이 있습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": “<111222333444>
            },
            "Condition": {}
        }
    ]
}

참고: 최소 권한의 원칙을 따르고 사용자에게 필요한 역할에 대해서만 전체 ARN을 지정하는 것이 가장 좋습니다.

자세한 내용은 역할 신뢰 정책 수정(콘솔)을 참조하세요.

서비스 제어 정책(SCP) 또는 IAM 정책에서 명시적 거부

AWS 계정이 AWS Organizations의 일부인 경우 관리 계정에 SCP가 있을 수 있습니다. AssumeRole 작업에 대한 SCP에 명시적 거부가 없는지 확인합니다. AWS 리전을 기반으로 API 작업을 거부하는 SCP가 있는지 확인합니다. AWS Security Token Service(AWS STS)는 글로벌 서비스 제외 목록에 포함되어야 하는 글로벌 서비스입니다. IAM 정책에서 "deny" 문이 "allow" 문보다 우선하기 때문에 생기는 명시적 거부가 없는지 확인합니다.

자세한 내용은 요청된 AWS 리전을 기반으로 AWS에 대한 액세스 거부 단원을 참조하세요.

AWS 계정 ID 및 IAM 역할 이름 확인

역할 전환 페이지에서 계정 ID와 IAM 역할 이름이 올바른지 확인합니다. 계정 ID는 12자리 식별자이며 IAM 역할 이름은 수임하려는 역할의 이름입니다.

자세한 내용은 콘솔에서 역할 전환에 대해 알아야 할 사항을 참조하세요.

IAM 역할로 전환하기 위해 외부 ID 필요

관리자는 타사 ID를 사용하여 타사에 AWS 리소스에 대한 액세스 권한을 부여할 수 있습니다. AWS 관리 콘솔의 IAM 역할을 ExternalId 조건 키 값이 필요한 역할로는 전환할 수 없습니다. ExternalId 키를 지원하는 AssumeRole 작업을 호출해야만 IAM 역할로 전환할 수 있습니다.

자세한 내용은 AWS 리소스에 대한 액세스 권한을 타사에 부여할 때 외부 ID를 사용하는 방법 단원을 참조하세요.

IAM 역할 신뢰 정책의 유효 조건

IAM 역할의 신뢰 정책에 지정된 모든 조건을 충족하는지 확인합니다. 조건에 만료 날짜 또는 외부 ID를 지정하거나 요청이 특정 IP 주소에서만 이루어져야 합니다. 다음 예시 정책에서 현재 날짜가 지정된 날짜 이후인 경우 조건은 false입니다. 정책은 IAM 역할을 수임할 권한을 부여할 수 없습니다.

"Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
    "Condition": {
        "DateLessThan" : {
            "aws:CurrentTime" : "2016-05-01T12:00:00Z"
        }
    }