

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

O elemento `Resource` em uma declaração de política do IAM define o objeto ou objetos aos quais a declaração se aplica. As instruções devem incluir um elemento `Resource` ou `NotResource`.

Você especifica um recurso usando um nome do recurso da Amazon (ARN). O formato do ARN depende do AWS service (Serviço da AWS) e do recurso específico ao qual você está se referindo. Embora o formato do ARN varie, você sempre usará um ARN para identificar um recurso. Para obter mais informações sobre o formato de ARNs, consulte [ARNs do IAM](reference_identifiers.md#identifiers-arns). Para obter informações sobre como especificar um recurso, consulte a documentação do serviço para o qual deseja escrever uma instrução.

**nota**  
Alguns Serviços da AWS não permitem que você especifique ações para recursos individuais. Nesses casos, todas as ações listadas no elemento `Action` ou `NotAction` se aplicam a todos os recursos desse serviço. Quando for esse o caso, você usará o caractere curinga (`*`) no elemento `Resource`.

O exemplo a seguir se refere a uma fila específica do Amazon SQS.

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

O exemplo a seguir faz referência ao usuário do IAM chamado `Bob` em uma Conta da AWS.

**nota**  
Em um elemento `Resource`, o nome de usuário do IAM diferencia letras maiúsculas de minúsculas.

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

## Uso de caracteres curinga em ARNs de recursos
<a name="reference_policies_elements_resource_wildcards"></a>

Você pode usar caracteres curinga (`*` e `?`) dentro dos segmentos individuais de um ARN (as partes separadas por dois pontos) para representar:
+ Qualquer combinação de caracteres (`*`)
+ Qualquer caractere único (`?`)

Você pode usar vários caracteres `*` ou `?` em cada segmento. Se o curinga `*` for o último caractere de um segmento de ARN de um recurso, ele poderá expandir a busca de correspondência para além dos limites de dois-pontos. Recomendamos que você use curingas (`*` e `?`) dentro dos segmentos de ARN separados por dois pontos.

**nota**  
Você não pode usar um caractere curinga no segmento do serviço que identifica o produto da AWS. Para obter mais informações sobre ARN, consulte [Identifique recursos da AWS com nomes do recurso da Amazon (ARNs)](reference-arns.md)

O exemplo a seguir se refere a todos os usuários do IAM cujo caminho é `/accounting`. 

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

O exemplo a seguir se refere a todos os itens dentro de um bucket do Amazon S3 específico.

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

O caractere asterisco (`*`) pode ser expandido para substituir tudo dentro de um segmento, incluindo caracteres como uma barra (`/`) que pode parecer um delimitador dentro de um determinado namespace de serviço. Por exemplo, considere o ARN do Amazon S3 a seguir, pois a mesma lógica de expansão de curinga se aplica a todos os serviços.

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

Os caracteres curinga no ARN se aplicam a todos os objetos a seguir no bucket, não apenas ao primeiro objeto listado.

```
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 os dois últimos objetos na lista anterior. Um nome de objeto do Amazon S3 pode começar ou terminar com o caractere de barra (`/`) delimitador convencional. Embora `/` funcione como um delimitador, não há significado específico quando esse caractere é usado em um ARN de recurso. Ele é tratado da mesma forma que qualquer outro caractere válido. O ARN não corresponderá aos seguintes objetos:

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

## Especificação de vários recursos
<a name="reference_policies_elements_resource_multiple-resources"></a>

Você pode especificar vários recursos no elemento `Resource` usando uma matriz de ARNs. O exemplo a seguir se refere a duas tabelas do 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 variáveis de política em ARNs de recursos
<a name="reference_policies_elements_resource_policy-variables"></a>

No elemento `Resource`, você pode usar [variáveis de política](reference_policies_variables.md) JSON na parte do ARN que identifica o recurso específico, ou seja, na parte final do ARN. Por exemplo, você pode usar a chave `{aws:username}` como parte de um ARN de recurso para indicar que o nome do usuário atual deve ser incluído como parte do nome do recurso. O exemplo a seguir mostra como você pode usar a chave `{aws:username}` em um elemento `Resource`. A política permite o acesso a uma tabela do Amazon DynamoDB que corresponde ao nome do usuário atual.

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

****  

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

------

Para obter mais informações sobre variáveis de política JSON, consulte [Elementos de política do IAM: variáveis e etiquetas](reference_policies_variables.md).