<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lwandile Majola</title>
    <description>The latest articles on DEV Community by Lwandile Majola (@hiltonj).</description>
    <link>https://dev.to/hiltonj</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1922098%2F7958ef1d-bde6-4e5a-984d-2d1f010a283b.jpeg</url>
      <title>DEV Community: Lwandile Majola</title>
      <link>https://dev.to/hiltonj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hiltonj"/>
    <language>en</language>
    <item>
      <title>Understanding IP Management in Oracle Cloud Infrastructure (OCI)</title>
      <dc:creator>Lwandile Majola</dc:creator>
      <pubDate>Thu, 26 Feb 2026 00:01:10 +0000</pubDate>
      <link>https://dev.to/hiltonj/understanding-ip-management-in-oracle-cloud-infrastructure-oci-1ili</link>
      <guid>https://dev.to/hiltonj/understanding-ip-management-in-oracle-cloud-infrastructure-oci-1ili</guid>
      <description>&lt;p&gt;Navigating the complexities of cloud networking is crucial for building robust and scalable applications. In Oracle Cloud Infrastructure (OCI), effective IP address management forms the backbone of your network architecture. This guide will demystify OCI's IP address categories, explore their use cases, and introduce advanced concepts like Reserved Public IPs, Bring Your Own IP (BYOIP), and Public IP Pools. &lt;/p&gt;




&lt;h2&gt;
  
  
  🏛️The Two Pillars: Private and Public IP Addresses
&lt;/h2&gt;

&lt;p&gt;OCI categorizes IP addresses into two primary types, each serving distinct communication needs. &lt;/p&gt;

&lt;h4&gt;
  
  
  🔒Private IP Addresses
&lt;/h4&gt;

&lt;p&gt;These are used for internal communication within your OCI network and with connected on-premises environments. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internal Communication&lt;/strong&gt;: Instances within the same Virtual Cloud Network (VCN) communicate seamlessly using private IPs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VCN Peering&lt;/strong&gt;: Connecting multiple VCNs, whether in the same or different regions, relies on private IP routing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On-premises Connectivity&lt;/strong&gt;: Secure connections to your data centers via the Dynamic Routing Gateway (DRG).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instance Allocation&lt;/strong&gt;: Each instance receives at least one primary private IP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VNIC Capacity&lt;/strong&gt;: Every Virtual Network Interface Card (VNIC) includes one primary private IP address and supports up to 32 secondary private IP addresses, totaling 33 private IPs per VNIC.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🌍Public IP Addresses
&lt;/h4&gt;

&lt;p&gt;These are designed for internet accessibility, allowing your resources to communicate with the outside world. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internet Reachability&lt;/strong&gt;: Public IPs are reachable from the internet, assigned to a private IP object on your OCI resource. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prerequisites&lt;/strong&gt;: For a public IP to function, your VCN requires an Internet Gateway, and the associated public subnet must have correctly configured Route Tables and Security Lists. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: Resources can be assigned multiple public IPs across single or multiple VNICs. &lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⏳Types of Public IP Addresses: Ephemeral vs. Reserved
&lt;/h2&gt;

&lt;p&gt;OCI offers two types of public IP addresses to cater to different operational requirements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpc6xr6ccl9lb1k6ye22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpc6xr6ccl9lb1k6ye22.png" alt="Ephemeral vs Reserved IP comparison Table" width="780" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reserved Public IP Addresses in Detail&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Creation&lt;/strong&gt;: You create them individually. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limits&lt;/strong&gt;: Up to 50 Reserved Public IPs are allowed per region. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assignment&lt;/strong&gt;: Assigned to resources after creation. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unassignment&lt;/strong&gt;: When unassigned, they return to your tenancy pool for future use. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope&lt;/strong&gt;: These are regional resources. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration&lt;/strong&gt;: Specify a name, compartment, and source during creation. &lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚢Bring Your Own IP (BYOIP): Extending Your Network into OCI
&lt;/h2&gt;

&lt;p&gt;BYOIP allows you to import your existing public IPv4 CIDR blocks or IPv6 prefixes into OCI, providing seamless network continuity. &lt;/p&gt;

