|
1 | | -# C3 Hosting Service Provider - IAM Policies for Isolation |
2 | | - |
3 | | -Reviewed: 18.11.2024 |
4 | | - |
5 | | -The Hosting Service Provider (HSP) model on Compute Cloud@Customer (C3) allows |
6 | | -hosting for multiple end customers, each isolated in a dedicated compartment |
7 | | -with separate VCN(s) per customer. To ensure the end customer can only |
8 | | -create resources in just their own compartment, a set of IAM policies are |
9 | | -required. |
10 | | - |
11 | | -The HSP documentation suggests the following policies per end customer |
12 | | -based on an example with two hosting customers, A & B. They assume that |
13 | | -each end customer will have two roles for their |
14 | | -staff: Customer Administrator and Customer End User. |
15 | | - |
16 | | -## Example Policies for Customer Administrator |
17 | | -``` |
18 | | -Allows the group specified to use all C3 services in the compartment |
19 | | -listed: |
20 | | -
|
21 | | -Allow group CustA-Admin-grp to manage all-resources in compartment |
22 | | -path:to:CustA |
23 | | -
|
24 | | -Allow group CustB-Admin-grp to manage all-resources in compartment |
25 | | -path:to:CustB |
26 | | -``` |
27 | | -Note that the above policy grants permissions in the CustA and CustB |
28 | | -compartments of the C3 but **also in the same compartment in the OCI |
29 | | -tenancy**! To prevent permissions being granted in the OCI tenancy |
30 | | -append a condition such as: |
31 | | - |
32 | | -```Allow group CustA-Admin-grp to manage all-resources in compartment |
33 | | -path:to:CustA where all {request.region != 'LHR',request.region != |
34 | | -'FRA'} |
35 | | -
|
36 | | -Allow group CustB-Admin-grp to manage all-resources in compartment |
37 | | -path:to:CustB where all {request.region != 'LHR',request.region != |
38 | | -'FRA'} |
39 | | -``` |
40 | | -In the example above the condition prevents resource creation in London |
41 | | -and Frankfurt regions. Adjust the list to include all regions the |
42 | | -tenancy is subscribed to. |
43 | | - |
44 | | -The path to the end user compartment must be explicitly stated, using |
45 | | -the colon delimited format, relative to the compartment where the policy is |
46 | | -created. |
47 | | - |
48 | | -## Example Policies for Customer End User |
49 | | -``` |
50 | | -Allow group CustA-Users-grp to manage instance-family in compartment |
51 | | -path:to:CustA |
52 | | -Allow group CustA-Users-grp to use volume-family in compartment |
53 | | -path:to:CustA |
54 | | -Allow group CustA-Users-grp to use virtual-network-family in compartment |
55 | | -path:to:CustA |
56 | | -Allow group CustB-Users-grp to manage instance-family in compartment |
57 | | -path:to:CustB |
58 | | -Allow group CustB-Users-grp to use volume-family in compartment |
59 | | -path:to:CustB |
60 | | -Allow group CustB-Users-grp to use virtual-network-family in compartment |
61 | | -path:to:CustB |
62 | | -``` |
63 | | -As above append a condition to limit permissions to the C3 and prevent |
64 | | -resource creation in OCI regions: |
65 | | -``` |
66 | | -Allow group CustA-Users-grp to manage instance-family in compartment |
67 | | -path:to:CustA where all {request.region != 'LHR',request.region != |
68 | | -'FRA'} |
69 | | -Allow group CustA-Users-grp to use volume-family in compartment |
70 | | -path:to:CustA where all {request.region != 'LHR',request.region != |
71 | | -'FRA'} |
72 | | -Allow group CustA-Users-grp to use virtual-network-family in compartment |
73 | | -path:to:CustA where all {request.region != 'LHR',request.region != |
74 | | -'FRA'} |
75 | | -Allow group CustB-Users-grp to manage instance-family in compartment |
76 | | -path:to:CustB where all {request.region != 'LHR',request.region != |
77 | | -'FRA'} |
78 | | -Allow group CustB-Users-grp to use volume-family in compartment |
79 | | -path:to:CustB where all {request.region != 'LHR',request.region != |
80 | | -'FRA'} |
81 | | -Allow group CustB-Users-grp to use virtual-network-family in compartment |
82 | | -path:to:CustB where all {request.region != 'LHR',request.region != |
83 | | -'FRA'} |
84 | | -``` |
85 | | -## Common Policy |
86 | | - |
87 | | -Currently any user of a C3 needs access to certain resources located at |
88 | | -the tenancy level to use IaaS resources in the web UI. |
89 | | -Backup policies, tag namespaces, platform images, all reside at the |
90 | | -tenancy level and need a further policy to allow normal use of C3 IaaS |
91 | | -services. Note that this is a subtle difference to the behaviour on OCI. |
92 | | - |
93 | | -An extra policy as below is required (where CommonGroup contains **all** |
94 | | -HSP users on the C3): |
95 | | -``` |
96 | | -allow group CommonGroup to read all-resources in tenancy where |
97 | | -target.compartment.name='root-compartment-name' |
98 | | -``` |
99 | 1 |
|
0 commit comments