내용으로 건너뛰기

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

4분 분량
0

AWS Management Console을 사용하여 AWS Identity and Access Management(IAM) 역할을 전환하려고 했습니다. 하지만 다음과 같은 오류가 발생했습니다. "Invalid information in one or more fields. Check your information or contact your administrator."

간략한 설명

잘못 구성된 정책으로 인해 Invalid information in one or more fields 오류 메시지가 표시됩니다. 요청이 신뢰 정책의 조건을 충족하지 않는 경우에도 이러한 오류 메시지를 받을 수 있습니다.

해결 방법

IAM 사용자 또는 역할에 대한 AssumeRole 권한 구성

사용자에게 역할 전환 권한을 부여하려면 AWS Security Token Service(AWS STS) AssumeRole 작업을 IAM 자격 증명 정책에 추가하십시오.

정책 예시:

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

참고: arn:aws:iam::account_id_number:role/role-name-you-want-to assume을 IAM 역할의 Amazon 리소스 이름(ARN)으로 바꾸십시오.

IAM 역할의 신뢰 정책에 위탁자가 포함되어 있는지 확인

위탁자를 포함하도록 신뢰 정책을 업데이트하십시오. 위탁자는 IAM 사용자, 역할 또는 AWS 계정일 수 있습니다.

참고: 계정을 신뢰할 수 있는 위탁자로 추가하면 해당 계정의 모든 자격 증명이 역할을 수임할 수 있습니다. 그러나 자격 증명에는 AssumeRole 권한이 있어야 합니다.

예를 들어, 계정 ID 111222333444의 IAM 사용자 Carlos가 계정 ID 444555666777의 Maria 역할을 수임하려고 합니다.

계정 ID 111222333444는 신뢰받는 계정이고 계정 ID 444555666777은 신뢰하는 계정입니다. Maria의 IAM 역할에는 Carlos를 신뢰하는 신뢰 정책이 있습니다.

Maria의 IAM 역할에 대한 신뢰 정책 예:

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

Carlos는 다른 계정에서 Maria의 IAM 역할을 수임하기 위한 IAM 정책도 있어야 합니다.

Carlos가 Maria의 IAM 역할을 수임하기 위한 IAM 정책 예:

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

계정의 모든 IAM 자격 증명이 역할을 수임할 수 있도록 하려면 계정 루트 위탁자를 사용하십시오.

Maria의 IAM 역할에 대한 신뢰 정책에서 user/Carlosroot로 바꾸십시오.

"AWS": "arn:aws:iam::111222333444:root"

Maria의 IAM 역할 신뢰 정책에서 사용자가 모든 계정에서 어떤 역할이든 수임할 수 있도록 와일드카드(*)를 사용할 수도 있습니다.

"Resource": "arn:aws:iam::444555666777:role/\\\*"

위 변경 사항을 통해 계정 111222333444의 모든 IAM 사용자 또는 역할은 계정 ID 444555666777에 있는 Maria의 IAM 역할을 수임할 수 있습니다. 역할을 수임할 수 있는 자격 증명 수를 최소화하려면 액세스 권한이 필요한 IAM 사용자 또는 역할의 ARN만 지정하는 것이 가장 좋습니다.

자세한 내용은 역할 신뢰 정책 업데이트를 참조하십시오.

SCP 또는 IAM 정책의 명시적 거부

계정이 AWS Organizations에 속한 경우 관리 계정은 역할 전환을 제한하는 서비스 제어 정책(SCP)을 적용할 수 있습니다. 자세한 내용은 관리 계정 모범 사례를 참조하십시오.

SCP 또는 IAM 정책에 AssumeRole 작업에 대한 명시적 거부가 있는지 확인하십시오. 명시적 거부가 있는 경우 거부는 모든 허용 권한보다 우선하므로 역할 수임을 방지합니다. 이전 예에서 명시적 거부가 있는 경우 Carlos는 Maria의 IAM 역할을 수임할 수 없습니다.

또한 SCP가 AWS 리전에 따라 액세스를 제한하는지 확인하십시오. AWS STS는 글로벌 서비스이므로 글로벌 서비스 제외 목록에 등록해야 합니다.

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

IAM 역할로 전환하려면 역할에 sts:ExternalId가 필요함

IAM 역할에 sts:ExternalId 키가 필요한 경우 AWS Management Console을 사용하여 역할을 전환할 수 있습니다. AssumeRole 작업을 sts:ExternalId 파라미터와 함께 사용하도록 정책을 편집합니다.

sts:ExternalId 키를 사용하면 타사에서 AWS 리소스에 액세스할 수 있습니다.

자세한 내용은 타사 소유의 AWS 계정에 대한 액세스를 참조하십시오.

IAM 역할 신뢰 정책의 조건 확인

만료 날짜 또는 ExternalId 요구 사항 등 신뢰 정책에서 구성한 조건을 검토하십시오. 요청은 IAM 역할 정책의 조건을 충족해야 합니다.

예를 들어 현재 날짜가 지정된 날짜 이후인 경우, 조건은 false이며 정책에서 역할을 수임할 권한을 부여할 수 없습니다.

다음 정책은 2016년 5월 1일 이후 역할을 수임할 수 있는 권한을 거부합니다.

{
  "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 역할을 수임할 수 있는 링크를 제공하려면 어떻게 해야 합니까?

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

AWS Organizations 서비스 제어 정책과 IAM 정책 간의 차이점은 무엇입니까?

AWS 공식업데이트됨 7달 전
댓글 없음

관련 콘텐츠