OCI Limits, IAM Policies, and Identity Domain Disaster Recovery: What We Learned From Oracle
Soft limits keep you
out of trouble, hard limits keep moving, and there is one checkbox worth
verifying today.
In the same session with Oracle's OCI identity team that I
wrote about in my last post, one of our architects asked a question I suspect a
lot of enterprise customers carry around quietly. Setting aside divestitures
and business unit boundaries, are there scale limits that should push us toward
multiple tenancies?
It is a fair question. Policy limits in particular had
shaped some of our earlier decisions. The answer, and the conversation it
opened up, covered service limits, policy design, and identity disaster
recovery. All three are worth writing down.
Soft limits and hard limits are different things
Oracle drew a clean distinction between the two.
Soft limits are bumpers. They exist to keep you from getting
yourself into trouble. A default cap on how many VMs you can launch is not
there because Oracle cannot run more. It is there because a sudden jump to a
very large number usually means something went wrong, a runaway script or a
mistake, and the next call is usually a refund request. Need more? Ask, and the
limit goes up.
Hard limits are architectural. They exist because going past
them could affect you or other tenants. The example given was vaults backed by
dedicated hardware security module capacity. A region has a finite pool, and
some code paths were written with an expected upper bound. Asking for a handful
more is routine. Asking for an unusually large number in one tenancy becomes a
real conversation.
Two things stood out to me. Oracle tracks hard limits
proactively and works with customers before they reach them. And hard limits
are not static. Oracle continually evaluates them and raises them as customers
demonstrate a need.
For perspective, Oracle noted that some customers run
thousands of VMs across dozens of regions and move enormous volumes of data
continuously. A typical enterprise application footprint, ours included, is
nowhere near the hard limits they see elsewhere.
The policy limit story is a good example
IAM policy limits used to be one of those hard limits, and
the old tenancy-wide ceiling was tight for large organizations. Customers told
Oracle they needed more. Oracle worked with them, changed how the policy engine
evaluates policies, and the old ceiling no longer applies the way it once did.
The limit is now applied along the compartment hierarchy rather than as a
single flat number for the tenancy.
The practical consequence is that placement matters. Put
everything at the root and you concentrate your budget in one place. Put
policies in the compartments where they are actually needed and the limit
largely stops being a constraint. Check the current OCI documentation for exact
numbers, because they have moved and will move again.
Oracle also shared, with the appropriate grain of salt for
anything roadmap-related, that a significant effort is underway to raise policy
limits from the hundreds into the thousands. Their suggestion was to understand
where you are and where Oracle is heading before investing heavily in reducing
policy counts on a short timeline.
The default policies are simple on purpose
If you have several Fusion pods, you have probably noticed
that each identity domain arrives with its own set of policies at the root of
the tenancy. Multiply that across many domains and the root gets crowded
quickly.
Oracle was direct about why those policies look the way they
do. They are intentionally simple, typically one group, one resource type, one
location per statement. That makes them easy to read and reason about, and they
were designed with typical customers in mind rather than those running a large
number of identity domains.
Two things follow from that:
·
They can be consolidated. Multiple groups and
resource types can be combined into fewer statements while still expressing
least privilege. Our team has worked through this. It is very doable, though it
takes care.
·
Most of them do not have to live at the root. A
small number of tenancy-level permissions do, but most resources, and the
policies governing them, can live in compartments.
Oracle offered two perspectives that I think are both right.
First, simple policies have value. If they work for you, do not rush to
optimize them away just to reduce a count, especially with limits increasing.
Second, from a security standpoint, a crowded root is not ideal. The more that
lives at the root, the more there is to watch. Our own cleanup effort is aimed
at the second point without giving up the readability of the first.
Oracle also offered to walk through the consolidation with
us, which I appreciated.
Identity domain disaster recovery: go check the box
This is the part of the session I would most encourage other
customers to act on.
A tenancy's Default identity domain is homed in the
tenancy's home region. If disaster recovery is enabled, and a region-level
disaster takes the home region down, Oracle is responsible for bringing that
domain up in the paired disaster recovery region so you can keep managing your
resources elsewhere.
The details matter:
·
The domain comes back with the same URL and
hostname.
·
The IP address may change.
·
Client IDs, secrets, and the applications
relying on the domain continue to work.
·
It does not cost anything extra.
·
It only happens if the option is enabled. If it
is not, Oracle cannot move the domain.
That last point is why I say go check. It takes minutes to
confirm, and you do not want to find out during an incident.
HA and DR are not the same thing
Oracle made a distinction that is easy to blur. Within a
region, identity domains run as highly available microservices. Disaster
recovery to another region is something different, reserved for serious,
region-level events expected to last hours or days.
A 20 or 30 minute disruption will usually not trigger a
regional failover, because relocating a domain takes time and would likely take
longer than the disruption itself. That is a sensible trade-off, and it should
shape your expectations and your runbooks. Identity DR protects you from
catastrophe, not from every hiccup.
Make sure identity lives where your workloads live
One more design point came out of this. Identity domains
serve the workloads that depend on them. If a domain is homed in a different
region from the applications it supports, which happened with some older IDCS
provisioning, an outage in the identity region can affect production running in
a perfectly healthy region. Oracle acknowledged the pattern and agreed it is
something to solve for as part of a longer-term identity plan.
My own addition, not something Oracle said: if you have
firewall rules or allowlists tied to IP addresses for identity endpoints,
revisit them. Oracle's DR commitment is built around the hostname. Build around
the hostname too.
A short checklist
1.
Confirm disaster recovery is enabled for the
identity domains you depend on.
2.
Confirm each domain's home region aligns with
the region where the workloads it serves run.
3.
Replace IP-based dependencies on identity
endpoints with hostname-based ones.
4.
Inventory the policies at your root. Separate
the few that truly must be there from those that can move to compartments.
5.
Consolidate where it improves clarity, not only
to reduce a count, and watch Oracle's limit increases before committing to a
large reduction effort.
6.
If you think you are approaching a hard limit,
talk to Oracle early. They would rather hear from you before you hit it.
They do not stand still
Near the end of the session, someone on our side observed
that there always seems to be something new coming in OCI. Oracle's reply was
simple: they don't stand still.
That feels like the right note to end on. Several
constraints that shaped enterprise OCI designs a few years ago have already
been lifted, and more are on the way. Design for today's limits, but revisit
the assumptions behind your architecture regularly. Some of the reasons you
split things apart may not apply anymore.
Based on a
working session between our team and Oracle's OCI identity team in September
2026, combined with Oracle's public documentation. Product behavior, limits,
and licensing change over time. Confirm specifics against your own environment
and your Oracle account team. Views are my own.