&lt;h4&gt;
  
  
  📋Requirements &amp;amp; Limits
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ownership Verification&lt;/strong&gt;: You must demonstrate ownership of the public prefix through a supported Regional Internet Registry (RIR). &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IPv4 Size&lt;/strong&gt;: Minimum /24, Maximum /8. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IPv6 Size&lt;/strong&gt;: /48 or larger. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Management&lt;/strong&gt;: BYOIP addresses are managed through IP Pools. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ✨BYOIP Benefits
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution Continuity&lt;/strong&gt;: Preserve existing IP addresses hard-coded in devices or applications during migration. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IP Reputation&lt;/strong&gt;: Maintain your established IP reputation with external services. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IP Pool Management&lt;/strong&gt;: Group your imported IP addresses into pools for simplified resource deployment (e.g., Load Balancers). &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  📋BYOIP Process Overview
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsuuu2fc8jdw38u21jzpf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsuuu2fc8jdw38u21jzpf.png" alt="BYOIP process diagram flow" width="800" height="662"&gt;&lt;/a&gt;&lt;br&gt;
The process involves OCI verifying your ownership with an RIR.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Request Import&lt;/strong&gt;: Initiate the import of your public IPv4/IPv6 prefix to Oracle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Token Issuance&lt;/strong&gt;: Oracle provides a unique verification token. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RIR Update&lt;/strong&gt;: Add the verification token to your RIR records (typically takes ~1 day).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create ROA&lt;/strong&gt;: Create a Route Origin Authorization (ROA) with your RIR. The ROA allows Oracle to advertise your CIDR block.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finish Import&lt;/strong&gt;: Request Oracle to complete the import. (typically takes up to 10 business days, while Oracle verifies ownership with the RIR).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provision Addresses&lt;/strong&gt;: Oracle provisions the addresses to a specified compartment in your tenancy.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🏊Public IP Pools: Structured IP Management
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Public IP Pool&lt;/strong&gt; is a dedicated set of IPv4 CIDR blocks allocated exclusively to your tenancy, offering granular control over IP assignments. &lt;/p&gt;

&lt;h4&gt;
  
  
  ⚙️Core Characteristics
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Definition&lt;/strong&gt;: A collection of IPv4 CIDR blocks. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source&lt;/strong&gt;: Can consist of all or part of a BYOIP CIDR block. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exclusivity&lt;/strong&gt;: These pools are unique to your specific tenancy. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sizing&lt;/strong&gt;: Blocks within a pool range from a minimum /28 to a maximum /24. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restriction&lt;/strong&gt;: Public IP Pool functionality is currently limited to IPv4 addresses. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🛠️Benefits &amp;amp; Usage
&lt;/h4&gt;

&lt;p&gt;Public IP Pools provide a structured way to manage and allocate public IP addresses to your cloud resources. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Allocation Source&lt;/strong&gt;: Use the pool as the source for IP allocation when deploying: &lt;strong&gt;NAT Gateways&lt;/strong&gt;, &lt;strong&gt;Load Balancers&lt;/strong&gt;, &lt;strong&gt;Compute Instances&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reservation&lt;/strong&gt;: Create Reserved Public IPs directly from the pool and attach them to your resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct Launch&lt;/strong&gt;: Launch resources with IPs directly sourced from the pool.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯Conclusion
&lt;/h2&gt;

&lt;p&gt;Effective IP address management is a foundational skill for anyone working with Oracle Cloud Infrastructure. By understanding the distinction between private and public IPs, leveraging Reserved Public IPs for persistence, and exploring advanced options like BYOIP and Public IP Pools, you can design more resilient, flexible, and secure network architectures in OCI. Mastering these concepts empowers you to optimize your cloud environment for performance and operational continuity. &lt;/p&gt;

</description>
      <category>oci</category>
      <category>cloudnetworking</category>
      <category>ipmanagement</category>
    </item>
    <item>
      <title>OCI Networking Explained: Virtual Cloud Networks (VCN) Deep Dive</title>
      <dc:creator>Lwandile Majola</dc:creator>
      <pubDate>Mon, 23 Feb 2026 13:41:13 +0000</pubDate>
      <link>https://dev.to/hiltonj/oci-networking-explained-virtual-cloud-networks-vcn-deep-dive-4fha</link>
      <guid>https://dev.to/hiltonj/oci-networking-explained-virtual-cloud-networks-vcn-deep-dive-4fha</guid>
      <description>&lt;p&gt;When I started learning networking in Oracle Cloud Infrastructure, one thing became obvious very quickly: If IAM controls who can access resources, networking controls how everything communicates.&lt;/p&gt;

&lt;p&gt;In this article, I’m breaking down &lt;strong&gt;Virtual Cloud Networks&lt;/strong&gt; (VCN) properly. Not just definitions, but how it actually works underneath.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Part 1: CIDR Blocks and IP Notation (The Foundation)
&lt;/h2&gt;

&lt;p&gt;Before we touch VCNs, we need to understand CIDR.&lt;/p&gt;

&lt;h4&gt;
  
  
  What is CIDR?
&lt;/h4&gt;

&lt;p&gt;CIDR stands for Classless Inter-Domain Routing.&lt;/p&gt;

&lt;p&gt;Format: A.B.C.D/x&lt;/p&gt;

&lt;p&gt;Example: 10.0.0.0/16&lt;/p&gt;

&lt;p&gt;/x = network portion&lt;br&gt;
Remaining bits = host portion&lt;/p&gt;

