2012-07-21 18 views
6

Tengo un usuario en mi cuenta IAM llamado "testuser" que tiene privilegios de administrador, así:¿Por qué mi política AWS S3 Bucket no reemplaza mi política de IAM?

{ 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "*", 
     "Resource": "*" 
    } 
    ] 
} 

Y luego tengo una política en mi depósito de S3 que niega acceso a este usuario, así:

{ 
    "Statement": [ 
    { 
    "Effect": "Deny", 
    "Principal": { 
    "AWS": "my-account-id:user/testuser" 
    }, 
    "Action": "s3:*", 
    "Resource": "arn:aws:s3:::my-bucket-name/*" 
    } 
    ] 
} 

Por lo tanto, la denegación explícita en la política de segmento S3 debe anular la autorización de la política de IAM ¿no? Pero cuando inicio sesión como usuario de prueba, sigo teniendo acceso a todo lo que contiene, incluso tengo acceso para cambiar o eliminar la política de depósito para ese depósito (y también para todos los demás). ¿Por qué mi negación explícita no está haciendo nada?

+0

Por acceso a todo lo que quieres decir simplemente lista los contenidos de cubo o puede también obtener/poner los archivos? –

+0

Me refiero a todo: ver archivos, agregar archivos, ver la política del depósito, editar la política del depósito, etc. – Dasmowenator

Respuesta

6

intente utilizar el formulario de ARN total para el ID de usuario en la directiva de cubo:

"Principal": { 
    "AWS":["arn:aws:iam::accountid:user/testuser"] 
} 
+0

gracias por la respuesta. Desafortunadamente, esto no tuvo ningún efecto – Dasmowenator

+7

Las políticas que ha especificado evitarán que 'testuser' obtenga/poner/eliminar objetos dentro del contenedor, pero _no_ evitará que enumeren los contenidos del contenedor. Para eso tendrías que usar '" Recurso ": [" arn: aws: s3 ::: mi-bucket-name/* "," arn: aws: s3 ::: mi-bucket-nombre "]' en la regla de denegación (porque acciones como 'ListBucket' están controladas por el bucket ARN en lugar del bucket/* one). –

+0

Gracias, esto lo solucionó – Dasmowenator

Cuestiones relacionadas