

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

El elemento `Resource` de una instrucción de política de IAM define el objeto o los objetos a los que se aplica la instrucción. Las instrucciones deben contener un elemento `Resource` o `NotResource`.

Especifica un recurso mediante un nombre de recurso de Amazon (ARN). El formato del ARN depende del Servicio de AWS y del recurso específico al que hace referencia. Si bien el formato del ARN varía, siempre se utiliza un ARN para identificar un recurso. Para obtener más información sobre el formato de los ARN, consulte [ARN de IAM](reference_identifiers.md#identifiers-arns). Para obtener información sobre cómo especificar un recurso, consulte la documentación del servicio para quiere escribir una instrucción.

**nota**  
Algunos Servicios de AWS no permiten especificar acciones para recursos individuales. En estos casos, cualquier acción que se enumere en el elemento `Action` o `NotAction` se aplica a todos los recursos de ese servicio. En ese caso, se utiliza el carácter comodín (`*`) en el elemento `Resource`.

El siguiente ejemplo hace referencia a una cola Amazon SQS específica.

```
"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"
```

El siguiente ejemplo hace referencia al usuario de IAM llamado `Bob` en una Cuenta de AWS.

**nota**  
En un elemento de `Resource`, el nombre de usuario de IAM distingue entre mayúsculas y minúsculas.

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"
```

## Uso de comodines en ARN de recursos
<a name="reference_policies_elements_resource_wildcards"></a>

Puede utilizar caracteres comodín (`*` y `?`) en los segmentos individuales de un ARN (las partes separadas por dos puntos) para representar:
+ Cualquier combinación de caracteres (`*`)
+ Cualquier carácter simple (`?`)

Puede utilizar varios caracteres `*` o `?` de cada segmento. Si el comodín `*` es el último carácter en un segmento de ARN de recurso, puede expandirse para que coincida más allá de los límites de los dos puntos. Le recomendamos que utilice comodines (`*` y `?`) en los segmentos de ARN, separados por dos puntos.

**nota**  
No se puede utilizar un carácter comodín en el segmento de servicio que identifica el producto de AWS. Para obtener más información sobre segmentos de ARN, consulte [Identificar los recursos de AWS con nombres de recursos de Amazon (ARN)](reference-arns.md).

El siguiente ejemplo hace referencia a todos los usuarios de IAM cuya ruta es `/accounting`. 

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"
```

El siguiente ejemplo hace referencia a todos los elementos dentro de un bucket de Amazon S3 específico.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
```

El carácter asterisco (`*`) puede expandirse para reemplazar todo dentro de un segmento, incluidos caracteres como una barra diagonal (`/`) que, de otro modo, podrían parecer delimitadores dentro de un espacio de nombres de servicio dado. Por ejemplo, considere el siguiente ARN de Amazon S3 como la misma lógica de expansión comodín que se aplica a todos los servicios.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"
```

Los comodines del ARN se aplican a todos los siguientes objetos del bucket, no solo al primer objeto de la lista.

```
amzn-s3-demo-bucket/1/test/object.jpg
amzn-s3-demo-bucket/1/2/test/object.jpg
amzn-s3-demo-bucket/1/2/test/3/object.jpg 
amzn-s3-demo-bucket/1/2/3/test/4/object.jpg
amzn-s3-demo-bucket/1///test///object.jpg
amzn-s3-demo-bucket/1/test/.jpg
amzn-s3-demo-bucket//test/object.jpg
amzn-s3-demo-bucket/1/test/
```

Considere los dos últimos objetos de la lista anterior. Un nombre de objeto de Amazon S3 puede comenzar o finalizar con el carácter de barra diagonal (`/`) que es delimitador convencional. Mientras que `/` funciona como delimitador, no hay ningún significado específico cuando este carácter se utiliza en un ARN de recurso. Se trata de la misma manera que a cualquier otro carácter válido. El ARN no coincidiría con los siguientes objetos:

```
amzn-s3-demo-bucket/1-test/object.jpg
amzn-s3-demo-bucket/test/object.jpg
amzn-s3-demo-bucket/1/2/test.jpg
```

## Especificación de varios recursos
<a name="reference_policies_elements_resource_multiple-resources"></a>

Puede especificar varios recursos en el elemento `Resource` mediante una matriz de ARN. El siguiente ejemplo hace referencia a dos tablas de DynamoDB.

```
"Resource": [
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table",
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table"
]
```

## Uso de variables de política en ARN de recursos
<a name="reference_policies_elements_resource_policy-variables"></a>

En el elemento `Resource`, puede utilizar [variables de política](reference_policies_variables.md) de JSON en la parte del ARN que identifica los recursos específicos (es decir, en la parte final del ARN). Por ejemplo, puede utilizar la clave `{aws:username}` como parte de un ARN de recurso para indicar que el nombre del usuario actual debe incluirse como parte del nombre del recurso. El siguiente ejemplo muestra cómo puede utilizar la clave `{aws:username}` en un elemento `Resource`. La política permite obtener acceso a una tabla de Amazon DynamoDB que coincide con el nombre de usuario actual.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "dynamodb:*",
        "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/${aws:username}"
    }
}
```

------

Para obtener más información sobre las variables de las políticas de JSON, consulte [Elementos de la política de IAM: variables y etiquetas](reference_policies_variables.md).