Política de depósito de Amazon S3 solo para restricciones públicas
Me gustaría restringir el acceso público a algunos objetos que hemos almacenado en S3, pero mostrar otros objetos en la misma jerarquía de claves. Por ejemplo, suponga que quiero hacerbucketname/*
públicamente legible. Pero quiero evitar el acceso abucketname/*/hidden/*
para cualquier usuario que no tenga acceso expreso en IAM.
Puedo hacerlo con una política de cubeta como:
{
"Id": "Policy123",
"Statement": [
{
"Sid": "Stmt123",
"Action": [ "s3:GetObject" ],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname/*",
"Principal": {
"AWS": [ "*" ]
}
},
{
"Sid": "Stmt124",
"Action": [ "s3:GetObject" ],
"Effect": "Deny",
"Resource": "arn:aws:s3:::bucketname/*/hidden/*",
"Principal": {
"AWS": [ "*" ]
}
]
}
Pero eso impide que los usuarios / grupos de IAM que he otorgado accedan a los objetos ocultos. ¿Hay una configuración paraPrincipa en la segunda declaración que solo coincide con el acceso no autenticado? O mejor aún, ¿hay una manera de enumerar solo aquellos Principales eso deberiaN ser afectado por una declaración de política?