Tengo un objeto S3 que no está disponible públicamente. Si hace clic en ese enlace, debería recibir el error <code>Access Denied</code> .
Sin embargo, si ejecuto el siguiente script en un servidor Node localmente en mi Mac, puedo descargar el archivo:
var s3file = fs.createWriteStream("s3posts.json.gz"); http.get("http://s3.amazonaws.com/cloudfront.s3post.cf/posts.json.gz", function(response) { response.pipe(s3file); });Revisé toda la configuración de mi cubo y objeto; no hay nada que permita el acceso público al objeto.
Si las políticas de AWS son privadas de forma predeterminada y no he otorgado ningún permiso explícitamente, ¿por qué el objeto está disponible para descargar mientras no está disponible en el navegador?
¿Qué puedo hacer para evitar que se descargue el objeto?
¿Has visto lo que realmente descarga ese script?
Cuando ejecuto su ejemplo de Nodo en mi máquina, aquí está el contenido de s3posts.json.gz:
<?xml version="1.0" encoding="UTF-8"?> <Error> <Code>AccessDenied</Code><Message>Access Denied</Message> <RequestId>946B9510D519E44B</RequestId> <HostId>eMlB8tG95Ur5fjIHo/NxfI6Ucjs/b4vcMNKYiZPZk94Db6BgrekTRVoaJTccxmQqN1eb91O673A=</HostId> </Error>Parece que todo está bien, a menos que ese sea el contenido real de ese archivo que desea proteger.