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

3분 분량
0

AWS Management Console을 사용하여 AWS Identity and Access Management(AWS 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가 있을 수 있습니다. SCP가 AssumeRole 작업을 명시적으로 거부하지 않았는지 확인합니다. AWS 리전에 따라 API 작업을 거부하는 SCP가 있는지 확인합니다. AWS Security Token Service(AWS STS)는 글로벌 서비스 제외 목록에 포함되어야 하는 글로벌 서비스입니다. “거부” 문이 “허용” 문보다 우선하므로 IAM 정책에서 명시적인 거부가 발생하지 않는지 확인합니다.

자세한 내용은 요청한 AWS 리전에 따라 AWS 액세스 거부를 참고하세요.

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

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

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

IAM 역할로 전환 시 외부 ID 요청

관리자는 외부 ID를 사용하여 제3자에게 AWS 리소스 액세스 권한을 부여할 수 있습니다. AWS Management Console에서 IAM 역할을 ExternalId 조건 키 값이 필요한 역할로는 전환할 수 없습니다. IAM 역할로 전환하려면 ExternalId 키를 지원하는 AssumeRole 작업을 호출해야만 합니다.

자세한 내용은 타사에 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"
        }
    }

관련 정보

IAM 사용자에게 IAM 역할을 맡을 수 있는 링크를 제공하려면 어떻게 해야 하나요?

AWS IAM을 사용하여 다른 AWS 계정의 리소스에 액세스하려면 어떻게 해야 하나요?

AWS Organizations 서비스 제어 정책과 IAM 정책 간의 차이점은 무엇인가요?

AWS 공식
AWS 공식업데이트됨 일 년 전