Back to all operators

ForAnyValue:NotIpAddressIfExists

ForAnyValue:NotIpAddressIfExists

compares a list of IP addresses in a request to a list of CIDR strings in your policy.

To match a request, the context key must exist in the request and at least one IP address in the request must NOT match any of CIDR strings in your policy.

You can NOT use policy variables in the value of this operator.

Warning

As far as we know, ForAnyValue:NotIpAddressIfExists can never be used — no context keys exist that are an array of CIDR strings. It's documented here as an example of how it would work, but if you see it in the wild, it's probably a mistake.

ForAnyValue:NotIpAddressIfExists in an Allow Statement

Simulate in IAM Simulate
Policy ConditionRequest ContextResult
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent: null− Not Allowed Statement does not apply
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 170.64.109.25
 - 2001:4860:130F:0000:0000:09C0:876A:130B
− Not Allowed Statement does not apply
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 10.0.14.32
 - 170.64.109.25
✓ Allowed Assuming no explicit Deny elsewhere
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 10.0.14.32
 - 2001:0db8:0001:0000:0000:0ab9:C0A8:0102
✓ Allowed Assuming no explicit Deny elsewhere
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 10.0.14.32
 - 2001:0db8:0001:0000:0000:0ab9:C0A8:0102
 - 170.64.109.25
✓ Allowed Assuming no explicit Deny elsewhere

ForAnyValue:NotIpAddressIfExists in a Deny Statement

Simulate in IAM Simulate
Policy ConditionRequest ContextResult
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent: null− Not Denied May be allowed by another statement
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 170.64.109.25
 - 2001:4860:130F:0000:0000:09C0:876A:130B
− Not Denied May be allowed by another statement
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 10.0.14.32
 - 170.64.109.25
✕ Denied
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 10.0.14.32
 - 2001:0db8:0001:0000:0000:0ab9:C0A8:0102
✕ Denied
"ForAnyValue:NotIpAddressIfExists": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 10.0.14.32
 - 2001:0db8:0001:0000:0000:0ab9:C0A8:0102
 - 170.64.109.25
✕ Denied