Onboarding Permissions for GCP - Read-Only
Introduction
As part of the GCP account preparation required before onboarding cloud accounts into CoreStack, you will need to create least privilege policies— individual policies that must be attached to your cross-account role that allow the platform to access the GCP data it needs in order to create its reports.
Pre-configured automation templates for allowing accessYou can refer to the paths below to access templates provided based on the type of access you wish to provide for the platform after cloning a GitHub repo (https://github.com/corestacklabs/Onboarding_Templates.git):
- FinOps: Onboarding_Templates/GCP/Assesment-module-proj/finops/
- SecOps: Onboarding_Templates/GCP/Assesment-module-proj/secops/
- CloudOps: Onboarding_Templates/GCP/Assesment-module-proj/cloudops/
Least Privilege Polices by Product (Read-Only)
Each least privilege policy provides the necessary permissions to enable core functions in the platform. The policies for enabling Read-Only access to the platform are listed below organized by product and platform capability:
Note:Some permissions listed in this guide are not applicable when creating a project-level custom role. Those permissions can be assigned to a custom role only when creating a custom role at the organization-level.
Choosing to skip the below permissions may result in the following effects:
- billing.budgets.create: The platform won't be able to create a cloud-native budget through the main portal, whereas platform-native budget alerts can still be configured.
- billing.budgets.get/list: The platform won't be able to list a cloud-native budget through portal.
- billing.budgets.update: The platform won't be able to update cloud-native budgets through the main portal.
- resourcemanager.folders.get/list: The platform won't be able to pull the folders listed as part of an organization.
- securitycenter.subscription.get: The platform won't be able to identify the Security Command Center subscription details. This is needed for access validation to configure threats.
- role/billing.viewer: This is mandatory permission to list the Cloud Native Budgets
FinOps
| Capability | Description | Least Privilege Permissions |
|---|---|---|
| Billing Account | These permissions are required for onboarding a GCP Billing Account. Once onboarded, users can proceed with Linked Project onboarding by segregating as per the needs of the bundles listed here. | storage.buckets.getstorage.buckets.liststorage.objects.getstorage.objects.listcompute.regions.getcompute.regions.listcompute.zones.getcompute.zones.list`resourcemanager.projects.get |
| Cost Visibility and Usage | Allow the platform to pull cost data from your GCP cloud account and displaying them as part of cost posturing. | storage.buckets.getstorage.buckets.liststorage.objects.getstorage.objects.list |
| Cost Optimization Dashboard | Allow the platform to monitoring the utilization of your cloud resources in order to provide cost optimization recommendations through FinOps policies, retrieve native recommendations from GCP, and offer remediation actions.
| monitoring.alertPolicies.getmonitoring.alertPolicies.listmonitoring.metricDescriptors.getmonitoring.metricDescriptors.listmonitoring.monitoredResourceDescriptors.getmonitoring.publicWidgets.getmonitoring.publicWidgets.listmonitoring.services.getmonitoring.services.listmonitoring.slos.getmonitoring.slos.listmonitoring.snoozes.getmonitoring.snoozes.listmonitoring.timeSeries.listmonitoring.dashboards.getmonitoring.dashboards.listrecommender.cloudsqlIdleInstanceRecommendations.getrecommender.cloudsqlIdleInstanceRecommendations.listrecommender.cloudsqlOverprovisionedInstanceRecommendations.getrecommender.cloudsqlOverprovisionedInstanceRecommendations.listrecommender.cloudsqlUnderProvisionedInstanceRecommendations.getrecommender.cloudsqlUnderProvisionedInstanceRecommendations.listrecommender.computeAddressIdleResourceRecommendations.getrecommender.computeAddressIdleResourceRecommendations.listrecommender.computeDiskIdleResourceRecommendations.getrecommender.computeDiskIdleResourceRecommendations.listrecommender.computeImageIdleResourceRecommendations.getrecommender.computeImageIdleResourceRecommendations.listrecommender.computeInstanceIdleResourceRecommendations.getrecommender.computeInstanceIdleResourceRecommendations.listrecommender.computeInstanceMachineTypeRecommendations.getrecommender.computeInstanceMachineTypeRecommendations.listrecommender.spendBasedCommitmentRecommendations.getrecommender.spendBasedCommitmentRecommendations.listrecommender.usageCommitmentRecommendations.getrecommender.usageCommitmentRecommendations.list |
| Resource Inventory | Allow the platform to provide pull resource data from GCP in order to provide cost recommendations through FinOps cost policies.
| bigquery.datasets.getbigquery.jobs.getbigquery.jobs.listbigquery.reservations.getbigquery.reservations.listbigtable.tables.getbigtable.tables.listcloudsql.databases.getcloudsql.databases.listcloudsql.instances.getcloudsql.instances.listcompute.addresses.getcompute.addresses.listcompute.commitments.getcompute.commitments.listcompute.disks.getcompute.diskTypes.getcompute.diskTypes.listcompute.images.listcompute.instances.getcompute.instances.listcompute.regions.getcompute.regions.listcompute.reservations.getcompute.reservations.listcompute.zones.getcompute.zones.list |
| Cost Budget | Allow the platform to display cloud-native budgets from the platform.
| billing.budgets.getbilling.budgets.listserviceusage.services.getserviceusage.services.list |
SecOps
| Capability | Description | Least Privilege Permissions |
|---|---|---|
| Governance Configuration > Vulnerability Assessments and Threats | Allow the platform to display vulnerabilities and threats from GCP Security Command Center. | securitycenter.containerthreatdetectionsettings.getsecuritycenter.eventthreatdetectionsettings.calculatesecuritycenter.eventthreatdetectionsettings.getsecuritycenter.findings.groupsecuritycenter.findings.listsecuritycenter.findings.listFindingPropertyNamessecuritycenter.rapidvulnerabilitydetectionsettings.getsecuritycenter.securitycentersettings.getsecuritycenter.securityhealthanalyticssettings.getsecuritycenter.sources.getsecuritycenter.sources.listsecuritycenter.subscription.getsecuritycenter.virtualmachinethreatdetectionsettings.getsecuritycenter.websecurityscannersettings.get |
| Guardrails/Policies Compliance Standards - GCP CAF | Allow the platform to run security policies against your cloud resources in order to get violations and remediate some of the violated resources.
| compute.disks.listcompute.instances.getcompute.instances.listcompute.networks.listcompute.networks.getcompute.projects.getcompute.regions.getcompute.regions.listcompute.subnetworks.listcompute.zones.getcompute.zones.listcontainer.clusters.getcontainer.clusters.listcloudsql.databases.getcloudsql.databases.listcloudsql.instances.getcloudsql.instances.list |
CloudOps
| Capability | Description | Least Privilege Permissions |
|---|---|---|
| Activity and Alerts - Governance Configuration > Operations > Activity Log | Allow the platform to configure activity logs and alerts via read and write permissions.
| logging.sinks.getlogging.sinks.listlogging.views.listpubsub.subscriptions.getpubsub.subscriptions.getIamPolicypubsub.subscriptions.listpubsub.topics.getpubsub.topics.getIamPolicypubsub.topics.listpubsub.topics.publish |
| Activity and Alerts - Governance Configuration > Operations > Alerts | Allow the platform to configure monitoring alerts with a specific template.
| monitoring.alertPolicies.getmonitoring.alertPolicies.listmonitoring.metricDescriptors.getmonitoring.metricDescriptors.listmonitoring.monitoredResourceDescriptors.getmonitoring.publicWidgets.getmonitoring.publicWidgets.listmonitoring.services.getmonitoring.services.listmonitoring.slos.getmonitoring.slos.listmonitoring.snoozes.getmonitoring.snoozes.listmonitoring.timeSeries.listmonitoring.alertPolicies.getmonitoring.alertPolicies.listmonitoring.metricDescriptors.getmonitoring.metricDescriptors.listmonitoring.monitoredResourceDescriptors.getmonitoring.publicWidgets.getmonitoring.publicWidgets.listmonitoring.services.getmonitoring.services.listmonitoring.slos.getmonitoring.slos.listmonitoring.snoozes.getmonitoring.snoozes.listmonitoring.timeSeries.listmonitoring.dashboards.getmonitoring.dashboards.listmonitoring.alertPolicies.createmonitoring.alertPolicies.deletemonitoring.alertPolicies.getmonitoring.alertPolicies.listmonitoring.alertPolicies.update |
| Resource Inventory | Allow the platform to pull resources from GCP in order to populate the resource inventory in the UI.
| appengine.applications.getappengine.instances.getappengine.instances.listappengine.services.getappengine.services.listappengine.versions.getappengine.versions.listbigquery.datasets.getbigquery.jobs.getbigquery.reservations.getbigquery.reservations.listbigquery.transfers.getbigtable.tables.getbigtable.tables.getIamPolicybigtable.tables.listcloudfunctions.functions.getcloudfunctions.functions.listcloudiot.registries.getcloudiot.registries.listcloudscheduler.jobs.listcloudsecurityscanner.scans.listcloudsql.databases.getcloudsql.databases.listcloudsql.instances.getcloudsql.instances.listcloudtasks.queues.listcomposer.environments.listcompute.addresses.getcompute.addresses.listcompute.autoscalers.getcompute.autoscalers.listcompute.backendBuckets.getcompute.backendBuckets.getIamPolicycompute.backendBuckets.listcompute.backendServices.getcompute.backendServices.getIamPolicycompute.backendServices.listcompute.commitments.getcompute.commitments.listcompute.disks.getcompute.disks.getIamPolicycompute.disks.listcompute.disks.setLabelscompute.diskTypes.getcompute.diskTypes.listcompute.externalVpnGateways.listcompute.firewalls.getcompute.firewalls.listcompute.images.getcompute.images.listcompute.images.setLabelscompute.instances.getcompute.instanceGroups.listcompute.instances.getcompute.instances.listcompute.instances.setLabelscompute.instanceTemplates.getcompute.interconnects.getcompute.networkEndpointGroups.getcompute.networks.getcompute.networks.listcompute.regions.getcompute.regions.listcompute.routers.listcompute.routes.getcompute.securityPolicies.getcompute.snapshots.getcompute.snapshots.setLabelscompute.sslPolicies.listcompute.targetHttpProxies.getcompute.targetPools.getcompute.vpnGateways.listcompute.zones.getcompute.zones.listcontainer.clusters.getcontainer.clusters.listdataflow.jobs.listdns.managedZones.getdns.managedZones.listfile.backups.listfile.instances.listfile.locations.listiam.roles.listiam.serviceAccounts.getlogging.sinks.createlogging.sinks.deletelogging.sinks.getlogging.sinks.listlogging.sinks.updatelogging.views.listmonitoring.alertPolicies.getmonitoring.alertPolicies.listmonitoring.notificationChannels.getmonitoring.notificationChannels.listpubsub.subscriptions.getpubsub.subscriptions.getIamPolicypubsub.subscriptions.listpubsub.topics.attachSubscriptionpubsub.topics.detachSubscriptionpubsub.topics.getpubsub.topics.getIamPolicypubsub.topics.listpubsub.topics.publishresourcemanager.folders.getresourcemanager.folders.listresourcemanager.projects.getresourcemanager.projects.listrun.services.listspanner.databases.listspanner.instances.liststorage.buckets.getstorage.buckets.liststorage.objects.getstorage.objects.list |