
Estou tentando integrar cookies assinados para uma distribuição do CloudFront alimentada por um bucket S3, mas recebendo mensagens de erro de acesso negado:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>BLAH BLAH</RequestId>
<HostId>BLAH BLAH</HostId>
</Error>
O que me deixa perplexo é que alguns arquivos parecem funcionar de forma consistente, enquanto outros no mesmo diretório que minha política personalizada permite falham ao usar os mesmos cookies assinados.
Por exemplo: eu tenho um arquivo em/projetos/index.htmlque funciona e um arquivo em/projects/src/Runtime.jso que não acontece, apesar de usar uma política personalizada que permite claramente ambos, tendo um curinga no recurso:http://test.meudominio.com/projects/*
Ambos os arquivos são definidos como privados no S3, a única diferença que consigo pensar entre como esses dois arquivos são solicitados é que o/projects/src/Runtime.jso arquivo é solicitado com um referenciadorteste.meudominio.come nãomeudominio.comque foi o que serviu ao primeiro/projetos/index.htmlsolicitar.
Eu sei que os cookies estão sendo configurados corretamente em ambas as solicitações e que a política personalizada e a assinatura para eles são válidas porque quando eu mexo com eles e dou valores errados, recebo uma mensagem de erro diferente.
De qualquer forma! Minha configuração é a seguinte:
Configurações do CloudFront:i.imgur.com/DMcUeDY.png(Limitação de link Serverfault, bah)
Eu tenho um nome de host alternativo que é um subdomínio do site que está servindo o arquivo (por exemplo test.mydomain.com). Não é uma entrada CNAME real e não tenho um certificado para ela - estou referenciando o CloudFront usando esse nome por meio da entrada local/etc/hosts.
Configurações de origem do CloudFront:i.imgur.com/ereGJ42.png(Limitação do link Serverfault, meh)
A origem é direta - Fazendo referência à raiz do meu bucket s3, e não restrinjo o bucket porque ele também contém arquivos que desejo que permaneçam disponíveis publicamente.
Eu modifiquei o comportamento surdo:i.imgur.com/5N2RlxM.png(Limitação de link de falha de servidor, uhh)
Basicamente ativado Restringir acesso do visualizador. Os assinantes confiáveis são a conta root, que também é proprietária do bucket s3.
O restante das opções do CloudFront permaneceram intactas. Eu tenho um par de chaves do CloudFront gerado pela Amazon e estou usando-o com os snippets fornecidos pela Amazon para PHP (usando openssl_sign) para assinar uma política personalizada que dá acesso a um diretório inteiro.
Não consigo validar onde está o problema graças à mensagem de erro muito vaga "Acesso negado", mas tenho certeza de que não está na maneira como assino os cookies. Tentei usar valores errados e recebi erros diferentes, como "Assinatura malformada" ou "Política malformada", então presumo que minha assinatura seja verificada. Além disso, como mencionei, alguns arquivos funcionam.
Estou preso nisso há alguns dias, qualquer ajuda seria muito apreciada!