1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00

OSDOCS-4157: GCP Role Administrator role

This commit is contained in:
Jeana Routh
2024-01-05 15:32:46 -05:00
committed by openshift-cherrypick-robot
parent f5a80bcc3e
commit a24ff53f79
6 changed files with 143 additions and 6 deletions

View File

@@ -51,10 +51,15 @@ The credential you provide for mint mode in Google Cloud Platform (GCP) must hav
* `serviceusage.services.list`
* `iam.serviceAccountKeys.create`
* `iam.serviceAccountKeys.delete`
* `iam.serviceAccountKeys.list`
* `iam.serviceAccounts.create`
* `iam.serviceAccounts.delete`
* `iam.serviceAccounts.get`
* `iam.roles.create`
* `iam.roles.get`
* `iam.roles.list`
* `iam.roles.undelete`
* `iam.roles.update`
* `resourcemanager.projects.getIamPolicy`
* `resourcemanager.projects.setIamPolicy`
====

View File

@@ -275,6 +275,50 @@ ifdef::azure-workload-id[]
====
endif::azure-workload-id[]
//GCP permissions needed when running ccoctl during install.
ifdef::google-cloud-platform[]
* You have added one of the following authentication options to the GCP account that the installation program uses:
** The **IAM Workload Identity Pool Admin** role.
** The following granular permissions:
+
.Required GCP permissions
[%collapsible]
====
* compute.projects.get
* iam.googleapis.com/workloadIdentityPoolProviders.create
* iam.googleapis.com/workloadIdentityPoolProviders.get
* iam.googleapis.com/workloadIdentityPools.create
* iam.googleapis.com/workloadIdentityPools.delete
* iam.googleapis.com/workloadIdentityPools.get
* iam.googleapis.com/workloadIdentityPools.undelete
* iam.roles.create
* iam.roles.delete
* iam.roles.list
* iam.roles.undelete
* iam.roles.update
* iam.serviceAccounts.create
* iam.serviceAccounts.delete
* iam.serviceAccounts.getIamPolicy
* iam.serviceAccounts.list
* iam.serviceAccounts.setIamPolicy
* iam.workloadIdentityPoolProviders.get
* iam.workloadIdentityPools.delete
* resourcemanager.projects.get
* resourcemanager.projects.getIamPolicy
* resourcemanager.projects.setIamPolicy
* storage.buckets.create
* storage.buckets.delete
* storage.buckets.get
* storage.buckets.getIamPolicy
* storage.buckets.setIamPolicy
* storage.objects.create
* storage.objects.delete
* storage.objects.list
====
endif::google-cloud-platform[]
.Procedure
ifndef::update[]

View File

@@ -70,7 +70,8 @@ $ ccoctl {cp-name} delete \
ifdef::aws-sts[ --region=<{cp-name}_region> <2>]
ifdef::gcp-workload-id[]
--project=<{cp-name}_project_id> \// <2>
--credentials-requests-dir=<path_to_credentials_requests_directory>
--credentials-requests-dir=<path_to_credentials_requests_directory> \
--force-delete-custom-roles <3>
endif::gcp-workload-id[]
ifdef::azure-workload-id[]
--region=<{cp-name}_region> \// <2>
@@ -81,7 +82,10 @@ endif::azure-workload-id[]
+
<1> `<name>` matches the name that was originally used to create and tag the cloud resources.
ifdef::aws-sts,azure-workload-id[<2> `<{cp-name}_region>` is the {cp} region in which to delete cloud resources.]
ifdef::gcp-workload-id[<2> `<{cp-name}_project_id>` is the {cp} project ID in which to delete cloud resources.]
ifdef::gcp-workload-id[]
<2> `<{cp-name}_project_id>` is the {cp} project ID in which to delete cloud resources.
<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].
endif::gcp-workload-id[]
ifdef::azure-workload-id[<3> `<{cp-name}_subscription_id>` is the {cp} subscription ID for which to delete cloud resources.]
ifdef::aws-sts[]
+

