Por que o terraform está errando com 'SignatureDoesNotMatch: Signature expired'?

3

Comecei a receber o seguinte ao executar comandos terraform:

$ terraform refresh
Error refreshing state: 1 error(s) occurred:

* SignatureDoesNotMatch: Signature expired: 20170226T035111Z is now earlier than 20170227T013047Z (20170227T014547Z - 15 min.)
        status code: 403, request id: 7626f995-fc8e-11e6-9b73-7990b2a1af41

O que isso significa? Como consertar isso?

    
por AXE-Labs 27.02.2017 / 03:10

2 respostas

1

As APIs da AWS usam um mecanismo de autenticação que envolve o cliente criando uma assinatura representando a solicitação. Essa assinatura inclui um registro de data e hora da hora em que a solicitação está sendo feita, como uma medida para reduzir o risco de ataques de repetição.

O mecanismo de assinatura pressupõe que o cliente e o servidor têm relógios do sistema um pouco precisos, de forma que o tempo do cliente não seja mais do que 15 minutos divergente do do servidor.

Por isso, é importante que qualquer sistema em que as APIs da AWS sejam usadas, seja pelo Terraform ou por outros meios, tenha um relógio do sistema razoavelmente preciso. As máquinas virtuais geralmente sofrem com o desvio do relógio do sistema por várias razões, por isso é uma boa ideia executar o ntpd na maioria das máquinas virtuais para evitar que os relógios do seu sistema se desviem demais.

    
por 03.04.2017 / 23:02
0

Descobri que minha máquina virtual onde o terraform foi instalado estava fora de sincronia com o tempo. Usar o comando date e a hora atual resolveu o problema.

    
por 27.02.2017 / 03:10