&lt;p&gt;An IPv4 address has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4 octets&lt;/li&gt;
&lt;li&gt;8 bits each&lt;/li&gt;
&lt;li&gt;32 bits total&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Rule of Size&lt;/strong&gt;&lt;br&gt;
The smaller the prefix, the larger the network.&lt;/p&gt;

&lt;p&gt;Formula to calculate total IP addresses:&lt;br&gt;
2^(32 - x)&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;For 10.0.0.0/16

2^(32 - 16) = 2^16 = 65,536 IP addresses
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Binary Conversion&lt;/strong&gt;&lt;br&gt;
Each octet is based on powers of 2:&lt;/p&gt;

&lt;p&gt;| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.0.2 in binary:

11000000.10101000.00000000.00000010
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You don’t need to convert manually every day, but understanding this makes subnetting much easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ Part 2: What is a VCN?
&lt;/h2&gt;

&lt;p&gt;A Virtual Cloud Network (VCN) in OCI is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software-defined&lt;/li&gt;
&lt;li&gt;Private&lt;/li&gt;
&lt;li&gt;Regional&lt;/li&gt;
&lt;li&gt;Highly available&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It lives inside a single OCI region but can span multiple Availability Domains. Think of it as your own private data center network inside Oracle Cloud.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffrt4meio393y3j0v217f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffrt4meio393y3j0v217f.png" alt="VCN hihg level diagram" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  CIDR Limits
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Prefix must be between /16 and /30&lt;/li&gt;
&lt;li&gt;A VCN can have up to 16 IPv4 and IPv6 CIDR blocks&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Reserved IPs in Every Subnet
&lt;/h4&gt;

&lt;p&gt;Oracle reserves 3 IP addresses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First IP → Network address&lt;/li&gt;
&lt;li&gt;Second IP → Default gateway&lt;/li&gt;
&lt;li&gt;Last IP → Broadcast address&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can’t assign these to instances.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧱 Part 3: Subnets
&lt;/h2&gt;

&lt;p&gt;A VCN is divided into subnets.&lt;/p&gt;

&lt;p&gt;Each subnet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is a contiguous range of IPs&lt;/li&gt;
&lt;li&gt;Cannot overlap with other subnets in the same VCN&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Subnet Scope
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;AD-Specific&lt;/strong&gt;&lt;br&gt;
Exists in one Availability Domain&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regional (Recommended)&lt;/strong&gt;&lt;br&gt;
Spans all ADs for high availability&lt;/p&gt;
&lt;h4&gt;
  
  
  Public vs Private Subnets
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fligk6kjgbkrokqm1bx1e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fligk6kjgbkrokqm1bx1e.png" alt="Private and Public subnet" width="611" height="481"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| Feature           | Public         | Private             |
| ----------------- | -------------- | ------------------- |
| Public IP         | Yes            | No                  |
| Internet Access   | Direct         | Via NAT             |
| Use Case          | Web servers    | Databases, backend  |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Important: You cannot change a subnet from public to private later.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛣️ Part 4: Route Tables
&lt;/h2&gt;

&lt;p&gt;Route Tables control where traffic goes.&lt;/p&gt;

&lt;p&gt;Every subnet must be associated with exactly one Route Table.&lt;/p&gt;

&lt;p&gt;A Route Table rule contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Destination CIDR&lt;/li&gt;
&lt;li&gt;Target (next hop)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| Destination CIDR    | Route Target                    |
| ------------------- | ------------------------------- |
| 0.0.0.0/0           | Internet Gateway                |
| 192.168.0.0/16      | Dynamic Routing Gateway (DRG)   |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Longest Prefix Match (LPM)
&lt;/h4&gt;

&lt;p&gt;If multiple routes match a destination, the most specific one wins.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
For a packet destined to 192.168.20.19, if the table has 192.168.0.0/16 and 192.168.20.16/28, the /28 route is chosen because it is more specific (longer prefix).&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Gateways Explained
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Internet Gateway (IGW)
&lt;/h4&gt;

&lt;p&gt;Provides bi-directional internet access.&lt;/p&gt;

&lt;p&gt;Requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public subnet&lt;/li&gt;
&lt;li&gt;Public IP&lt;/li&gt;
&lt;li&gt;Security rules allowing traffic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only one IGW per VCN.&lt;/p&gt;

&lt;h4&gt;
  
  
  NAT Gateway
&lt;/h4&gt;

&lt;p&gt;Allows private subnet instances to access the internet without a public IP.&lt;/p&gt;

&lt;p&gt;Characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Outbound only&lt;/li&gt;
&lt;li&gt;Internet cannot initiate a connection&lt;/li&gt;
&lt;li&gt;Supports TCP, UDP, ICMP&lt;/li&gt;
&lt;li&gt;Up to 20,000 concurrent connections&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Service Gateway
&lt;/h4&gt;

&lt;p&gt;Allows private access to Oracle services over Oracle’s internal backbone.&lt;/p&gt;

&lt;p&gt;Instead of hardcoding IP ranges, OCI uses Service CIDR Labels like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All region services&lt;/li&gt;
&lt;li&gt;Object Storage specific label&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This removes manual maintenance when Oracle expands IP ranges.&lt;/p&gt;

&lt;h4&gt;
  
  
  Dynamic Routing Gateway (DRG)
&lt;/h4&gt;

&lt;p&gt;Used to connect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On-prem data centers&lt;/li&gt;
&lt;li&gt;Other VCNs in different regions&lt;/li&gt;
&lt;li&gt;Cross-region networks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is how hybrid cloud connectivity is built securely.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Part 5: Security Layers
&lt;/h2&gt;

&lt;p&gt;OCI networking uses layered security.&lt;/p&gt;

&lt;h4&gt;
  
  
  Security Lists (SL)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Applied at subnet level&lt;/li&gt;
&lt;li&gt;Applies to all instances in subnet&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Network Security Groups (NSG)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Applied at VNIC level&lt;/li&gt;
&lt;li&gt;Granular, resource-specific control&lt;/li&gt;
&lt;li&gt;Can reference other NSGs&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Stateful vs Stateless
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Stateful (Default):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracks connections&lt;/li&gt;
&lt;li&gt;Response traffic is automatically allowed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stateless:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No connection tracking&lt;/li&gt;
&lt;li&gt;Requires manual response rules&lt;/li&gt;
&lt;li&gt;Useful for high-volume traffic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Union Rule&lt;/strong&gt;&lt;br&gt;
If both SLs and NSGs are used, traffic is allowed if any rule in Subnet Security List or attached NSG permits it.&lt;/p&gt;

&lt;p&gt;This is OR logic, not AND.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏘️ Simple Analogy
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;VCN → Entire housing estate&lt;/li&gt;
&lt;li&gt;Subnet → A block inside the estate&lt;/li&gt;
&lt;li&gt;Route Table → GPS directing traffic&lt;/li&gt;
&lt;li&gt;Internet Gateway → Exit gate&lt;/li&gt;
&lt;li&gt;Security List → Guard at block entrance&lt;/li&gt;
&lt;li&gt;NSG → Guard at a specific house&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If IAM is about identity, VCN is about connectivity.&lt;/p&gt;

&lt;p&gt;Understanding CIDR, route tables, gateways (IGW, NAT, Service Gateway, DRG), and layered security is what separates “cloud user” from “cloud engineer”.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔔 What’s Coming Next
&lt;/h2&gt;

&lt;p&gt;In the next part of this OCI series, I’ll break down IP Management in OCI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Private vs Public IP&lt;/li&gt;
&lt;li&gt;Ephemeral vs Reserved&lt;/li&gt;
&lt;li&gt;BYOIP&lt;/li&gt;
&lt;li&gt;Public IP Pools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because networking doesn’t stop at connectivity, it continues with smart IP design. And that’s where real architecture begins.&lt;/p&gt;

&lt;p&gt;Stay tuned.&lt;/p&gt;

</description>
      <category>oci</category>
      <category>networking</category>
      <category>cloud</category>
      <category>oracle</category>
    </item>
    <item>
      <title>OCI IAM Policies Explained: How Authorization Actually Works</title>
      <dc:creator>Lwandile Majola</dc:creator>
      <pubDate>Mon, 19 Jan 2026 11:10:21 +0000</pubDate>
      <link>https://dev.to/hiltonj/oci-iam-policies-explained-how-authorization-actually-works-502i</link>
      <guid>https://dev.to/hiltonj/oci-iam-policies-explained-how-authorization-actually-works-502i</guid>
      <description>&lt;p&gt;In &lt;strong&gt;Part 1&lt;/strong&gt;, we looked at how &lt;strong&gt;Oracle Cloud Infrastructure&lt;/strong&gt; is structured physically and logically.&lt;/p&gt;

&lt;p&gt;Now comes the part where OCI usually starts to feel confusing in practice:&lt;br&gt;
&lt;strong&gt;IAM policies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Policies are where OCI stops being theoretical and starts enforcing reality.&lt;br&gt;
If something doesn’t work in OCI, nine times out of ten, it’s a policy issue.&lt;/p&gt;

&lt;p&gt;Let’s break them down properly.&lt;/p&gt;
&lt;h2&gt;
  
  
  🧠 The One Rule to Remember
&lt;/h2&gt;

&lt;p&gt;OCI IAM follows a strict rule:&lt;br&gt;
   &lt;strong&gt;Everything is denied by default&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There are no implicit permissions.&lt;br&gt;
No “but I’m an admin” shortcuts.&lt;br&gt;
If a policy doesn’t allow it, it won’t happen.&lt;/p&gt;

&lt;p&gt;This makes OCI predictable and secure, but only if you understand how policies are evaluated.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔐 What a Policy Really Does
&lt;/h2&gt;

&lt;p&gt;A policy answers four questions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Who → can do what → on which resources → where
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If any part is missing or wrong, access is denied.&lt;/p&gt;

&lt;p&gt;Policies are not attached to users.&lt;br&gt;
They are attached to &lt;strong&gt;groups&lt;/strong&gt; and &lt;strong&gt;scoped to compartments or the tenancy&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  🧱 Policy Syntax (The Core Pattern)
&lt;/h2&gt;

&lt;p&gt;Every OCI policy follows the same structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Allow &amp;lt;Subject&amp;gt; to &amp;lt;Verb&amp;gt; &amp;lt;Resource-Type&amp;gt; in &amp;lt;Location&amp;gt; where &amp;lt;Condition&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once this clicks, policies become much easier to reason about.&lt;/p&gt;

&lt;h2&gt;
  
  
  👥 Subject: Who Is Allowed?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;subject&lt;/strong&gt; defines &lt;em&gt;who&lt;/em&gt; gets the permission.&lt;/p&gt;

&lt;p&gt;Common options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A group (most common)&lt;/li&gt;
&lt;li&gt;A dynamic group (for compute instances)&lt;/li&gt;
&lt;li&gt;any-user (rare, dangerous, usually avoided)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Allow group NetworkAdmins to manage virtual-network-family in compartment Prod
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Best practice:&lt;br&gt;
&lt;code&gt;Always grant permissions to groups, never individual users.&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🧩 Verbs: What Actions Are Allowed?
&lt;/h2&gt;

&lt;p&gt;OCI has &lt;strong&gt;four&lt;/strong&gt; verbs, and they are cumulative.&lt;/p&gt;

&lt;p&gt;🔍 &lt;strong&gt;Inspect&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;List resources&lt;/li&gt;
&lt;li&gt;No sensitive data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📖 &lt;strong&gt;Read&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inspect +&lt;/li&gt;
&lt;li&gt;View metadata and configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠️ &lt;strong&gt;Use&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read +&lt;/li&gt;
&lt;li&gt;Interact with existing resources&lt;/li&gt;
&lt;li&gt;Cannot create or delete&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🧨 &lt;strong&gt;Manage&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full control&lt;/li&gt;
&lt;li&gt;Create, update, delete&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If someone can’t do something, check the verb first.&lt;/p&gt;
&lt;h2&gt;
  
  
  📦 Resource Types: What Is Being Accessed?
&lt;/h2&gt;

&lt;p&gt;OCI groups related resources into &lt;strong&gt;families&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;instance-family&lt;/li&gt;
&lt;li&gt;virtual-network-family&lt;/li&gt;
&lt;li&gt;object-family&lt;/li&gt;
&lt;li&gt;database-family&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using families avoids writing dozens of policies.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Allow group StorageAdmins to manage object-family in compartment Data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📍 Location: Where the Policy Applies
&lt;/h2&gt;

&lt;p&gt;Policies are scoped to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;tenancy&lt;/strong&gt; (root compartment), or&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;specific compartment&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Allow group DevOps to use instance-family in compartment Dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Policies attached to a parent compartment are inherited by children&lt;/li&gt;
&lt;li&gt;OCI evaluates policies top-down&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Best practice:&lt;br&gt;
&lt;code&gt;Attach policies at the lowest possible level.&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🎯 Conditions: Making Policies Precise
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;where&lt;/code&gt; clause is optional, but powerful.&lt;/p&gt;

&lt;p&gt;It lets you restrict access using conditions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compartment name&lt;/li&gt;
&lt;li&gt;Resource OCID&lt;/li&gt;
&lt;li&gt;Network source&lt;/li&gt;
&lt;li&gt;Requesting group&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Allow group Admins to manage all-resources in tenancy
where request.networkSource.name = 'CorpNet'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means:&lt;br&gt;
Even admins must come from a trusted network.&lt;/p&gt;
&lt;h2&gt;
  
  
  🤖 Dynamic Groups (Policies for Compute)
&lt;/h2&gt;

&lt;p&gt;Dynamic groups are how OCI grants permissions to &lt;strong&gt;instances&lt;/strong&gt;, not people.&lt;/p&gt;

&lt;p&gt;Example use case:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A compute instance needs access to Object Storage&lt;/li&gt;
&lt;li&gt;No API keys&lt;/li&gt;
&lt;li&gt;No stored credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You define:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A &lt;strong&gt;dynamic group&lt;/strong&gt; based on instance rules&lt;/li&gt;
&lt;li&gt;A policy granting permissions to that dynamic group&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Allow dynamic-group AppServers to read object-family in compartment Data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how &lt;strong&gt;Instance Principals&lt;/strong&gt; work securely.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 Common Policy Mistakes (Real-World Pain)
&lt;/h2&gt;

&lt;p&gt;Here’s where people usually get stuck:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Granting read when use is required&lt;/li&gt;
&lt;li&gt;Writing policies at tenancy level “just to test”&lt;/li&gt;
&lt;li&gt;Forgetting policy inheritance&lt;/li&gt;
&lt;li&gt;Using the wrong compartment&lt;/li&gt;
&lt;li&gt;Mixing identity domain admin roles with OCI resource access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quick check when something fails:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Is the user in the right group?&lt;/li&gt;
&lt;li&gt;Is the policy in the correct compartment?&lt;/li&gt;
&lt;li&gt;Is the verb strong enough?&lt;/li&gt;
&lt;li&gt;Is a condition blocking access?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🧠 How OCI Evaluates Policies (Mental Model)
&lt;/h2&gt;

&lt;p&gt;OCI evaluates policies like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start at the resource’s compartment&lt;/li&gt;
&lt;li&gt;Walk up the compartment hierarchy&lt;/li&gt;
&lt;li&gt;Apply all matching policies&lt;/li&gt;
&lt;li&gt;If &lt;strong&gt;any policy allows&lt;/strong&gt;, access is granted&lt;/li&gt;
&lt;li&gt;If none allow, access is denied&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are no explicit deny policies.&lt;br&gt;
Silence equals denial.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧭 Best Practices That Actually Scale
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Design compartments first&lt;/li&gt;
&lt;li&gt;Map roles to groups&lt;/li&gt;
&lt;li&gt;Write policies per role, not per service&lt;/li&gt;
&lt;li&gt;Use manage sparingly&lt;/li&gt;
&lt;li&gt;Restrict admin access with network sources&lt;/li&gt;
&lt;li&gt;Review policies regularly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good IAM design feels boring.&lt;br&gt;
That’s how you know it’s working.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Final Takeaway
&lt;/h2&gt;

&lt;p&gt;Policies are not configuration details.&lt;br&gt;
They are &lt;strong&gt;your security model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Once you understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subjects&lt;/li&gt;
&lt;li&gt;Verbs&lt;/li&gt;
&lt;li&gt;Resource families&lt;/li&gt;
&lt;li&gt;Compartments&lt;/li&gt;
&lt;li&gt;Conditions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OCI IAM stops feeling strict and starts feeling precise.&lt;/p&gt;

&lt;p&gt;That’s when you move from “why is this denied?”&lt;br&gt;
to “I know exactly why this is allowed.”&lt;/p&gt;




&lt;h2&gt;
  
  
  🔔 What’s Coming Next
&lt;/h2&gt;

&lt;p&gt;In the next article, we’ll shift focus to &lt;strong&gt;OCI networking&lt;/strong&gt;, starting with &lt;strong&gt;Virtual Cloud Networks&lt;/strong&gt; (&lt;strong&gt;VCNs&lt;/strong&gt;).&lt;br&gt;
We’ll break down how VCNs, subnets, route tables, gateways, and security lists fit together, and how networking decisions shape everything built on top of OCI.&lt;/p&gt;

&lt;p&gt;Stay tuned.&lt;/p&gt;

</description>
      <category>oci</category>
      <category>iam</category>
      <category>cloud</category>
      <category>security</category>
    </item>
    <item>
      <title>OCI Architecture Foundations: How Regions, Domains, and IAM Actually Fit Together</title>
      <dc:creator>Lwandile Majola</dc:creator>
      <pubDate>Mon, 19 Jan 2026 00:51:58 +0000</pubDate>
      <link>https://dev.to/hiltonj/oci-architecture-foundations-how-regions-domains-and-iam-actually-fit-together-jgj</link>
      <guid>https://dev.to/hiltonj/oci-architecture-foundations-how-regions-domains-and-iam-actually-fit-together-jgj</guid>
      <description>&lt;p&gt;When people first learn &lt;strong&gt;Oracle Cloud Infrastructure&lt;/strong&gt;, they usually memorize terms: Regions, Availability Domains, Fault Domains, Identity Domains, Compartments, Policies.&lt;/p&gt;

&lt;p&gt;That works for exams.&lt;br&gt;
It doesn’t really help when you’re designing a real system.&lt;/p&gt;

&lt;p&gt;This article connects the dots so OCI feels like architecture, not just terminology.&lt;/p&gt;
&lt;h2&gt;
  
  
  🧠 The Core Idea Behind OCI
&lt;/h2&gt;

&lt;p&gt;OCI is built around one assumption:&lt;br&gt;
 &lt;strong&gt;Failure is normal. Design for it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That idea shows up everywhere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How Oracle designs data centers&lt;/li&gt;
&lt;li&gt;In how workloads are deployed&lt;/li&gt;
&lt;li&gt;In how access is controlled&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OCI’s foundation has two layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Physical resilience&lt;/strong&gt;: where workloads run&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logical control&lt;/strong&gt;: who can access what&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s walk through both. &lt;/p&gt;
&lt;h2&gt;
  
  
  🌍 Regions
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Region&lt;/strong&gt; is a geographic location where OCI operates cloud infrastructure.&lt;/p&gt;

&lt;p&gt;You choose regions based on: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latency (closer to users is better) &lt;/li&gt;
&lt;li&gt;Legal and data residency requirements &lt;/li&gt;
&lt;li&gt;Service availability &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Regions are isolated from each other. &lt;br&gt;
If an entire region goes down, others are unaffected. &lt;/p&gt;

&lt;p&gt;This isolation is what makes disaster recovery possible.  &lt;/p&gt;
&lt;h2&gt;
  
  
  🏢 Availability Domains (ADs)
&lt;/h2&gt;

&lt;p&gt;Availability Domains are &lt;strong&gt;physically separate data centers&lt;/strong&gt; inside a region. &lt;/p&gt;

&lt;p&gt;Each AD:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has its own power, cooling, and hardware&lt;/li&gt;
&lt;li&gt;Does not share physical infrastructure with other ADs&lt;/li&gt;
&lt;li&gt;Is connected to other ADs via low-latency links&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If one AD goes down, workloads in other ADs continue operating.&lt;/p&gt;

&lt;p&gt;Not every region has multiple ADs, which directly impacts how you design for high availability.&lt;/p&gt;
&lt;h2&gt;
  
  
  🧩 Fault Domains (FDs)
&lt;/h2&gt;

&lt;p&gt;Fault Domains exist &lt;strong&gt;inside an Availability Domain.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Fault Domain is a logical grouping of hardware within an AD.&lt;/p&gt;

&lt;p&gt;Key points: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each AD has three &lt;strong&gt;Fault Domains&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Hardware like racks, power units, and cooling are isolated&lt;/li&gt;
&lt;li&gt;OCI performs maintenance in only one FD at a time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you place multiple instances in different FDs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A single hardware failure won’t take everything down&lt;/li&gt;
&lt;li&gt;Planned maintenance won’t affect all instances at once&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;FDs protect you from &lt;strong&gt;local hardware failures&lt;/strong&gt;, ADs protect you from &lt;strong&gt;data center failures&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  🛡️ Designing for High Availability
&lt;/h2&gt;

&lt;p&gt;A simple, practical strategy: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Within one AD&lt;/strong&gt; 
Deploy the same workload across different Fault Domains &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Across ADs&lt;/strong&gt; 
Replicate workloads to protect against full data center failure &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Across Regions&lt;/strong&gt; 
Use region pairs for disaster recovery &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rule of thumb: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FDs → hardware failure &lt;/li&gt;
&lt;li&gt;ADs → data center failure &lt;/li&gt;
&lt;li&gt;Regions → disaster recovery &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OCI provides you with the tools, but you decide how resilient your system will be.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔐 OCI Identity and Access Management (IAM)
&lt;/h2&gt;

&lt;p&gt;Once workloads are running, the next question is obvious: &lt;br&gt;
  Who is allowed to touch this? &lt;/p&gt;

&lt;p&gt;That’s where OCI Identity and Access Management (IAM) comes in. &lt;/p&gt;

&lt;p&gt;IAM has two responsibilities: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Authentication&lt;/strong&gt;: who you are (proving identity)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authorization&lt;/strong&gt;: what you’re allowed to do (enforcing permissions)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  👤 Authentication (AuthN)
&lt;/h2&gt;

&lt;p&gt;Authentication verifies who you are before granting access.&lt;/p&gt;

&lt;p&gt;OCI supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Username and password&lt;/li&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;OAuth 2.0 tokens&lt;/li&gt;
&lt;li&gt;Multi-Factor Authentication (MFA)&lt;/li&gt;
&lt;li&gt;Instance Principals (no stored credentials)&lt;/li&gt;
&lt;li&gt;Federation using SAML 2.0 with external identity providers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is secure, verifiable access without exposing secrets. &lt;/p&gt;
&lt;h2&gt;
  
  
  🪪 Authorization (AuthZ): Policies Decide Access
&lt;/h2&gt;

&lt;p&gt;OCI uses &lt;strong&gt;deny-by-default&lt;/strong&gt; authorization. &lt;/p&gt;

&lt;p&gt;Nothing is allowed unless a policy explicitly permits it. &lt;/p&gt;

&lt;p&gt;The logic is always:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Who → can do what → on which resources → in which location 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Policies are the enforcement layer that makes IAM predictable and auditable. &lt;/p&gt;

&lt;h2&gt;
  
  
  🧑‍🤝‍🧑 Identity Domains
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;Identity Domain&lt;/strong&gt; is a logical container for identities. &lt;/p&gt;

&lt;p&gt;It holds: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users &lt;/li&gt;
&lt;li&gt;Groups &lt;/li&gt;
&lt;li&gt;Applications &lt;/li&gt;
&lt;li&gt;Federation settings &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of identity domains the same way you think of compartments, but for people instead of resources. &lt;/p&gt;

&lt;p&gt;High-level view:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OCI Tenancy 
└─ Compartment 
    └─ Identity Domain 
        └─ Users / Groups / Applications 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧩 The Default Identity Domain
&lt;/h2&gt;

&lt;p&gt;Every OCI tenancy comes with a &lt;strong&gt;Default Identity Domain&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Important facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It cannot be deleted or disabled &lt;/li&gt;
&lt;li&gt;It’s replicated to all subscribed regions &lt;/li&gt;
&lt;li&gt;It always appears on the sign-in page &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It includes: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One user, the creator of the tenancy&lt;/li&gt;
&lt;li&gt;An Administrators group with full tenancy access &lt;/li&gt;
&lt;li&gt;An All Domain Users group &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This domain is typically used for managing &lt;strong&gt;OCI infrastructure access&lt;/strong&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Why Create Additional Identity Domains?
&lt;/h2&gt;

&lt;p&gt;Multiple identity domains are about isolation and control. &lt;/p&gt;

&lt;p&gt;Common use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separate Production and Development access &lt;/li&gt;
&lt;li&gt;Isolate partner access &lt;/li&gt;
&lt;li&gt;Manage consumer identities for public applications &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each domain can have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Its own admins&lt;/li&gt;
&lt;li&gt;Its own security policies&lt;/li&gt;
&lt;li&gt;Its own user population&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This prevents one team’s mistakes from impacting another. &lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Compartments
&lt;/h2&gt;

&lt;p&gt;Compartments are logical containers for OCI resources. &lt;/p&gt;

&lt;p&gt;They are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Global across regions &lt;/li&gt;
&lt;li&gt;Nestable up to six levels &lt;/li&gt;
&lt;li&gt;Used for isolation, billing, quotas, and access control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Policies are scoped to compartments, not directly to resources. &lt;/p&gt;

&lt;p&gt;Best practice: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Attach policies at the lowest level possible. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  👥 Groups and Delegated Administration
&lt;/h2&gt;

&lt;p&gt;Permissions are assigned to &lt;strong&gt;groups&lt;/strong&gt;, not individual users. &lt;/p&gt;

&lt;p&gt;Good practice: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create groups based on roles &lt;/li&gt;
&lt;li&gt;Attach policies to groups &lt;/li&gt;
&lt;li&gt;Add users to groups &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OCI also supports delegated admin roles, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security Administrator &lt;/li&gt;
&lt;li&gt;Application Administrator &lt;/li&gt;
&lt;li&gt;Help Desk Administrator &lt;/li&gt;
&lt;li&gt;Audit Administrator&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This avoids giving everyone full admin access. &lt;/p&gt;

&lt;h2&gt;
  
  
  🌐 Network Sources
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Network Source&lt;/strong&gt; defines allowed IP ranges or VCNs. &lt;/p&gt;

&lt;p&gt;Used to: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restrict admin access to corporate networks &lt;/li&gt;
&lt;li&gt;Limit sensitive operations to trusted locations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They’re referenced directly in policies for fine-grained control. &lt;br&gt;
They don’t grant access.&lt;br&gt;
They limit access already granted by a policy. &lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Final Takeaway
&lt;/h2&gt;

&lt;p&gt;OCI isn’t complex by accident.&lt;br&gt;
It’s structured because it’s designed for scale and failure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regions, ADs, and FDs protect availability&lt;/li&gt;
&lt;li&gt;Compartments organize resources&lt;/li&gt;
&lt;li&gt;Identity Domains organize people&lt;/li&gt;
&lt;li&gt;Policies enforce least privilege &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you treat IAM and infrastructure as architecture decisions, OCI becomes predictable, scalable, and secure. &lt;/p&gt;

&lt;p&gt;And that’s the point.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔔 What’s Coming Next
&lt;/h3&gt;

&lt;p&gt;This article focuses on OCI’s architectural and IAM foundations.&lt;br&gt;
In the next part, we’ll go deeper into &lt;strong&gt;IAM policies&lt;/strong&gt;: how authorization actually works, how policies are evaluated, and why most access issues in OCI come down to policy design.&lt;/p&gt;

&lt;p&gt;Stay tuned.&lt;/p&gt;

</description>
      <category>oci</category>
      <category>iam</category>
      <category>cloud</category>
      <category>security</category>
    </item>
  </channel>
</rss>
