

# Elementos de política JSON de IAM: NotResource
<a name="reference_policies_elements_notresource"></a>

`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.

------
#### [ JSON ]

****  

```
{
  "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 se debe poder acceder, deberá agregar su nombre a la lista en el elemento `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 el elemento `Action` también incluyera acciones de Amazon EC2, la política no denegaría el acceso a ninguno de los recursos de EC2 que no se especifiquen en el elemento `NotResource`. 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](reference_policies_actions-resources-contextkeys.html).

## NotResource con otros elementos
<a name="notresource-element-combinations"></a>

**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.