Éléments de politique JSON IAM : NotAction - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Éléments de politique JSON IAM : NotAction

NotAction est un élément de politique avancé qui correspond de manière explicite à tout sauf à la liste spécifiée des actions. L'utilisation de NotAction peut entraîner une politique plus courte en répertoriant uniquement quelques actions qui ne devraient pas correspondre, plutôt que d'inclure une longue liste d'actions qui correspondront. Les actions spécifiées dans NotAction ne sont pas affectées par l’effet Allow ou Deny d’une déclaration de politique. En revanche, cela signifie que toutes les actions ou services applicables non répertoriés sont autorisés si vous utilisez l'effet Allow. En outre, ces actions ou services non répertoriés sont refusées si vous utilisez l'effet Deny. Lorsque vous utilisez NotAction avec l'élément Resource, vous fournissez la portée de la politique. C'est ainsi qu'AWS détermine les actions ou les services qui sont applicables. Pour plus d'informations, consultez l'exemple de politique suivant :

NotAction avec Allow

Vous pouvez utiliser l'élément NotAction dans une instruction avec "Effect": "Allow" pour offrir un accès à l'ensemble des actions dans un service AWS, sauf les actions spécifiées dans NotAction. Vous pouvez l'utiliser avec l'élément Resource pour fournir la portée de la politique, en limitant les actions autorisées aux actions pouvant être exécutées sur la ressource spécifiée.

L'exemple suivant permet aux utilisateurs d'accéder à toutes les actions Amazon S3 pouvant être exécutées sur une ressource S3 sauf pour supprimer un compartiment. Il ne permet pas aux utilisateurs d'utiliser l'opération d'API S3 ListAllMyBuckets, car cette action nécessite la ressource « * ». Cette politique n'autorise pas non plus les actions dans d'autres services, car les actions d'autres services ne sont pas applicables aux ressources S3.

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

Il peut arriver que vous souhaitiez autoriser l'accès à un grand nombre d'actions. En utilisant l'élément NotAction, vous inversez de manière efficace l'instruction, ce qui réduit la liste des actions. Par exemple, AWS disposant d'un nombre tellement important de services, il se peut que vous souhaitiez créer une politique qui permette à l'utilisateur de tout faire sauf accéder aux actions IAM.

L'exemple suivant permet aux utilisateurs d'accéder à chaque action dans tous les services AWS sauf pour IAM.

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

Soyez vigilant lorsque vous utilisez l'élément NotAction et "Effect": "Allow" dans la même instruction ou une instruction différente dans une politique. NotAction correspond à tous les services et les actions qui ne sont pas répertoriés de manière explicite ou applicables à la ressource spécifiée, et peut accorder aux utilisateurs plus d'autorisations que vous n'auriez souhaité.

NotAction avec Deny

Vous pouvez utiliser l'élément NotAction dans une instruction avec "Effect": "Deny" pour refuser un accès à l'ensemble des ressources répertoriées sauf pour les actions spécifiées dans l'élément NotAction. Cette combinaison n'autorise pas les éléments répertoriés, mais à la place elle refuse de manière explicite les actions non répertoriées. Vous devez toujours autoriser les actions que vous souhaitez autoriser.

L'exemple conditionnel suivant refuse l'accès aux actions non-IAM si l'utilisateur n'est pas connecté lorsqu'il utilise MFA. Si l'utilisateur est connecté lorsqu'il utilise MFA, le test "Condition" échoue et l'instruction "Deny" finale n'a aucun effet. Notez, toutefois, que ceci n'accorde à l'utilisateur l'accès à aucune action, mais ne fait que refuser explicitement toutes les autres actions sauf les actions IAM.

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

Pour obtenir un exemple de politique qui refuse l'accès aux actions en dehors de régions spécifiques, à l'exception des actions provenant de services spécifiques, veuillez consulter AWS : refuse l'accès à AWS en fonction de la région demandée.