Creé un depósito para contener los archivos de registro creados por el servicio de registro s3, y obtuve los permisos para que el depósito pueda aparecer en la lista y el contenido sea de acceso público. Puedo enumerar el contenido del depósito, pero se deniega el acceso web a un registro con un error 403.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::mybucket/*" }, { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::mybucket" } ] }Deduzco que dicha política no funciona cuando el objeto (archivo de registro) es propiedad de otra persona.
Entonces, ¿qué otros permisos debo aplicar a los contenidos del depósito para que sean de acceso público?
Tiene razón al decir que la política del depósito no se aplica a los objetos que no pertenecen a la cuenta de AWS. Tienes 2 opciones:
public-read : AWS_ACCESS_KEY_ID=XXX \ AWS_SECRET_ACCESS_KEY=XXX \ aws s3 cp \ s3://BUCKET/OBJECT_PATH \ s3://BUCKET/OBJECT_PATH \ --acl public-readbucket-owner-full-control . A partir de ahí, la política del depósito se hace cargo de los permisos de los objetos.La única forma que encontré para hacer cualquiera de las opciones (sin obtener errores de acceso denegado) es usar las credenciales del usuario raíz de la cuenta de AWS.