Back to all operators

ForAllValues:IpAddress

ForAllValues:IpAddress

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 can be absent, but if it is present, all of the IP addresses in the request must match at least one of the CIDR strings in your policy.

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

Warning

As far as we know, ForAllValues:IpAddress 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.

ForAllValues:IpAddress in an Allow Statement

Simulate in IAM Simulate
Policy ConditionRequest ContextResult
"ForAllValues:IpAddress": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent: null✓ Allowed Assuming no explicit Deny elsewhere
"ForAllValues:IpAddress": {
"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
− Not Allowed Statement does not apply
"ForAllValues:IpAddress": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 170.64.109.25
 - 10.0.14.32
− Not Allowed Statement does not apply
"ForAllValues:IpAddress": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 170.64.109.25
✓ Allowed Assuming no explicit Deny elsewhere
"ForAllValues:IpAddress": {
"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
✓ Allowed Assuming no explicit Deny elsewhere
"ForAllValues:IpAddress": {
"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
 - 10.0.14.32
− Not Allowed Statement does not apply

ForAllValues:IpAddress in a Deny Statement

Simulate in IAM Simulate
Policy ConditionRequest ContextResult
"ForAllValues:IpAddress": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent: null✕ Denied
"ForAllValues:IpAddress": {
"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
− Not Denied May be allowed by another statement
"ForAllValues:IpAddress": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 170.64.109.25
 - 10.0.14.32
− Not Denied May be allowed by another statement
"ForAllValues:IpAddress": {
"aws:nonExistent": [
"170.64.0.0/16",
"2001:4860:4860::8888/32"
]
}
aws:nonExistent:
 - 170.64.109.25
✕ Denied
"ForAllValues:IpAddress": {
"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
✕ Denied
"ForAllValues:IpAddress": {
"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
 - 10.0.14.32
− Not Denied May be allowed by another statement