Skip to content

Commit 090813a

Browse files
committed
OSDOCS-4157: GCP Role Administrator role
1 parent 0865a01 commit 090813a

File tree

6 files changed

+143
-6
lines changed

6 files changed

+143
-6
lines changed

authentication/managing_cloud_provider_credentials/cco-mode-mint.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,15 @@ The credential you provide for mint mode in Google Cloud Platform (GCP) must hav
5151
* `serviceusage.services.list`
5252
* `iam.serviceAccountKeys.create`
5353
* `iam.serviceAccountKeys.delete`
54+
* `iam.serviceAccountKeys.list`
5455
* `iam.serviceAccounts.create`
5556
* `iam.serviceAccounts.delete`
5657
* `iam.serviceAccounts.get`
58+
* `iam.roles.create`
5759
* `iam.roles.get`
60+
* `iam.roles.list`
61+
* `iam.roles.undelete`
62+
* `iam.roles.update`
5863
* `resourcemanager.projects.getIamPolicy`
5964
* `resourcemanager.projects.setIamPolicy`
6065
====

modules/cco-ccoctl-configuring.adoc

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,50 @@ ifdef::azure-workload-id[]
275275
====
276276
endif::azure-workload-id[]
277277
278+
//GCP permissions needed when running ccoctl during install.
279+
ifdef::google-cloud-platform[]
280+
* You have added one of the following authentication options to the GCP account that the installation program uses:
281+
282+
** The **IAM Workload Identity Pool Admin** role.
283+
284+
** The following granular permissions:
285+
+
286+
.Required GCP permissions
287+
[%collapsible]
288+
====
289+
* compute.projects.get
290+
* iam.googleapis.com/workloadIdentityPoolProviders.create
291+
* iam.googleapis.com/workloadIdentityPoolProviders.get
292+
* iam.googleapis.com/workloadIdentityPools.create
293+
* iam.googleapis.com/workloadIdentityPools.delete
294+
* iam.googleapis.com/workloadIdentityPools.get
295+
* iam.googleapis.com/workloadIdentityPools.undelete
296+
* iam.roles.create
297+
* iam.roles.delete
298+
* iam.roles.list
299+
* iam.roles.undelete
300+
* iam.roles.update
301+
* iam.serviceAccounts.create
302+
* iam.serviceAccounts.delete
303+
* iam.serviceAccounts.getIamPolicy
304+
* iam.serviceAccounts.list
305+
* iam.serviceAccounts.setIamPolicy
306+
* iam.workloadIdentityPoolProviders.get
307+
* iam.workloadIdentityPools.delete
308+
* resourcemanager.projects.get
309+
* resourcemanager.projects.getIamPolicy
310+
* resourcemanager.projects.setIamPolicy
311+
* storage.buckets.create
312+
* storage.buckets.delete
313+
* storage.buckets.get
314+
* storage.buckets.getIamPolicy
315+
* storage.buckets.setIamPolicy
316+
* storage.objects.create
317+
* storage.objects.delete
318+
* storage.objects.list
319+
====
320+
endif::google-cloud-platform[]
321+
278322
.Procedure
279323

280324
ifndef::update[]

modules/cco-ccoctl-deleting-sts-resources.adoc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ $ ccoctl {cp-name} delete \
7070
ifdef::aws-sts[ --region=<{cp-name}_region> <2>]
7171
ifdef::gcp-workload-id[]
7272
--project=<{cp-name}_project_id> \// <2>
73-
--credentials-requests-dir=<path_to_credentials_requests_directory>
73+
--credentials-requests-dir=<path_to_credentials_requests_directory> \
74+
--force-delete-custom-roles <3>
7475
endif::gcp-workload-id[]
7576
ifdef::azure-workload-id[]
7677
--region=<{cp-name}_region> \// <2>
@@ -81,7 +82,10 @@ endif::azure-workload-id[]
8182
+
8283
<1> `<name>` matches the name that was originally used to create and tag the cloud resources.
8384
ifdef::aws-sts,azure-workload-id[<2> `<{cp-name}_region>` is the {cp} region in which to delete cloud resources.]
84-
ifdef::gcp-workload-id[<2> `<{cp-name}_project_id>` is the {cp} project ID in which to delete cloud resources.]
85+
ifdef::gcp-workload-id[]
86+
<2> `<{cp-name}_project_id>` is the {cp} project ID in which to delete cloud resources.
87+
<3> Optional: This parameter deletes the custom roles that the `ccoctl` utility creates during installation. GCP does not permanently delete custom roles immediately. For more information, see GCP documentation about link:https://cloud.google.com/iam/docs/creating-custom-roles#deleting-custom-role[deleting a custom role].
88+
endif::gcp-workload-id[]
8589
ifdef::azure-workload-id[<3> `<{cp-name}_subscription_id>` is the {cp} subscription ID for which to delete cloud resources.]
8690
ifdef::aws-sts[]
8791
+

modules/cco-ccoctl-install-creating-manifests.adoc

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,26 @@ ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisio
4848
:azure-workload-id:
4949
endif::[]
5050

51+
//GCP install assemblies
52+
ifeval::["{context}" == "installing-gcp-customizations"]
53+
:google-cloud-platform:
54+
endif::[]
55+
ifeval::["{context}" == "installing-gcp-network-customizations"]
56+
:google-cloud-platform:
57+
endif::[]
58+
ifeval::["{context}" == "installing-restricted-networks-gcp-installer-provisioned"]
59+
:google-cloud-platform:
60+
endif::[]
61+
ifeval::["{context}" == "installing-gcp-vpc"]
62+
:google-cloud-platform:
63+
endif::[]
64+
ifeval::["{context}" == "installing-gcp-shared-vpc"]
65+
:google-cloud-platform:
66+
endif::[]
67+
ifeval::["{context}" == "installing-gcp-private"]
68+
:google-cloud-platform:
69+
endif::[]
70+
5171
:_mod-docs-content-type: PROCEDURE
5272
[id="cco-ccoctl-install-creating-manifests_{context}"]
5373
= Incorporating the Cloud Credential Operator utility manifests
@@ -62,6 +82,28 @@ To implement short-term security credentials managed outside the cluster for ind
6282
6383
.Procedure
6484

85+
ifdef::google-cloud-platform[]
86+
. Add the following granular permissions to the GCP account that the installation program uses:
87+
+
88+
.Required GCP permissions
89+
[%collapsible]
90+
====
91+
* compute.machineTypes.list
92+
* compute.regions.list
93+
* compute.zones.list
94+
* dns.changes.create
95+
* dns.changes.get
96+
* dns.managedZones.create
97+
* dns.managedZones.delete
98+
* dns.managedZones.get
99+
* dns.managedZones.list
100+
* dns.networks.bindPrivateDNSZone
101+
* dns.resourceRecordSets.create
102+
* dns.resourceRecordSets.delete
103+
* dns.resourceRecordSets.list
104+
====
105+
endif::google-cloud-platform[]
106+
65107
. If you did not set the `credentialsMode` parameter in the `install-config.yaml` configuration file to `Manual`, modify the value as shown:
66108
+
67109
.Sample configuration file snippet
@@ -131,4 +173,24 @@ ifeval::["{context}" == "installing-azure-vnet"]
131173
endif::[]
132174
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
133175
:!azure-workload-id:
176+
endif::[]
177+
178+
//GCP install assemblies
179+
ifeval::["{context}" == "installing-gcp-customizations"]
180+
:!google-cloud-platform:
181+
endif::[]
182+
ifeval::["{context}" == "installing-gcp-network-customizations"]
183+
:!google-cloud-platform:
184+
endif::[]
185+
ifeval::["{context}" == "installing-restricted-networks-gcp-installer-provisioned"]
186+
:!google-cloud-platform:
187+
endif::[]
188+
ifeval::["{context}" == "installing-gcp-vpc"]
189+
:!google-cloud-platform:
190+
endif::[]
191+
ifeval::["{context}" == "installing-gcp-shared-vpc"]
192+
:!google-cloud-platform:
193+
endif::[]
194+
ifeval::["{context}" == "installing-gcp-private"]
195+
:!google-cloud-platform:
134196
endif::[]

modules/installation-gcp-permissions.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ When you attach the `Owner` role to the service account that you create, you gra
2121

2222
.Required roles for the installation program
2323
* Compute Admin
24+
* IAM Role Administrator
2425
* IAM Security Admin
2526
* Service Account Admin
2627
* Service Account Key Admin
@@ -30,18 +31,17 @@ When you attach the `Owner` role to the service account that you create, you gra
3031
.Required roles for creating network resources during installation
3132
* DNS Administrator
3233

33-
.Required roles for using passthrough credentials mode
34+
.Required roles for using the Cloud Credential Operator in passthrough mode
3435
* Compute Load Balancer Admin
35-
* IAM Role Viewer
3636

3737
ifdef::template[]
3838
.Required roles for user-provisioned GCP infrastructure
3939
* Deployment Manager Editor
4040
endif::template[]
4141

42-
The roles are applied to the service accounts that the control plane and compute machines use:
42+
The following roles are applied to the service accounts that the control plane and compute machines use:
4343

44-
.GCP service account permissions
44+
.GCP service account roles
4545
[cols="2a,2a",options="header"]
4646
|===
4747
|Account

modules/manually-create-identity-access-management.adoc

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,28 @@ endif::cco-manual-mode[]
160160

161161
.Procedure
162162

163+
ifdef::google-cloud-platform[]
164+
. Add the following granular permissions to the GCP account that the installation program uses:
165+
+
166+
.Required GCP permissions
167+
[%collapsible]
168+
====
169+
* compute.machineTypes.list
170+
* compute.regions.list
171+
* compute.zones.list
172+
* dns.changes.create
173+
* dns.changes.get
174+
* dns.managedZones.create
175+
* dns.managedZones.delete
176+
* dns.managedZones.get
177+
* dns.managedZones.list
178+
* dns.networks.bindPrivateDNSZone
179+
* dns.resourceRecordSets.create
180+
* dns.resourceRecordSets.delete
181+
* dns.resourceRecordSets.list
182+
====
183+
endif::google-cloud-platform[]
184+
163185
ifdef::cco-multi-mode[]
164186
. If you did not set the `credentialsMode` parameter in the `install-config.yaml` configuration file to `Manual`, modify the value as shown:
165187
+

0 commit comments

Comments
 (0)