Elementos de política JSON de IAM: Resource - AWS Identity and Access Management

Elementos de política JSON de IAM: Resource

El elemento Resource especifica el objeto u objetos que la instrucción abarca. Las instrucciones deben contener un elemento Resource o NotResource. Los recursos se especifican mediante un ARN. Para obtener más información sobre el formato de los ARN, consulte ARN de IAM.

Cada servicio tiene su propio conjunto de recursos. Aunque siempre se utiliza un ARN para especificar un recurso, los detalles del ARN de un recurso dependen del servicio y el recurso. 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 no le permiten especificar acciones para recursos individuales; en su lugar, todas las acciones que publique en los elementos Action o NotAction se aplican a todos los recursos de ese servicio. En dichos casos, utilice el asterisco * 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 de 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 comodines como parte del ARN del recurso. Puede utilizar caracteres comodín (* y ?) dentro de segmentos de ARN (las partes separadas por dos puntos) para representar cualquier combinación de caracteres con un asterisco (*) y cualquier carácter individual con un signo de interrogación (?). Puede utilizar varios caracteres * o ? de cada segmento. Si el comodín (*) es el último carácter en un segmento 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 ?) dentro de 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 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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET/*/test/*"

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

DOC-EXAMPLE-BUCKET/1/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test/3/object.jpg DOC-EXAMPLE-BUCKET/1/2/3/test/4/object.jpg DOC-EXAMPLE-BUCKET/1///test///object.jpg DOC-EXAMPLE-BUCKET/1/test/.jpg DOC-EXAMPLE-BUCKET//test/object.jpg DOC-EXAMPLE-BUCKET/1/test/

Considere los dos últimos objetos de la lista anterior. Un nombre de objeto de Amazon S3 puede comenzar o finalizar de manera válida 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 dentro de 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:

DOC-EXAMPLE-BUCKET/1-test/object.jpg DOC-EXAMPLE-BUCKET/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test.jpg

Especificación de varios recursos

Puede especificar varios recursos. 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.