Elementos de política JSON de IAM: Resource
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. 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
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).
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
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
En el elemento Resource
, puede utilizar variables de política 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.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:
account-id
: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.