AWS CloudFormation 스택을 업데이트하거나 삭제할 때 "역할 [role_arn]이(가) 잘못되었거나 수임할 수 없음(Role [role_arn] is invalid or cannot be assumed)" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 2월 11일

AWS CloudFormation 스택을 생성하거나 업데이트하거나 삭제할 때 "역할 [role_arn]이(가) 잘못되었거나 수임할 수 없음(Role [role_arn] is invalid or cannot be assumed)” 오류를 해결하고 싶습니다.

간략한 설명

AWS CloudFormation에서 사용자를 대신하여 스택의 리소스를 호출하는 데 사용되는 AWS Identity and Access Management(IAM) 서비스 역할에 문제가 있는 경우 이 오류가 발생합니다.

이 오류는 다음을 시도할 때 발생할 수 있습니다.

  • AWS 명령줄 인터페이스(AWS CLI) 또는 API 호출을 사용하여 스택을 만듭니다.
  • AWS CloudFormation에서 변경 세트가 생성될 때 스택을 업데이트합니다.
  • 스택을 삭제합니다.
  • IAM 역할을 업데이트하거나 삭제합니다. 업데이트된 IAM 역할의 신뢰 정책을 수정하는 경우 AWS CloudFormation에서 역할을 수임할 수 없습니다.

신뢰 정책이 수정된 경우 AWS CloudFormation이 IAM 역할을 수임하도록 허용하여 이 오류를 해결할 수 있습니다. 신뢰 정책이 삭제된 경우 오류 메시지에 언급된 역할과 동일한 이름의 역할을 생성하여 이 오류를 해결할 수 있습니다. 마지막으로 AWS CLI에서 --role-arn 파라미터를 사용하여 현재 사용되는 역할을 재정의합니다.

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

해결 방법

IAM 역할이 있는지 확인한 다음 역할이 없으면 새 IAM 역할을 생성합니다.

1.    IAM 콘솔을 엽니다.

2.    탐색 창에서 [Roles]를 선택합니다.

3.    [역할 이름(Role name)] 열에서 수신한 오류 메시지에 언급된 IAM 역할을 선택합니다.

4.    역할이 있는 경우 역할 신뢰 정책이 AWS CloudFormation의 IAM 역할 수임을 허용하는지 확인 섹션의 단계를 완료합니다.

5.    역할이 없는 경우 오류에 언급된 역할의 이름과 동일한 이름으로 새 IAM 역할을 생성합니다.

6.    새 IAM 역할에 AWS CloudFormation이 스택의 리소스에서 생성, 업데이트 또는 삭제 작업을 수행하는 데 필요한 모든 권한이 있는지 확인합니다.

7.    역할이 생성된 후 스택을 다시 생성, 업데이트 또는 삭제합니다.

참고: 새 역할에 필요한 IAM 권한이 없는 경우 스택 작업이 실패할 수 있습니다. 예를 들어 IAM 역할에 ec2:TerminateInstances 작업에 대한 권한이 없는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 리소스를 삭제하려고 하면 삭제 작업이 실패합니다.

역할 신뢰 정책이 AWS CloudFormation의 IAM 역할 수임을 허용하는지 확인

1.    IAM 콘솔을 엽니다.

2.    탐색 창에서 [Roles]를 선택합니다.

3.    [역할 이름(Role name)] 열에서 수신한 오류 메시지에 언급된 IAM 역할을 선택합니다.

4.    신뢰 관계 탭을 선택합니다.

5.    신뢰 관계에 cloudformation.amazonaws.com이 신뢰할 수 있는 엔터티로 표시되는지 확인합니다.

cloudformation.amazonaws.com이 신뢰할 수 있는 엔터티로 나열되지 않은 경우 [신뢰 관계 편집(Edit trust relationship)]을 선택합니다.

6.    [정책 문서(Policy Document)] 편집기에서 다음 AWS CloudFormation 서비스 역할 신뢰 정책을 입력합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudformation.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

7.    [신뢰 정책 업데이트(Update Trust Policy)]를 선택합니다.

이제 업데이트된 신뢰할 수 있는 정책을 통해 AWS CloudFormation이 IAM 역할을 수임할 수 있습니다.

8.    역할이 생성된 후 스택을 다시 생성, 업데이트 또는 삭제합니다.

AWS CloudFormation에 사용되는 현재 IAM 역할 재정의

AWS CLI를 사용하여 AWS CloudFormation에 사용되는 현재 IAM 역할을 재정의할 수 있습니다.

1.    스택을 업데이트하려면 다음 명령을 실행합니다.

aws cloudformation update-stack --stack-name my-stack --template-body file://my-stack-template.json --role-arn arn:aws:iam::123456789123:role/cloudformation-role

참고: my-stack, my-stack-template.json123456789123을 해당하는 값으로 바꿉니다.

2.    스택을 삭제하려면 다음 명령을 실행합니다.

aws cloudformation delete-stack --stack-name my-stack --role-arn arn:aws:iam::123456789123:role/cloudformation-role

참고: my-stack123456789123을 해당하는 값으로 바꿉니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?