¿Cómo puedo resolver los errores de «MalformedPolicyDocument» en AWS CloudFormation?

4 minutos de lectura
0

Cuando intento crear o actualizar una pila de AWS CloudFormation, aparece el mensaje de error «MalformedPolicyDocument». Sigo recibiendo el error, incluso después de validar la plantilla.

Breve descripción

La API ValidateTemplate de AWS CloudFormation solo puede validar la sintaxis de la plantilla. La API no puede validar los valores de propiedad que especifique para un recurso. Dado que un documento de política está configurado como parte del valor de la propiedad, no se verifica la validez de la política.

Aparece el error «MalformedPolicyDocument» cuando el documento de política no es correcto sintáctica o semánticamente, según la gramática del lenguaje de la política.

Para resolver este error, debe confirmar que el documento de política es válido para el tipo de recurso concreto del que forma parte.

Resolución

Buscar los detalles de los mensajes de error en los eventos de su pila

  1. Abra la consola de AWS CloudFormation.
  2. En el panel de navegación, seleccione Pilas.
  3. Seleccione la pila que ha devuelto el error y, a continuación, seleccione la pestaña Eventos.
  4. Busque en la columna Motivo del estado un mensaje que explique la causa del error.

Si sigue sin encontrar la causa del error, siga los pasos de la sección Obtenga más información sobre el evento de AWS CloudTrail que ha provocado el error.

Obtener más información sobre el evento de AWS CloudTrail que ha provocado el error

Para obtener más información, consulte la propiedad errorMessage del evento de CloudTrail para ver la operación del tipo de recurso que ha provocado el error.

Por ejemplo, si «MalformedPolicyDocument» se debe a un error en una política insertada adjunta a una función de AWS Identity and Access Management (IAM), siga los siguientes pasos:

  1. Abra la consola de AWS CloudTrail.
  2. En el panel de navegación, seleccione Historial de eventos.
  3. En el cuadro de búsqueda Filtrar, seleccione Nombre del evento como atributo de búsqueda y, a continuación, escriba PutRolePolicy en el cuadro de texto correspondiente.
  4. Para el Intervalo de tiempo, establezca la hora del evento de CloudTrail como la que aparece en el mensaje de error que se muestra en los eventos de AWS CloudFormation.
  5. En la columna Nombre del evento, seleccione su evento.
  6. En el Registro de eventos, compruebe el valor de la propiedad errorMessage para ver un mensaje detallado.

Validar la política aprobada en el evento de CloudTrail

El evento de CloudTrail correspondiente a la acción a nivel de API en el recurso que está causando el error suele contener el formulario resuelto del documento de política. Puede copiar este documento de política resuelto y, a continuación, crear una nueva política en la consola de administración de AWS directamente para ese recurso en particular.

Por ejemplo, si «MalformedPolicyDocument» es el resultado de un error en una política insertada adjunta a un rol de IAM, siga estos pasos:

  1. Abra la consola de CloudTrail.
  2. En el panel de navegación, seleccione Historial de eventos.
  3. En el cuadro de búsqueda Filtrar, seleccione Nombre del evento como atributo de búsqueda y, a continuación, escriba PutRolePolicy en el cuadro de texto correspondiente.
  4. Para el Intervalo de tiempo, establezca la hora del evento de CloudTrail como la que aparece en el mensaje de error que se muestra en los eventos de AWS CloudFormation.
  5. En la columna Nombre del evento, seleccione su evento.
  6. En el Registro de eventos, copie el valor de la propiedad policyDocument en requestParameters.
  7. En un editor de texto, elimine cualquier carácter de escape «\» del documento de política.
  8. Abra la consola de IAM.
  9. En el panel de navegación, seleccione Políticas.
  10. Seleccione Crear política y, a continuación, seleccione la pestaña JSON.
  11. Introduzca el documento de política que ha copiado del paso 6 y, a continuación, seleccione Revisar política.
  12. Compruebe el contenido del mensaje de error que aparece en el cuadro de diálogo rojo al principio de la página. El mensaje de error proporciona una explicación más detallada del error de validación de la política.

Información relacionada

Gramática del lenguaje de políticas JSON de IAM

Referencia de elementos de políticas JSON de IAM

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años