View File

@@ -48,6 +48,26 @@ ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisio
:azure-workload-id:
endif::[]
//GCP install assemblies
ifeval::["{context}" == "installing-gcp-customizations"]
:google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-network-customizations"]
:google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-restricted-networks-gcp-installer-provisioned"]
:google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-vpc"]
:google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-shared-vpc"]
:google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-private"]
:google-cloud-platform:
endif::[]
:_mod-docs-content-type: PROCEDURE
[id="cco-ccoctl-install-creating-manifests_{context}"]
= Incorporating the Cloud Credential Operator utility manifests
@@ -62,6 +82,28 @@ To implement short-term security credentials managed outside the cluster for ind
.Procedure
ifdef::google-cloud-platform[]
. Add the following granular permissions to the GCP account that the installation program uses:
+
.Required GCP permissions
[%collapsible]
====
* compute.machineTypes.list
* compute.regions.list
* compute.zones.list
* dns.changes.create
* dns.changes.get
* dns.managedZones.create
* dns.managedZones.delete
* dns.managedZones.get
* dns.managedZones.list
* dns.networks.bindPrivateDNSZone
* dns.resourceRecordSets.create
* dns.resourceRecordSets.delete
* dns.resourceRecordSets.list
====
endif::google-cloud-platform[]
. If you did not set the `credentialsMode` parameter in the `install-config.yaml` configuration file to `Manual`, modify the value as shown:
+
.Sample configuration file snippet
@@ -131,4 +173,24 @@ ifeval::["{context}" == "installing-azure-vnet"]
endif::[]
ifeval::["{context}" == "installing-restricted-networks-azure-installer-provisioned"]
:!azure-workload-id:
endif::[]
//GCP install assemblies
ifeval::["{context}" == "installing-gcp-customizations"]
:!google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-network-customizations"]
:!google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-restricted-networks-gcp-installer-provisioned"]
:!google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-vpc"]
:!google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-shared-vpc"]
:!google-cloud-platform:
endif::[]
ifeval::["{context}" == "installing-gcp-private"]
:!google-cloud-platform:
endif::[]

View File

@@ -21,6 +21,7 @@ When you attach the `Owner` role to the service account that you create, you gra
.Required roles for the installation program
* Compute Admin
* IAM Role Administrator
* IAM Security Admin
* Service Account Admin
* Service Account Key Admin
@@ -30,18 +31,17 @@ When you attach the `Owner` role to the service account that you create, you gra
.Required roles for creating network resources during installation
* DNS Administrator
.Required roles for using passthrough credentials mode
.Required roles for using the Cloud Credential Operator in passthrough mode
* Compute Load Balancer Admin
* IAM Role Viewer
ifdef::template[]
.Required roles for user-provisioned GCP infrastructure
* Deployment Manager Editor
endif::template[]
The roles are applied to the service accounts that the control plane and compute machines use:
The following roles are applied to the service accounts that the control plane and compute machines use:
.GCP service account permissions
.GCP service account roles
[cols="2a,2a",options="header"]
|===
|Account

View File

@@ -160,6 +160,28 @@ endif::cco-manual-mode[]
.Procedure
ifdef::google-cloud-platform[]
. Add the following granular permissions to the GCP account that the installation program uses:
+
.Required GCP permissions
[%collapsible]
====
* compute.machineTypes.list
* compute.regions.list
* compute.zones.list
* dns.changes.create
* dns.changes.get
* dns.managedZones.create
* dns.managedZones.delete
* dns.managedZones.get
* dns.managedZones.list
* dns.networks.bindPrivateDNSZone
* dns.resourceRecordSets.create
* dns.resourceRecordSets.delete
* dns.resourceRecordSets.list
====
endif::google-cloud-platform[]
ifdef::cco-multi-mode[]
. If you did not set the `credentialsMode` parameter in the `install-config.yaml` configuration file to `Manual`, modify the value as shown:
+