IAM 역할을 위임하려고 하면 "AccessDenied" 또는 "Invalid information" 오류가 발생하는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 6월 16일

AWS Identity and Access Management(IAM) 역할을 위임하려고 했지만, 다음과 유사한 오류가 발생했습니다.

"An error occurred (AccessDenied) when calling the AssumeRole operation:"

-또는-

"Invalid information in one or more fields. Check your information or contact your administrator."  

간략한 설명

다른 AWS 계정에서 IAM 역할을 위임하려면 먼저 한 계정(IAM 역할을 위임한 계정)에서 권한을 편집해야 합니다. 그런 다음, 다른 계정(IAM 역할 위임을 허용하는 계정)에서 신뢰 정책을 편집합니다. 예를 들어 Account_Bob과 Account _Alice라는 두 개의 계정이 있다고 가정해보겠습니다. 또한, Bob과 Alice라는 IAM 사용자 또는 역할이 2개 있습니다. 이 시나리오에서 Bob은 Alice라는 이름의 IAM 역할을 위임합니다.

여러 계정 또는 교차 계정으로 AssumeRole API 호출을 사용하려면 역할을 위임하기 위한 권한을 부여하는 다음과 유사한 신뢰 정책이 있어야 합니다.

Bob에게 필요한 권한의 예제는 다음과 같습니다.  

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PermissionToAssumeAlice",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::Account_Alice:role/Alice"
        }
    ]
}

Alice의 신뢰 정책의 예제는 다음과 같습니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT_Bob:user/Bob"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

해결 방법

모범 사례는 다음과 같습니다.

  • Bob은 AssumeRole에 대한 권한이 있습니다.
  • AWS 계정에는 Bob으로 로그인했습니다. 자세한 내용은 AWS 계정 ID와 별칭을 참조하십시오.
  • Account_Bob이 AWS Organizations에 속한 경우, Account_Bob 또는 Account_Alice를 사용한 AssumeRole 액세스를 제한하는 서비스 제어 정책(SCP)이 있을 수 있습니다. 자세한 내용은 서비스 제어 정책(SCP)을 참조하십시오.
  • 역할 묶기를 사용할 때는 이전 세션의 IAM 자격 증명을 사용할 수 있습니다. 자세한 내용은 역할 용어 및 개념역할 묶기 섹션을 참조하십시오.