교차 계정 AWS ID 및 액세스 관리 (IAM) 역할을 맡으려고 했습니다. 하지만 다음과 비슷한 오류가 발생했습니다. “AssumeRole 작업을 호출하는 동안 오류가 발생했습니다 (AccessDenied):” 또는 “하나 이상의 필드에 잘못된 정보가 있습니다. 정보를 문의하거나 관리자에게 문의하세요".
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
cross-account에서 IAM 역할을 수임하려면 먼저 IAM 역할을 수임한 계정의 권한을 수정해야 합니다. 그런 다음 IAM 역할 수임을 허용하는 다른 AWS 계정의 신뢰 정책을 편집합니다.
다음 예에서는 Account_Bob이라는 이름과 Account _Alice라는 두 개의 계정이 있습니다. 또한 Account_Bob에는 Bob이라는 이름의 IAM 사용자 또는 역할이 있고 Account_Alice에는 Alice라는 IAM 역할이 있습니다. 이 시나리오에서는 Bob이 Alice라는 IAM 역할을 맡게 됩니다.
여러 AWS 계정 또는 교차 계정에서 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"
}
]
}
교차 계정 IAM 역할을 맡기 위한 AWS CLI 명령의 예:
aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/example-role" --role-session-name assume-cross-account
자세한 내용은 AWS CLI를 사용하여 IAM 역할을 위임하려면 어떻게 해야 합니까?를 참조하십시오.
교차 계정 IAM 역할을 맡을 때 오류가 발생하지 않도록 하려면 사용 사례에 맞는 다음 모범 사례를 따라야 합니다.
- 수임하는 역할인 Bob에게는 API 작업 AssumeRole에 대한 권한이 있어야 합니다.
- AWS 계정에 Bob으로 로그인해야 합니다. 자세한 내용은 AWS 계정 ID에 별칭 사용을 참조하십시오.
- 맡은 역할인 Alice는 반드시 존재해야 합니다. 삭제되지 않았는지, Amazon 리소스 이름(ARN)이 올바르게 구성되어 있는지 확인하십시오.
- 역할 체인을 사용하는 경우 이전 세션의 IAM 자격 증명을 사용하지 않도록 하세요. 자세한 내용은 역할 용어 및 개념의 역할 체인 섹션을 참조하십시오.
- Account_Bob이 AWS 조직의 일부인 경우 Account_Bob 또는 Account_Alice를 통한 AssumeRole 액세스를 제한하는 서비스 제어 정책(SCP) 이 있을 수 있습니다. Account_Bob 또는 Account_Alice로 접근을 제한하는 SCP를 편집하거나 제거해야 합니다. 자세한 내용을 보려면, SCP를 참조하세요.
관련 정보
IAM 권한 액세스 거부됨 또는 권한 없음 오류를 해결하는 데 도움이 되는 데이터를 어떻게 얻습니까?
사용자에서 IAM 역할로 전환 (콘솔)
IAM 역할로 전환(AWS CLI)