AWS CloudFormation에서 "MalformedPolicyDocument" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 10월 15일

AWS CloudFormation 스택을 생성하거나 업데이트하려고 하면 "MalformedPolicyDocument" 오류 메시지가 표시됩니다. 템플릿을 검증한 후에도 여전히 오류가 발생합니다.

간략한 설명

AWS CloudFormation의 ValidateTemplate API는 템플릿의 구문만 검증할 수 있습니다. 이 API는 리소스에 대해 지정한 속성 값을 검증할 수 없습니다. 속성 값의 일부로 정책 문서가 구성되므로 정책의 유효성은 검증되지 않습니다.

정책 언어의 문법에 따라 정책 문서의 구문 또는 의미가 정확하지 않은 경우 "MalformedPolicyDocument" 오류가 발생합니다.

이 오류를 해결하려면 정책 문서가 속해 있는 특정 리소스 유형에 대해 해당 정책 문서가 유효한지 확인해야 합니다.

해결 방법

스택 이벤트에서 오류 메시지 세부 정보 조회

  1. AWS CloudFormation 콘솔을 엽니다.
  2. 탐색 창에서 [스택(Stacks)]을 선택합니다.
  3. 오류를 반환한 스택을 선택한 다음, [이벤트(Events)] 탭을 선택합니다.
  4. 오류 원인을 설명하는 메시지의 [상태 사유(Status reason)] 열을 검색합니다.

그래도 오류 원인을 찾을 수 없는 경우 오류가 발생한 AWS CloudTrail 이벤트에 대한 자세한 정보 가져오기 섹션의 단계를 완료합니다.

오류가 발생한 AWS CloudTrail 이벤트에 대한 자세한 정보 가져오기

오류가 발생한 리소스 유형에서 수행하는 작업에 대한 CloudTrail 이벤트의 errorMessage 속성을 확인하여 자세한 정보를 얻을 수 있습니다.

예를 들어, "MalformedPolicyDocument"가 AWS Identity and Access Management(IAM) 역할에 연결된 인라인 정책의 오류로 인해 발생한 경우 다음 단계를 완료합니다.

  1. CloudTrail 콘솔을 엽니다.
  2. 탐색 창에서 [이벤트 기록(Event history)]을 선택합니다.
  3. [필터(Filter)] 검색 상자에서 [이벤트 이름(Event name)]을 조회 속성으로 선택한 다음, 해당 텍스트 상자에 PutRolePolicy를 입력합니다.
  4. [시간 범위(Time range)]에서 AWS CloudFormation 이벤트에 표시된 오류 메시지에 표시된 시간에 따라 CloudTrail 이벤트의 시간을 설정합니다.
  5. [이벤트 이름(Event name)] 열에서 이벤트를 선택합니다.
  6. [이벤트 레코드(Event record)]의 errorMessage 속성 값에서 자세한 메시지를 확인합니다.

CloudTrail 이벤트에서 전달된 정책 검증

오류가 발생한 리소스에서 수행하는 API 수준의 작업에 대한 CloudTrail 이벤트는 일반적으로 해결된 형태의 정책 문서를 포함합니다. 해결된 이 정책 문서를 복사한 다음, AWS Management Console에서 해당 특정 리소스에 대한 새 정책을 직접 생성할 수 있습니다.

예를 들어, "MalformedPolicyDocument"가 IAM 역할에 연결된 인라인 정책의 오류로 인해 발생한 경우 다음 단계를 완료합니다.

  1. AWS CloudTrail 콘솔을 엽니다.
  2. 탐색 창에서 [이벤트 기록(Event history)]을 선택합니다.
  3. [필터(Filter)] 검색 상자에서 [이벤트 이름(Event name)]을 조회 속성으로 선택한 다음, 해당 텍스트 상자에 PutRolePolicy를 입력합니다.
  4. [시간 범위(Time range)]에서 AWS CloudFormation 이벤트에 표시된 오류 메시지에 표시된 시간에 따라 CloudTrail 이벤트의 시간을 설정합니다.
  5. [이벤트 이름(Event name)] 열에서 이벤트를 선택합니다.
  6. [이벤트 레코드(Event record)]에서 requestParameters 아래 policyDocument 속성 값을 복사합니다.
  7. 텍스트 편집기에서 정책 문서에 있는 "\" 이스케이프 문자를 제거합니다.
  8. IAM 콘솔을 엽니다.
  9. 탐색 창에서 [정책(Policies)]을 선택합니다.
  10. [정책 생성(Create policy)]을 선택하고 [JSON] 탭을 선택합니다.
  11. 6단계에서 복사한 정책 문서를 입력한 다음, [정책 검토(Review policy)]를 선택합니다.
  12. 페이지 시작 위치에 있는 빨간색 대화 상자에 표시된 오류 메시지의 내용을 확인합니다. 오류 메시지에서는 정책의 검증 실패에 대한 자세한 설명을 제공합니다.

이 문서가 도움이 되었습니까?


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