Como resolvo o erro “A função [role_arn] é inválida ou não pode ser assumida” ao atualizar ou excluir uma pilha do AWS CloudFormation?

4 minuto de leitura
0

Quero resolver o erro “A função [role_arn] é inválida ou não pode ser assumida” ao criar, atualizar ou excluir uma pilha do AWS CloudFormation.

Breve descrição

Você recebe esse erro quando há um problema com o perfil de serviço do AWS Identity and Access Management (IAM) usado pelo AWS CloudFormation para fazer chamadas para recursos em uma pilha em seu nome.

Você pode receber esse erro ao tentar:

  • Criar uma pilha usando a AWS Command Line Interface (AWS CLI) ou uma chamada de API.
  • Atualizar uma pilha quando o AWS CloudFormation cria um conjunto de alterações.
  • Excluir uma pilha.
  • Atualizar ou excluir um perfil do IAM. Se você modificar a política de confiança de um perfil atualizado do IAM, o AWS CloudFormation não poderá assumir o perfil.

Para resolver esse erro, determine se o perfil de serviço do IAM usado pelo AWS CloudFormation existe. Então:

  • Se o perfil do IAM não existir, crie um novo perfil do IAM com o mesmo nome.
  • Se o perfil do IAM existir, confirme se a política de confiança do perfil permite que o AWS CloudFormation assuma o perfil do IAM.

Ou você pode substituir o perfil atual do IAM usado para substituir o perfil de serviço usado para a operação de pilha atual usando o parâmetro --role-arn.

Observação: se você receber erros ao executar comandos da AWS CLI, verifique se está utilizando a versão mais recente da AWS CLI.

Resolução

Confirme se o perfil do IAM existe

1.    Abra o console do IAM.

2.    No painel de navegação, selecione Perfis.

3.    Na coluna Nome do perfil, escolha o perfil do IAM mencionado na mensagem de erro que você recebeu.

4.    Se o perfil existir, conclua as etapas na seção Confirmar se a política de confiança do perfil permite que o AWS CloudFormation assuma o perfil do IAM
-ou-
Conclua as etapas em Substituir o perfil atual do IAM usado pelo AWS CloudFormation.

        Se o perfil não existir, conclua as etapas em Criar um novo perfil do IAM e confirme se ele tem as permissões necessárias.

Criar um novo perfil do IAM e confirmar que tem as permissões necessárias

1.     Crie um novo perfil do IAM com o mesmo nome do perfil mencionado no erro

2.    Confirme se o novo perfil do IAM tem as permissões necessárias para que o AWS CloudFormation realize operações de criação, atualização ou exclusão em recursos de sua pilha.

3.    Depois que o perfil for criado, você poderá criar, atualizar ou excluir sua pilha novamente.

Observação: se o novo perfil não tiver as permissões de IAM necessárias, as operações de pilha poderão falhar. Por exemplo, a operação de exclusão falhará se você tentar excluir um recurso de instância do Amazon Elastic Compute Cloud (Amazon EC2) em que o perfil função do IAM não tem a permissão para a ação ec2:TerminateInstances.

Confirme se a política de confiança do perfil permite que o AWS CloudFormation assuma o perfil do IAM

1.    Abra o console do IAM.

2.    No painel de navegação, selecione Perfis.

3.    Na coluna Nome do perfil, escolha o perfil do IAM mencionado na mensagem de erro que você recebeu.

4.    Escolha a guia Relações de confiança.

5.    Confirme se a relação de confiança mostra cloudformation.amazonaws.com como uma entidade confiável.

Se cloudformation.amazonaws.com não estiver listado como uma entidade confiável, escolha Editar relação de confiança.

6.    No editor Documento de política, insira a seguinte política de confiança do perfil de serviço do AWS CloudFormation:

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

7.    Escolha Atualizar política de confiança.

Agora, a política confiável atualizada permite que o AWS CloudFormation assuma o perfil do IAM.

8.    Depois que o perfil for criado, você poderá criar, atualizar ou excluir sua pilha novamente.

Substitua o perfil atual do IAM usado pelo AWS CloudFormation

1.    Para atualizar a pilha, execute o seguinte comando:

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

Observação: substitua my-stack, my-stack-template.json e 123456789123 pelos seus valores.

2.    Para excluir a pilha, execute o seguinte comando:

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

Observação: substitua my-stack e 123456789123 pelos seus valores.


Informações relacionadas

Perfil de serviço do AWS CloudFormation

Como criar um perfil para delegar permissões a um serviço da AWS

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos