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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta