IAM Security Structure

A core benefit of cloud adoption is scalability, which lets businesses start small and grow big. Compared to traditional infrastructures, using automation lets you deploy resources in minutes instead of days, which can lead to more innovation. Without proper control, a cloud environment can grow too complex and become unmanageable in terms of security and cost, putting your organization at risk.

Before you create multiple cloud resources in Oracle Cloud Infrastructure (OCI), we recommend that you set up an identity and access management (IAM) security model. An initial version of a security model can help your organization mitigate management risk by separating duties and resources, guiding the success of future growth.

Note: Before you add multiple cloud resources, define an IAM security model that covers tenancy, compartment structure, and so on.

In OCI, resource isolation is built in, starting with the following resources:

  • Tenancy
  • Identity domain
  • Compartment structure
  • IAM policies
Key Design Decisions Initial IAM Structure

Before you add multiple cloud resources, define an IAM security model that covers tenancy, compartment structure, and so on.

Typical Stakeholders
  • Chief information security officer (CISO) and cyber security team
  • Head of cloud and cloud center of excellence (CoE)
  • Platform operations team
  • Identity provider (IdP) and Active Directory (AD) administrator
  • Domain administrator
Related OCI Services and Features
Related Certification
Related Training

Organization and Tenancy

When you sign up for OCI, Oracle creates a tenancy for you. The tenancy contains your IAM entities, such as users, groups, compartments, and some policies, and other OCI resources. You can also put policies and resources into compartments inside the tenancy. For more information, see Organization Management and Managing Access to Resources.

Consider Tenancy as the Highest Level of Security Boundary

  • The tenancy is the highest container hosting your OCI resources, and is also referred to as the root compartment.
  • All access control of OCI resources is dictated by IAM policies, where tenancy is the highest level that IAM polices can be assigned. OCI Organization Management Governance Rules can control allowed regions, service quota, and tags for child tenancies, but have no control over the IAM policies. It's possible to grant access across tenancies by creating Cross-Tenancy IAM Policies. In this case, the administrators of granting and accepting tenancies must create special policy statements that explicitly state the resources that can be accessed and shared.
Tenancy is the highest level of security boundary.

Note: The root compartment is the top level of the IAM policy hierarchy, and IAM policies can't inherit across tenancies. For more information, see How Policies Work and Cross-Tenancy Policies.

Leverage Multiple Tenancies to Scale Your Business Beyond Limits

  • Each OCI tenancy is created with a set of service limits configured by Oracle. Although users can request a service limit increase, they don't have direct control over the limits.
  • To avoid service interruption, users can control the usage distribution by assigning service quotas to compartments as needed.
  • Users can scale beyond hard service limits by leveraging a new tenancy, which has its own set of limits assigned during creation.

You can add tenancies to your organization using Organization Management, and have the tenancies consume credits from your primary funded subscription. You can then create an isolated tenancy to build your workloads without booking a new order.

The types of tenancy include the following:

  • Parent tenancy: Associated with the primary funded subscription, which can analyze and report across each of your tenancies. Each organization can have only one parent tenancy. It's typical to use the parent tenancy for management purposes where developer, finance, and IT operations might need access to it. In this case, we recommend that you don’t host any applications or services within this tenancy.
  • Child tenancies: Tenancies consuming from a subscription that is not their own. Child tenancies can be created as entirely new tenancies, or existing tenancies can be invited to join the parent tenancy and become part of the same organization.

Note: We recommend that you don’t host any applications or services within the parent tenancy, especially if it's used for management purposes. For more information, see OCI Blog-Use Organizations to centrally manage costs.

Considerations for Tenancies Structure

Consider the following information for your tenancies:

  • Billing and cost management: Sharing a single commitment helps reduce cost overages and allows for consolidated billing.
  • Environment isolation: When you require high operational autonomy with strict resource isolation, you can use a tenancy as the top-level boundary to isolate your environments. Because each tenancy comes with a distinct set of IAM resources and rules, the security and governance settings are administered separately. Separate administration supports the highest degree of operational autonomy.
  • Management overhead: Multiple tenancies allow for operational autonomy with a strong isolation level, but incur management overhead costs. If you don't need a high level of isolation, such as for regulatory compliancy, consider using identity domains and compartments.
  • IAM resources residency: Each tenancy has its own home region, which contains your Oracle Cloud account information and identity resources in the default IAM identity domain.
    • The default domain always replicates to all regions to which the tenant is subscribed. When an administrator subscribes to another region, only the default domain replicates to that region. The default domain's home region is the tenancy's home region, which can't be changed.
    • Secondary (non-default) identity domains can have their own home region, but only within the set of regions the tenancy is subscribed to. Secondary identity domains can also be replicated to regions within the set of regions the tenancy is subscribed to.

Diagram showing organization management

Limitations for Tenancies

Consider the following limitations for tenancies:

  • The home region contains your account information and identity resources, and can't be changed after the tenancy is provisioned. For more information, see The Home Region.
  • When a child tenancy is created, the tenancy is not automatically federated to Oracle Identity Cloud Service/OCI Identity Domains. For more information, see Creating a New Child Tenancy.
  • Tenancies using Pay As You Go or Free Tier subscriptions can't add new child tenancies. For more information, see Creating a New Child Tenancy.
  • Parent-child tenancy is a single level structure and doesn't support a multi-level hierarchy.

Sample Use Cases for Tenancies

Consider the following sample use cases for having separate tenancies:

  • SaaS service provider to host dedicated tenancies for regulated customers
  • IAM resource residency requirements from privacy and data security laws.
  • For mergers and acquisitions (M&A), companies that need to maintain operational autonomy with separate identity management and hiring processes.
  • For hackathons and proofs of concept (PoC), the ability to start innovative projects in a Free Tier and project-based tenancy, and then apply to the broader organization for negotiated price tables and better cost visibility.
  • Regulatory requirements such as separation of production and non-production environments.
Sample tenancy structure.

Key Design Decisions for Tenancies

Make key design decisions based on the following information:

  • Accepted use cases to scale OCI adoption with separate tenancies and organizations
  • Tenancy operational models, such as the process for requesting a new tenancy, tenancy ownership, cost, and budget management

For more information, see Organization Management and Managing the Tenancy.

Prevent Others From Creating an Oracle Cloud Account with Your Public Domain Name

To enforce strong governance, some enterprises might need to have centralized control of new cloud account creation across a business group.

You can register your public domain name with OCI by way of Domain Management, which blocks others from claiming that domain in the future for using new cloud accounts. You can redirect new user sign-up attempts that use a corporate email address from that verified domain.

For example, if someone using OCI tries to create a tenancy with "companyA.com" in the email domain, the attempt is prevented and they are directed instead to OCI.

As a result, with Domain Management, large enterprises can more easily control their environments by knowing who is creating tenancies, and applying corporate policy onto the tenancies. You can securely verify ownership of your domains, and more easily control spending and management of resources.

Typically, this is covered in the parent tenancy as part of the central management capability. You need help from your public domain administrator to add the OCI provided TXT record to verify your ownership of the domain. This domain verification process can take up to 72 hours to complete.

Note: You can prevent others from creating an Oracle Cloud account with your verified domain by way of Domain Management. We use Oracle Notification to notify you if someone tries to create an account with your domain.

Note: You might block other lines of business to create their own accounts by enabling this feature if you share a domain. We recommended that you enable this feature by using your central administration team and proper communication with related stakeholders, such as the affected lines of business.

Key Design Decisions for Tenancies Structure

Principles of Tenancy Management Sample Principles
  • Accepted use cases to scale OCI adoption with separate tenancies and organizations.
  • Mandatory top level security boundary that needs separate tenancy and related administrative efforts.
  • Tenancy ownership operations, such the following processes:
    • The process for requesting a new tenancy
    • Tenancy transfer and termination
    • Domain registration for the control of new cloud account creation
    • Cost and budget management. See CAF Management and Operations pillar for details
  • All tenancies must be owned by a head of department. with a valid cost center code assigned
  • The tenancy owner is responsible for cost and budget management.
