Elementos de política JSON de IAM: NotResource
NotResource
es un elemento de política avanzada que coincide explícitamente con todos los recursos excepto los especificados. El uso de NotResource
puede traducirse en una política más abreviada; se publican únicamente unos cuantos recursos que no deben coincidir, en vez de incluir una larga lista de recursos que sí coincidirán. Esto resulta especialmente útil para las políticas que se aplican en un único servicio de AWS.
Por ejemplo, supongamos que tiene un grupo denominado HRPayroll
. Los miembros de HRPayroll
no deben tener permiso para obtener acceso a todos los recursos de Amazon S3, a excepción de la carpeta Payroll
del bucket HRBucket
. La política siguiente deniega de forma explícita el acceso a todos los recursos de Amazon S3 que no sean los recursos publicados en la lista. Tenga en cuenta, sin embargo, que esta política no concede al usuario acceso a ningún recurso.
{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "s3:*", "NotResource": [ "arn:aws:s3:::HRBucket/
Payroll
", "arn:aws:s3:::HRBucket/Payroll
/*" ] } }
Normalmente, para denegar explícitamente el acceso a un recurso debe escribir una política que utilice "Effect":"Deny"
y que incluya un elemento Resource
que enumere cada carpeta individualmente. Sin embargo, en dicho caso, cada vez que agregue una carpeta a HRBucket
o agregue un recurso a Amazon S3; al que no debe poderse obtener acceso, deberá agregar su nombre a la lista de Resource
. Si, en su lugar, utiliza un elemento NotResource
, se deniega automáticamente a los usuarios el acceso a las carpetas nuevas, salvo que añada los nombres de las carpetas al elemento NotResource
.
Cuando utilice NotResource
, debe tener en cuenta que los recursos especificados en este elemento son los únicos recursos que no están limitados. Esto, a su vez, limita todos los recursos que se aplicarían a la acción. En el ejemplo anterior, la política solo afecta a las acciones de Amazon S3 y, por lo tanto, solo a los recursos de Amazon S3. Si la acción también incluía acciones de Amazon EC2, la política no denegaría el acceso a los recursos de EC2. Para saber qué acciones de un servicio permiten especificar el ARN de un recurso, consulte Acciones, recursos y claves de condición de los servicios de AWS.
NotResource con otros elementos
Nunca debe utilizar los elementos "Effect": "Allow"
, "Action": "*"
y "NotResource": "arn:aws:s3:::HRBucket"
de forma conjunta. Esta instrucción es muy peligrosa, ya que permite todas las acciones en AWS en todos los recursos excepto el bucket de S3 HRBucket
. Esto incluso permitiría al usuario añadir una política a sí mismo que le permitiera obtener acceso a HRBucket
. No lo haga.
Sea precavido al utilizar los elementos NotResource
y "Effect": "Allow"
en la misma instrucción o en otra instrucción de una misma política. NotResource
permite todos los servicios y recursos que no se mencionan explícitamente en la lista, lo que podría dar como resultado que se concediera a los usuarios más permisos de los que en realidad se pretendía. Con los elementos NotResource
y "Effect": "Deny"
en la misma declaración se deniegan los servicios y recursos que no se mencionan explícitamente.