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

Elementos de política JSON de IAM: NotAction

NotAction es un elemento de política avanzada que hace coincidir explícitamente todo, salvo la lista de acciones especificada. El uso de NotAction puede traducirse en una política abreviada; se publican únicamente unas cuantas acciones que no deben coincidir, en vez de publicar una larga lista de acciones que sí coincidirán. Las acciones especificadas en NotAction no se ven afectadas por el efecto Allow o Deny de una declaración de política. Esto, a su vez, significa que todas las acciones o servicios aplicables que no están en la lista están permitidos cuando se usa el efecto Allow. Además, las acciones o servicios que no están en la lista se deniegan cuando se usa el efecto Deny. Cuando se utiliza NotAction con el elemento Resource, proporciona el ámbito de la política. Esta es la forma en que AWS determina qué acciones o servicios son aplicables. Para obtener más información, consulte la siguiente política de ejemplo.

NotAction con Allow

Puede utilizar el elemento NotAction en una instrucción con "Effect": "Allow" para proporcionar acceso a todas las acciones de un servicio de AWS, salvo las acciones especificadas en NotAction. Puede utilizarla con el elemento Resource para proporcionar el ámbito de la política, limitando las acciones permitidas a las acciones que puede llevar a cabo en el recurso especificado.

En el siguiente ejemplo se permite a los usuarios obtener acceso a todas las acciones de Amazon S3 que se pueden realizar en cualquier recurso de S3, salvo la eliminación de un bucket. Esto no permite a los usuarios utilizar la operación del API ListAllMyBuckets de S3, ya que dicha acción requiere el recurso "*". Esta política además no permite acciones en otros servicios, ya que otras acciones de servicio no son aplicables a los recursos de S3.

"Effect": "Allow", "NotAction": "s3:DeleteBucket", "Resource": "arn:aws:s3:::*",

En ocasiones, es posible que desee permitir el acceso a un gran número de acciones. El elemento NotAction le permite invertir la instrucción, lo que se traducirá en una lista de acciones más corta. Por ejemplo, debido al gran número de servicios de AWS, es posible que desee crear una política que permita al usuario hacer todo salvo obtener acceso a acciones de IAM.

En el siguiente ejemplo se permite a los usuarios obtener acceso a todas las acciones de todos los servicios de AWS, salvo IAM.

"Effect": "Allow", "NotAction": "iam:*", "Resource": "*"

Sea precavido al utilizar los elementos NotAction y "Effect": "Allow" en la misma instrucción o en otra instrucción de una misma política. NotAction hace coincidir todos los servicios y acciones que no se mencionan explícitamente en la lista o son aplicables al recurso especificado, lo que podría dar como resultado que se concediera a los usuarios más permisos de los que en realidad se pretendía.

NotAction con Deny

Puede utilizar el elemento NotAction en una instrucción con "Effect": "Deny" para denegar el acceso a todas los recursos de una lista, salvo las acciones especificadas en el elemento NotAction. Esta combinación no permite los elementos de la lista, pero deniega de forma explícita las acciones que no figuran en la lista. Debe seguir dando permiso las acciones que quiere permitir.

En el siguiente ejemplo condicional se deniega el acceso a las acciones no relacionadas con IAM cuando el usuario no ha iniciado la sesión con MFA. Si el usuario ha iniciado sesión con MFA, la condición "Condition" no se cumple y la instrucción "Deny" final no tiene efecto. Tenga en cuenta, sin embargo, que esto no supone conceder al usuario acceso a ninguna acción. Simplemente se deniegan explícitamente todas las acciones salvo las de IAM.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DenyAllUsersNotUsingMFA", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}} }] }

Para ver una política de ejemplo que deniegue el acceso a las acciones fuera de las regiones especificadas, excepto las acciones de servicios determinados, consulte AWS: deniega el acceso a AWS en función de la región solicitada..