or
  • All tenancies within group organization must be centrally administrated by the cloud platform team.
  • Modification of tenancies structure must be reviewed and approved by the cloud CoE board.
  • The head of department can request and manage a Level 2 compartment for application hosting, but not the root compartment, such as the tenancy.

For more information, see Organization Management and Managing the Tenancy.

IAM Identity Domains

An identity domain is a container for managing users and roles, federating and provisioning users, securing application integration through single sign-on (SSO) configurations, and SAML/OAuth-based identity provider administration. The domain represents a user population in OCI and its associated configurations and security settings, such as multi-factor authentication (MFA).

You can create and manage multiple identity domains (for example, one domain for development and one for production). Each domain can have different identity and security requirements to protect your applications and OCI services.

Identity domain

The use of multiple identity domains provides several benefits. By having separate identity domains, users who work in one identity domain don't impact the work of users in another identity domain.

Using multiple identity domains can help you maintain the isolation of administrative control over each identity domain. Multiple identity domains are required, for example, when your security standards prevent user IDs for development from existing in the production environment. Multiple domains are also used when you require different administrators to have control over various environments.

Design Considerations for Identity Domains

Consider the following information when designing IAM structure:

  • The needs for separating user IDs and administrators across environments and workloads. For example:
    • Production compared with development environments
    • Staff-facing workloads compared with customer-facing workloads
    • Employees compared with contractors
  • Administrators can create as many secondary identity domains as their service limits allow.
  • You can upgrade the default or secondary identity domain to a different domain type. Each identity domain type is associated with different features and object limits.

The following information summarizes key differences between the default identity domain and secondary identity domains.

BehaviorDefault Identity DomainSecondary Identity Domains
Compartment association

Root compartment only.

You can't move the default identity domain from the root compartment of the tenancy.

Any compartment within the same tenancy.

When you move a domain, all of its resources are also moved.

LifecycleCan't be deactivated or deleted. It lives with the lifecycle of the tenancy.Can be deactivated and then deleted.
Granting a user or group the identity domain administrator roleEquivalent to granting full administrator permissions for the tenancy.Grants full administrator permissions to only that domain.
Home regionThe default domain's home region is the tenancy's home region. You can't change the home region.Secondary identity domains can have their own home region, but only within the set of regions the tenancy is subscribed to.
ReplicationYou can't change the regions that the default domain replicates to. The default domain always replicates to all regions that the tenant is subscribed to. When an administrator subscribes to another region, only the default domain replicates to that region automatically.Secondary identity domains can be asynchronously replicated to regions within the set of regions the tenancy is subscribed to.
Change of domain typeYou can't change the default domain to External User identity domain type.Supports all identity domain types, including External User identity domain.
Hide from sign-in pageYou can't hide the default domain from the sign-in page.Secondary domains can be hidden from the sign-in page, which effectively disables that domain.
IAM policy statement

Identity domain name in the IAM policy statement is optional.

If identity_domain_name isn't defined in the IAM policy statement, the assumption is that the subject belongs to the default identity domain.

Identity domain name in the IAM policy statement is mandatory

If identity_domain_name isn't defined in the IAM policy statement, the assumption is that the subject belongs to the default identity domain.

Sample Use Cases for Identity Domains

Consider the following sample use cases for having separate identity domains:

  • Using environment separation since some security standards and industry regulations require that you separate users between production and development environments, preventing access from development to production.
  • Separating external users, such as customers and contractors, from employee identities.

Recommendations for Identity Domains

