Como resolvo erros “MalformedPolicyDocument” no AWS CloudFormation?

4 minuto de leitura
0

Quando tento criar ou atualizar uma pilha do AWS CloudFormation, recebo uma mensagem de erro “MalformedPolicyDocument”. Continuo recebendo o erro, mesmo depois de validar o modelo.

Breve descrição

A API ValidateTemplate no AWS CloudFormation pode validar apenas a sintaxe de seu modelo. A API não é capaz de validar os valores das propriedades que você especifica para um recurso. Como o documento da política é configurado como parte do valor da propriedade, a validade da política não é verificada.

Você recebe o erro “MalformedPolicyDocument” quando o documento da política não está correto sintática ou semanticamente de acordo com a gramática do idioma da política.

Para resolver esse erro, você deve confirmar se o documento da política é válido para o tipo de recurso específico do qual ele faz parte.

Solução

Procure detalhes da mensagem de erro nos eventos da sua pilha

  1. Abra o console do AWS CloudFormation.
  2. No painel de navegação, escolha Pilhas.
  3. Escolha a pilha que retornou o erro e, em seguida, escolha a guia Eventos.
  4. Pesquise na coluna Motivo do status uma mensagem que explique a causa do erro.

Se você ainda não conseguir encontrar a causa do erro, execute as etapas da seção Obter mais informações sobre o evento do AWS CloudTrail que causou o erro.

Obter mais informações sobre o evento do AWS CloudTrail que causou o erro

Para obter mais informações, confira a propriedade errorMessage do evento do CloudTrail referente à operação no tipo de recurso que causou o erro.

Por exemplo, se “MalformedPolicyDocument” resultar de um erro em uma política em linha anexada a um perfil do AWS Identity and Access Management (IAM), execute estas etapas:

  1. Abra o console do AWS CloudTrail.
  2. No painel de navegação, escolha o Histórico de eventos.
  3. Na caixa de pesquisa Filtro, selecione o Nome do evento como atributo de pesquisa e insira PutRolePolicy na caixa de texto correspondente.
  4. Em Período, defina a hora do evento do CloudTrail que você vê na mensagem de erro exibida em eventos do AWS CloudFormation.
  5. Na coluna Nome do evento, escolha seu evento.
  6. Em Registro de eventos, verifique o valor da propriedade errorMessage para ver uma mensagem detalhada.

Valide a política aprovada no evento do CloudTrail

O evento do CloudTrail para a ação em nível de API no recurso que está causando o erro geralmente contém a forma resolvida do documento da política. Você pode copiar esse documento da política resolvido e, em seguida, criar uma nova política no Console de Gerenciamento da AWS diretamente para esse recurso específico.

Por exemplo, se “MalformedPolicyDocument” resultar de um erro em uma política em linha anexada a um perfil do IAM, execute estas etapas:

  1. Abra o console do CloudTrail.
  2. No painel de navegação, escolha o Histórico de eventos.
  3. Na caixa de pesquisa Filtro, selecione o Nome do evento como atributo de pesquisa e insira PutRolePolicy na caixa de texto correspondente.
  4. Em Período, defina a hora do evento do CloudTrail que você vê na mensagem de erro exibida em eventos do AWS CloudFormation.
  5. Na coluna Nome do evento, escolha seu evento.
  6. No Registro de eventos, copie o valor da propriedade policyDocument em requestParameters.
  7. Em um editor de texto, remova todos os caracteres de escape “\” do documento da política.
  8. Abra o console do IAM.
  9. No painel de navegação, escolha Políticas.
  10. Escolha Criar política e, em seguida, escolha a guia JSON.
  11. Insira o documento da política que você copiou na etapa 6 e escolha Revisar política.
  12. Verifique o conteúdo da mensagem de erro mostrada na caixa de diálogo vermelha no início da página. A mensagem de erro fornece uma explicação mais detalhada da falha de validação da política.

Informações relacionadas

Gramática da linguagem das políticas JSON do IAM

Referência de elementos de política JSON do IAM

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos