Skip to content

Commit 3fa5566

Browse files
authored
Merge pull request #101987 from AedinC/OSDOCS-17271
OSDOCS-17271:Add new required roles for Google Cloud marketplace billing module
2 parents 0f1e986 + 5a583e9 commit 3fa5566

File tree

4 files changed

+133
-61
lines changed

4 files changed

+133
-61
lines changed

modules/ccs-gcp-customer-procedure-wif.adoc

Lines changed: 72 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
= Workload Identity Federation authentication type procedure
88
// TODO: Same as other module - Better procedure heading that tells you what this is doing
9+
10+
[role="_abstract"]
911
Besides the required customer procedures listed in _Required customer procedure_, there are other specific actions that you must take when creating an {product-title} cluster on {GCP} using Workload Identity Federation (WIF) as the authentication type.
1012

1113
.Procedure
@@ -28,80 +30,91 @@ The following roles are only required when creating, updating, or deleting WIF c
2830
Required by the {gcp-short} client in the OCM CLI for creating custom role.
2931

3032
|`roles/iam.roleAdmin`
31-
|* iam.roles.create
32-
* iam.roles.delete
33-
* iam.roles.get
34-
* iam.roles.list
35-
* iam.roles.undelete
36-
* iam.roles.update
37-
* resourcemanager.projects.get
38-
* resourcemanager.projects.getIamPolicy
33+
34+
|iam.roles.create
35+
36+
iam.roles.delete
37+
38+
iam.roles.get
39+
40+
iam.roles.list
41+
42+
iam.roles.undelete
43+
44+
iam.roles.update
45+
46+
resourcemanager.projects.get
47+
resourcemanager.projects.getIamPolicy
3948

4049
|Service Account Admin
4150

4251
Required for the pre-creation of the service accounts used by the deployer, support, and Operators.
4352
|`roles/iam.serviceAccountAdmin`
44-
|* iam.serviceAccountApiKeyBindings.create
45-
* iam.serviceAccountApiKeyBindings.delete
46-
* iam.serviceAccountApiKeyBindings.undelete
47-
* iam.serviceAccounts.create
48-
* iam.serviceAccounts.createTagBinding
49-
* iam.serviceAccounts.delete
50-
* iam.serviceAccounts.deleteTagBinding
51-
* iam.serviceAccounts.disable
52-
* iam.serviceAccounts.enable
53-
* iam.serviceAccounts.get
54-
* iam.serviceAccounts.getIamPolicy
55-
* iam.serviceAccounts.list
56-
* iam.serviceAccounts.listEffectiveTags
57-
* iam.serviceAccounts.listTagBindings
58-
* iam.serviceAccounts.setIamPolicy
59-
* iam.serviceAccounts.undelete
60-
* iam.serviceAccounts.update
61-
* resourcemanager.projects.get
62-
* resourcemanager.projects.list
53+
54+
a| iam.serviceAccountApiKeyBindings.create
55+
iam.serviceAccountApiKeyBindings.delete
56+
iam.serviceAccountApiKeyBindings.undelete
57+
iam.serviceAccounts.create
58+
iam.serviceAccounts.create
59+
iam.serviceAccounts.create
60+
iam.serviceAccounts.createTagBinding
61+
iam.serviceAccounts.delete
62+
iam.serviceAccounts.deleteTagBinding
63+
iam.serviceAccounts.disable
64+
iam.serviceAccounts.enable
65+
iam.serviceAccounts.get
66+
iam.serviceAccounts.getIamPolicy
67+
iam.serviceAccounts.list
68+
iam.serviceAccounts.listEffectiveTags
69+
iam.serviceAccounts.listTagBindings
70+
iam.serviceAccounts.setIamPolicy
71+
iam.serviceAccounts.undelete
72+
iam.serviceAccounts.update
73+
resourcemanager.projects.get
74+
resourcemanager.projects.list
6375

6476
|Workload Identity Pool Admin
6577

6678
Required to create and configure the workload identity pool.
6779
|`roles/iam.workloadIdentityPoolAdmin`
68-
|* iam.googleapis.com/workloadIdentityPoolProviderKeys.create
69-
* iam.googleapis.com/workloadIdentityPoolProviderKeys.delete
70-
* iam.googleapis.com/workloadIdentityPoolProviderKeys.get
71-
* iam.googleapis.com/workloadIdentityPoolProviderKeys.list
72-
* iam.googleapis.com/workloadIdentityPoolProviderKeys.undelete
73-
* iam.googleapis.com/workloadIdentityPoolProviders.create
74-
* iam.googleapis.com/workloadIdentityPoolProviders.delete
75-
* iam.googleapis.com/workloadIdentityPoolProviders.get
76-
* iam.googleapis.com/workloadIdentityPoolProviders.list
77-
* iam.googleapis.com/workloadIdentityPoolProviders.undelete
78-
* iam.googleapis.com/workloadIdentityPoolProviders.update
79-
* iam.googleapis.com/workloadIdentityPools.create
80-
* iam.googleapis.com/workloadIdentityPools.delete
81-
* iam.googleapis.com/workloadIdentityPools.get
82-
* iam.googleapis.com/workloadIdentityPools.list
83-
* iam.googleapis.com/workloadIdentityPools.undelete
84-
* iam.googleapis.com/workloadIdentityPools.update
85-
* iam.workloadIdentityPools.createPolicyBinding
86-
* iam.workloadIdentityPools.deletePolicyBinding
87-
* iam.workloadIdentityPools.searchPolicyBindings
88-
* iam.workloadIdentityPools.updatePolicyBinding
89-
* resourcemanager.projects.get
90-
* resourcemanager.projects.list
80+
81+
a| iam.googleapis.com/workloadIdentityPoolProviderKeys.create
82+
iam.googleapis.com/workloadIdentityPoolProviderKeys.delete
83+
iam.googleapis.com/workloadIdentityPoolProviderKeys.get
84+
iam.googleapis.com/workloadIdentityPoolProviderKeys.list
85+
iam.googleapis.com/workloadIdentityPoolProviderKeys.undelete
86+
iam.googleapis.com/workloadIdentityPoolProviders.create
87+
iam.googleapis.com/workloadIdentityPoolProviders.delete
88+
iam.googleapis.com/workloadIdentityPoolProviders.get
89+
iam.googleapis.com/workloadIdentityPoolProviders.list
90+
iam.googleapis.com/workloadIdentityPoolProviders.undelete
91+
iam.googleapis.com/workloadIdentityPoolProviders.up
92+
iam.googleapis.com/workloadIdentityPools.delete
93+
iam.googleapis.com/workloadIdentityPools.get
94+
iam.googleapis.com/workloadIdentityPools.list
95+
iam.googleapis.com/workloadIdentityPools.undelete
96+
iam.googleapis.com/workloadIdentityPools.update
97+
iam.workloadIdentityPools.createPolicyBinding
98+
iam.workloadIdentityPools.deletePolicyBinding
99+
iam.workloadIdentityPools.searchPolicyBindings
100+
iam.workloadIdentityPools.updatePolicyBinding
101+
resourcemanager.projects.get
102+
resourcemanager.projects.list
91103

92104
|Project IAM Admin
93105

94106
Required for assigning roles to the service account and giving permissions to those roles that are necessary to perform operations on cloud resources.
95107
|`roles/resourcemanager.projectIamAdmin`
96-
|* iam.policybindings.get
97-
* iam.policybindings.list
98-
* resourcemanager.projects.createPolicyBinding
99-
* resourcemanager.projects.deletePolicyBinding
100-
* resourcemanager.projects.get
101-
* resourcemanager.projects.getIamPolicy
102-
* resourcemanager.projects.searchPolicyBindings
103-
* resourcemanager.projects.setIamPolicy
104-
* resourcemanager.projects.updatePolicyBinding
108+
109+
a|iam.policybindings.get
110+
iam.policybindings.list
111+
resourcemanager.projects.createPolicyBinding
112+
resourcemanager.projects.deletePolicyBinding
113+
resourcemanager.projects.get
114+
resourcemanager.projects.getIamPolicy
115+
resourcemanager.projects.searchPolicyBindings
116+
resourcemanager.projects.setIamPolicy
117+
resourcemanager.projects.updatePolicyBinding
105118

106119
|===
107120

modules/ccs-gcp-customer-procedure.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
= Required customer procedure
88

9+
[role="_abstract"]
910
The Customer Cloud Subscription (CCS) model allows Red{nbsp}Hat to deploy and manage {product-title} into a customer's {gcp-first} project. Red{nbsp}Hat requires several prerequisites to be completed before providing these services.
1011
[NOTE]
1112
====
@@ -108,6 +109,12 @@ For more information about configuring {gcp-short} organization policy constrain
108109
|`orgpolicy.googleapis.com`
109110
|Used to identify governance rules applied to customer’s {gcp-full} that might impact cluster creation or management.
110111

112+
|link:https://docs.cloud.google.com/marketplace/docs/reference/consumerprocurement/rest[Cloud Commerce Consumer Procurement API]
113+
|`cloudcommerceconsumerprocurement.googleapis.com`
114+
|Enables users to procure products from the {gcp-short} Marketplace. Specifically, this permission is required to validate through this API that customers have accepted the Marketplace terms and conditions for {product-title}.
115+
116+
This API is required when transacting through the {gcp-short} Marketplace.
117+
111118
|link:https://cloud.google.com/iap/docs/reference/rest[Cloud Identity-Aware Proxy API]
112119
|`iap.googleapis.com`
113120
|Used in emergency situations to troubleshoot cluster nodes that are otherwise inaccessible.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * osd_planning/gcp-ccs.adoc
4+
:_mod-docs-content-type: CONCEPT
5+
[id="ccs-gcp-permissions-marketplace-billing_{context}"]
6+
7+
= Roles required for {GCP} Marketplace billing
8+
9+
[role="_abstract"]
10+
To deploy an {product-title} cluster using {GCP} Marketplace-based billing, your {GCP} account must first be prepared. This involves accepting the {GCP} Marketplace terms and agreements for the OpenShift Dedicated product listing. Contact your {GCP} administrator who has the `Consumer Procurement Entitlement Manager` role to enable {product-title} cluster deployments in your {GCP} project.
11+
12+
To automate the checking and acceptance of these terms and agreements during OpenShift Dedicated cluster creation, you must grant the `Consumer Procurement Entitlement Viewer` role to the {GCP} identity (user or service account) that is creating the cluster. The `Consumer Procurement Entitlement Viewer` role includes the necessary permissions to check for existing consent to the {GCP} terms and agreements and grants consent if that has not yet been given.
13+
14+
The following table lists the permissions that are included in the `Consumer Procurement Entitlement Viewer` role.
15+
16+
.Required permissions in the Consumer Procurement Entitlement Viewer role
17+
[cols="2a,3a,3a",options="header"]
18+
|===
19+
20+
|Role and description|Console role name|Permissions
21+
22+
|link:https://docs.cloud.google.com/iam/docs/roles-permissions/consumerprocurement[Consumer Procurement Entitlement Viewer]
23+
24+
Allows for the inspecting of entitlements and service states for a consumer project.
25+
|`consumerprocurement.entitlementViewer`
26+
|commerceoffercatalog.offers.get
27+
consumerprocurement.consents.check
28+
consumerprocurement.consents.list
29+
consumerprocurement.entitlements.get
30+
consumerprocurement.entitlements.list
31+
consumerprocurement.freeTrials.get
32+
consumerprocurement.freeTrials.list
33+
orgpolicy.policy.get
34+
resourcemanager.projects.get
35+
resourcemanager.projects.list
36+
serviceusage.consumerpolicy.analyze
37+
serviceusage.consumerpolicy.get
38+
serviceusage.effectivepolicy.get
39+
serviceusage.groups.list
40+
serviceusage.groups.listExpandedMembers
41+
serviceusage.groups.listMembers
42+
serviceusage.services.get
43+
serviceusage.services.list
44+
serviceusage.values.test
45+
46+
|===
47+
48+
For more information about {GCP} Marketplace roles and permissions, see link:https://docs.cloud.google.com/marketplace/docs/access-control[Access control with IAM] in the {GCP} documentation.
49+
50+
51+

osd_planning/gcp-ccs.adoc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ toc::[]
1212
include::modules/ccs-gcp-understand.adoc[leveloffset=+1]
1313
include::modules/ccs-gcp-customer-requirements.adoc[leveloffset=+1]
1414
include::modules/ccs-gcp-customer-procedure.adoc[leveloffset=+1]
15-
include::modules/ccs-gcp-customer-procedure-wif.adoc[leveloffset=+2]
16-
include::modules/ccs-gcp-customer-procedure-serviceaccount.adoc[leveloffset=+2]
15+
include::modules/ccs-gcp-permissions-marketplace-billing.adoc[leveloffset=+1]
16+
include::modules/ccs-gcp-customer-procedure-wif.adoc[leveloffset=+1]
17+
include::modules/ccs-gcp-customer-procedure-serviceaccount.adoc[leveloffset=+1]
1718
include::modules/ccs-gcp-iam.adoc[leveloffset=+1]
1819
include::modules/ccs-gcp-provisioned.adoc[leveloffset=+1]
1920
include::modules/gcp-limits.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)