Follow these recommendations when setting up your domains:

  • Use different identity domains for each user population.
  • Use the default identity domain for tenancy level administration. Use secondary identity domains for environment-specific administration and platform as a service (PaaS) services to have more control over domain behavior, such as lifecycle, home region, and replication.
  • Start with Free/Oracle Apps Identity Domain for cloud-only scenarios and upgrade to Premium/Oracle Apps Premium for higher limits or to support advanced use cases. For example:
    • Authenticate to on-premises or cloud-hosted Oracle applications.
    • Use bidirectional synchronization with Active Directory or other IAM systems.
    • Use modern AuthN/AuthZ features such as passwordless authentication, FIDO2 hardware tokens, and adaptive security solutions.
  • Create a secondary external identity domain for consumer-facing and non-employee use cases that require the following resources:
    • Social login, user self-service password, profile management, and terms of use consent.
    • Full-featured identity as a service (IDaaS) to scale for millions of users.
    • No access to OCI entitlement management. Examples include managing access to OCI resources, and staff-facing IAM features for provisioning to third-party apps that use App Catalog and Active Directory sync.

Key Design Decisions for Identity Domains

  • Endorse the acceptable use cases for having additional secondary identity domains for IAM isolations.
  • Decide the home region of the IAM domain, which can't be changed after creation.
  • Decide if any premier IAM feature is mandatory, such as bidirectional sync with LDAP/AD by bridge, EBS Asserter and RADIUS proxy.
  • Decide the ownership and administration of external user IAM domain if features such as social login, user self-service password, and profile management are needed.

For more information, see IAM Identity Domain Types.

Compartments and Tagging Structure for Fine-Granted IAM Policies

Use compartments and tags to organize and isolate resources for access control.

Basics of IAM Polices

  • IAM policy is a statement that specifies who can access which OCI resources that your company has, and how.

  • Because OCI doesn't grant access by default, your organization needs at least one policy to start governing control of your resources. Each policy consists of one or more policy statements that follow this basic syntax:

    Allow <subject> to <verb> <resource-type> in <location> where <conditions>

  • The following information describes the three main groups of IAM policies.

Number Access right is granted to IAM statement start with Example
1 OCI Services allow service ...
  • allow service CloudGuard to read compartments in tenancy
  • allow service blockstorage, objectstorage-<region_name>, Fss<realm_key>Prod, oke, streaming to use keys in compartment ABC where target.key.id='<key_OCID>'
2 Group of compute instances allow dynamicgroup|dynamic-group id..
  • allow dynamic-group acme-datascience-dyn-group to manage objects in compartment acme-compartment where all {target.bucket.name="acme-datascience-bucket"}
3 Group of Users allow group | group id | any-user ...
  • allow group SecurityAdmins to use keys in compartment ABC where target.key.id='<key_OCID>'
  • Because the change of access for OCI Services and Dynamic Group can cause services outages if they aren't handled properly, we recommended that you release these types of changes by way of a canary tenancy/environment to avoid introducing breaking changes to production.
  • You can fine grant access controls by organizing resources with compartments and tags.

Design Considerations for Compartments and Tags

Consider the following information when you set up compartments and tags:

  • Compartments:

    • Compartments are tenancy-wide and span across regions. When you create a compartment, the compartment is available in every region that your tenancy is subscribed to.
    • You can create subcompartments inside other compartments to create hierarchies that are up to six levels deep. A subcompartment inherits access permissions from compartments above it in the hierarchy.
    Compartments hierarchies can have maximum 6 levels deep.
    • Compartment is one of the mandatory units of granting access control. You can further refine compartment by the conditional clauses.
  • Tags: You can use tag-based access control to define access policies that span across compartments, groups, and resources. Using tag-based access control can help you avoid duplicating IAM policies, ensure consistency, and minimize management overhead.

    Caution: Defined tag keys are case-insensitive, whereas defined tag values are case-sensitive. For example, "Env" and "ENV" are the same tag key. "Dev" and "DEV" are distinct tag values.

  • Conditional IAM policy:

    • Condition matching is case-insensitive, tag value is case-sensitive, and some resource types allow case-sensitive naming. For example, consider the following statement:

      A user in Group A can access resources in compartments with the tag Operations.Project= 'sample'. The user can also access resources in compartments with the tag Operations.Project= 'Sample'. >allow group GroupA to manage all-resources in tenancy where target.resource.compartment.tag.Operations.Project= 'sample'

    • Consider using predefined values in defined tags if tag-based access control is adopted. See Working with Predefined Values.

    • All OCI services support request.principal.compartment, request.principal.group, and target.resource.compartment.tag policy variables. However, not all services support the target.resource.tag policy variable. See Supported Services.

      For advanced conditional IAM Policy features, see Tag-Based Access Control and Time-based Access Control.

