По умолчанию все объекты в Amazon S3 являются частными.
Вы можете сделать объект доступным через Bucket Policy (например, у вас выше) или добавив разрешения для конкретного объекта .
Если или из этих методов предоставляют доступ к объекту, тогда объект доступен.Таким образом, тот факт, что ваша политика корзины предоставляет доступ ко всей корзине, означает, что ваш объект является общедоступным.
Единственный способ сделать исключение для одного файла - это добавить политику запрета , например:
{
"Version": "2012-10-17",
"Id": "Policy1528702071704",
"Statement": [
{
"Sid": "AllowALl",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-test-bucket/*"
},
{
"Sid": "DenyOneObject",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-test-bucket/images/login_logo.png"
}
]
}
A Запретить всегда переопределяет Разрешить , поэтому объект останется закрытым.
Однако будьте осторожны: Эта политика запрещает доступ на чтение всем 1025 * (включая вас! ).Возможно, вам потребуется настроить его, чтобы получить доступ (возможно, с помощью NotPrincipal
).