Acesso negado ao chamar a operação CreateInvalidation no AWS CLI

5

Eu estou tentando criar um comando que invalidará a distribuição do CloudFront ao enviar um novo código. Esta é uma tentativa de corrigir o problema de que o novo HTML enviado não demora até 24 horas a aparecer na minha aplicação Web. A ideia vem desta REFERÊNCIA DE COMANDO DA CLI DA AWS

Aqui está o comando:

aws cloudfront create-invalidation --distribution-id XXXXXXXXXXXXXX --invalidation-batch file://invbatch.json

Aqui está a resposta que recebo quando executo o comando:

A client error (AccessDenied) occurred when calling the CreateInvalidation operation: User: arn:aws:iam::XXXXXXXXXXXXXX:user/cats-kittens-beanstalk-user is not authorized to perform: cloudfront:CreateInvalidation

Alguma idéia de por que isso pode ser? Sei que a AWS lança esse acesso negado, mesmo que o usuário esteja autorizado a executar comandos em algumas instâncias - consulte aqui .

    
por tracyak13 09.11.2015 / 20:29

1 resposta

2

As Políticas do IAM não permitem a restrição de acesso a distribuições específicas do CloudFront. A solução é usar um curinga para o recurso, em vez de apenas referenciar um recurso específico do CloudFront. Adicionar isso à sua política do IAM corrigirá o problema que você está tendo.

Aqui está um exemplo disso em uma política de trabalho do IAM:

{
  "Statement": [  
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudfront:CreateInvalidation",
        "cloudfront:GetInvalidation",
        "cloudfront:ListInvalidations"
      ],
      "Resource": "*"
    }
  ]
}

Documentos:

por 02.08.2016 / 23:08