Skip to content

Commit

Permalink
Moving location under compute-cloud-at-customer
Browse files Browse the repository at this point in the history
  • Loading branch information
amyles committed Nov 19, 2024
1 parent b76bd2a commit 9b7b324
Show file tree
Hide file tree
Showing 7 changed files with 0 additions and 99 deletions.
Original file line number Diff line number Diff line change
@@ -1,99 +1 @@
# C3 Hosting Service Provider - IAM Policies for Isolation

Reviewed: 18.11.2024

The Hosting Service Provider (HSP) model on Compute Cloud@Customer (C3) allows
hosting for multiple end customers, each isolated in a dedicated compartment
with separate VCN(s) per customer. To ensure the end customer can only
create resources in just their own compartment, a set of IAM policies are
required.

The HSP documentation suggests the following policies per end customer
based on an example with two hosting customers, A & B. They assume that
each end customer will have two roles for their
staff: Customer Administrator and Customer End User. 

## Example Policies for Customer Administrator
```
Allows the group specified to use all C3 services in the compartment
listed:
Allow group CustA-Admin-grp to manage all-resources in compartment
path:to:CustA
Allow group CustB-Admin-grp to manage all-resources in compartment
path:to:CustB
```
Note that the above policy grants permissions in the CustA and CustB
compartments of the C3 but **also in the same compartment in the OCI
tenancy**! To prevent permissions being granted in the OCI tenancy
append a condition such as:

```Allow group CustA-Admin-grp to manage all-resources in compartment
path:to:CustA where all {request.region != 'LHR',request.region !=
'FRA'}
Allow group CustB-Admin-grp to manage all-resources in compartment
path:to:CustB where all {request.region != 'LHR',request.region !=
'FRA'}
```
In the example above the condition prevents resource creation in London
and Frankfurt regions. Adjust the list to include all regions the
tenancy is subscribed to.

The path to the end user compartment must be explicitly stated, using
the colon delimited format, relative to the compartment where the policy is
created. 

## Example Policies for Customer End User
```
Allow group CustA-Users-grp to manage instance-family in compartment
path:to:CustA
Allow group CustA-Users-grp to use volume-family in compartment
path:to:CustA
Allow group CustA-Users-grp to use virtual-network-family in compartment
path:to:CustA
Allow group CustB-Users-grp to manage instance-family in compartment
path:to:CustB
Allow group CustB-Users-grp to use volume-family in compartment
path:to:CustB
Allow group CustB-Users-grp to use virtual-network-family in compartment
path:to:CustB
```
As above append a condition to limit permissions to the C3 and prevent
resource creation in OCI regions:
```
Allow group CustA-Users-grp to manage instance-family in compartment
path:to:CustA where all {request.region != 'LHR',request.region !=
'FRA'}
Allow group CustA-Users-grp to use volume-family in compartment
path:to:CustA where all {request.region != 'LHR',request.region !=
'FRA'}
Allow group CustA-Users-grp to use virtual-network-family in compartment
path:to:CustA where all {request.region != 'LHR',request.region !=
'FRA'}
Allow group CustB-Users-grp to manage instance-family in compartment
path:to:CustB where all {request.region != 'LHR',request.region !=
'FRA'}
Allow group CustB-Users-grp to use volume-family in compartment
path:to:CustB where all {request.region != 'LHR',request.region !=
'FRA'}
Allow group CustB-Users-grp to use virtual-network-family in compartment
path:to:CustB where all {request.region != 'LHR',request.region !=
'FRA'}
```
## Common Policy

Currently any user of a C3 needs access to certain resources located at
the tenancy level to use IaaS resources in the web UI.
Backup policies, tag namespaces, platform images, all reside at the
tenancy level and need a further policy to allow normal use of C3 IaaS
services. Note that this is a subtle difference to the behaviour on OCI. 

An extra policy as below is required (where CommonGroup contains **all**
HSP users on the C3):
```
allow group CommonGroup to read all-resources in tenancy where
target.compartment.name='root-compartment-name'
```

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion cloud-infrastructure/private-cloud-and-edge/hsp/README.md

This file was deleted.

Binary file not shown.

0 comments on commit 9b7b324

Please sign in to comment.