Recommendations for Compartments and Tags

Use the following recommendations when setting up compartments and tags:

  • Create and designate compartments for specific categories of resources. Also, write IAM policies to allow access to the resources for only the groups of users that need access.
  • Divide production workloads and non-production workloads into separate compartments.
  • Create and use child compartments to isolate resources for more organizational layers. Write separate policies for each compartment level.
  • Allow only authorized users to move compartments to different parent compartments, and to move resources from one compartment to another. Write suitable policies to enforce this restriction.
  • Limit the number of resources of each type that can be created in a compartment by setting compartment-level quotas.
  • Limit the resources that an instance principal can manage by specifying a compartment in the IAM policy.
  • Assign tags to resources to organize and identify them based on your business needs.
    • Use compartments and tagging to simplify access management. Align your OCI compartment design with your department or project structures. For more information, see Managing Compartments.
    • If tag-based access control is adopted, ensure that you have appropriate controls in place to govern who can apply tags.
    • After policies are in place, remember that applying tags to a group, user, or resource has the potential to confer access to resources.
  • Keep as few compartments as possible. This makes browsing in the OCI Console less complicated.
  • Don't combine with Network security. Compartments have limited impact on the actual workload.

Multiple Environments

The following information provides sample environment isolation strategies for designing environment structures. Your organization might need a combination of these strategies.

Note: The diagram isn't a reference architecture, but provides sample use cases for design consideration.

Environments with different isolation strategies.
  • Type 0: This environment isolation involves no resource sharing. It's generally our tenancy structure for the maximum level of resource isolation. Other than the strategic business reason mentioned previously, you might also need this type of environment to support your change management processes. For example, you might need a testing or canary environment for your cloud platform team to roll out tenancy-level changes to avoid introducing massive disruption to your application teams all at once.
  • Type 1: This environment isolation shares minimal resources at the root compartment, such as OCI services enablement policies and break-glass administrators. With a dedicated compartment and an additional identity domain, you can have multiple highly separated environments within a single tenancy which have their own identity provider, access policy, and cloud resources.
  • Type 2: This environment isolation shares some selective key services, such as identity domain and fast connect, to improve cost and administration efficiency. It's typically used for non-production environments such as across UAT, SIT, and DEV. Some organizations also accept the practices for production and pre-production environments.
  • Type 3: This environment isolation shares all core platform services, such as security and networking services. It's typically used for managing workloads of similar nature with common control policies.
  • Type 4: This environment isolation shares workloads infrastructures, such as middleware, OKE, and DB, across multiple application instances.

IAM Best Practices

For the latest information about IAM best practices, see Best Practices for Identity and Access Management. Highlights include:

  • Don't use the default domain administrator group and user with the identity domain administrator role for day-to-day activities. Instead, create a separate administrator for managing specific resources in OCI.
  • Periodically check who is part of the default domain administrator group and who has the identity domain administrator role in the default domain. Users belonging to these two groups are super administrators and can manage all resources in OCI.
  • Use the default domain as a starter domain. Not only the users from the default domain can access or manage resources in OCI, the users in a secondary domain can also access and manage all OCI resources.
  • Create other secondary domains for various use cases such as identities segmentation (consumer versus employees), environment separation (development, testing, production), and data residency requirement (creating a domain in a particular geographical region).
  • We recommend using a secondary domain to address strong data residency requirements. With secondary domains, you can choose the geographical regions where you want to replicate a domain.