Skip to main content

Add a GCP Single Account Manually with read only access

Learn how to add gcp single account manually with read only access

Step 1

Skip to Step 4 if you came to this guide from the Connect Your GCP Project page.

Navigate to the Account Manager tab and click Add new account. If you already have accounts, your Account Manager page will look similar to the example below.

Step 2

Select ‘Google Cloud Platform’.

Step 3

You’ll be taken to the Connect your GCP project page.

Step 3.1

In the first field, enter an Account name. You can enter a custom name (up to 32 characters) or leave the default GCP.


Step 3.2

Select the 'Single project' account type.

Step 3.3

Select the connection type - Manual.

  • Auto automatically configures the required IAM roles by running a script in Google Cloud Shell.

  • Manual set up and assign IAM roles yourself directly in GCP Console

Step 3.4

In this case, we select the Read-Only access type

Next, select the Access type (The selected type will be marked with a blue dot on a white background):

  • Read/write: Allows you to utilize all functions of our platform. You can view resources and take actions, such as converting to spot, scheduling resources, and removing unused resources.

  • Read-only: Lets you view resources and see what actions are available, but you can’t make any changes or perform those actions.

You can review the permissions included in the read-only policy.

Optional: View read-only permission list:

title: Uniskai Service Role

stage: "GA"

includedPermissions:

- appengine.applications.get

- appengine.instances.get

- appengine.instances.list

- appengine.services.get

- appengine.services.list

- appengine.versions.get

- appengine.versions.list

- bigquery.datasets.get

- bigquery.tables.get

- bigquery.tables.list

- bigquery.tables.getData

- bigquery.jobs.create

- bigquery.readsessions.create

- bigquery.readsessions.getData

- bigtable.backups.get

- bigtable.backups.list

- bigtable.clusters.get

- bigtable.clusters.list

- bigtable.instances.get

- bigtable.instances.list

- cloudfunctions.functions.get

- cloudfunctions.functions.list

- cloudfunctions.locations.get

- cloudfunctions.locations.list

- cloudsql.backupRuns.list

- cloudsql.instances.list

- compute.autoscalers.list

- compute.diskTypes.get

- compute.disks.get

- compute.disks.list

- compute.externalVpnGateways.get

- compute.externalVpnGateways.list

- compute.externalVpnGateways.list

- compute.firewalls.get

- compute.firewalls.list

- compute.images.get

- compute.images.list

- compute.instanceGroupManagers.get

- compute.instanceGroupManagers.list

- compute.instanceGroups.get

- compute.instanceGroups.list

- compute.instanceTemplates.get

- compute.instanceTemplates.list

- compute.instances.get

- compute.instances.list

- compute.machineImages.get

- compute.machineImages.list

- compute.machineTypes.get

- compute.networks.get

- compute.networks.list

- compute.regions.list

- compute.routers.get

- compute.routers.list

- compute.routes.get

- compute.routes.list

- compute.snapshots.get

- compute.snapshots.list

- compute.subnetworks.get

- compute.subnetworks.list

- compute.vpnGateways.list

- compute.vpnTunnels.list

- compute.zones.list

- compute.targetVpnGateways.get

- compute.targetVpnGateways.list

- compute.healthChecks.get

- compute.healthChecks.list

- compute.addresses.get

- compute.addresses.list

- compute.globalAddresses.get

- compute.globalAddresses.list

- compute.interconnects.get

- compute.interconnects.list

- compute.interconnectAttachments.get

- compute.interconnectAttachments.list

- compute.forwardingRules.get

- compute.forwardingRules.list

- container.clusters.get

- container.clusters.list

- dns.managedZones.list

- file.backups.list

- file.instances.list

- file.locations.get

- file.locations.list

- memcache.instances.get

- memcache.instances.list

- recommender.locations.get

- recommender.locations.list

- redis.instances.get

- redis.instances.list

- spanner.backups.get

- spanner.backups.list

- spanner.instanceConfigs.get

- spanner.instanceConfigs.list

- spanner.instances.get

- spanner.instances.list

- storage.buckets.get

- storage.buckets.list

- serviceusage.services.list

- resourcemanager.projects.getIamPolicy

- iam.roles.list

- iam.serviceAccounts.list

- iam.serviceAccountKeys.list

- cloudasset.assets.searchAllResources

- compute.instances.listReferrers

- compute.instances.setServiceAccount

- iam.serviceAccounts.actAs

- compute.backendServices.list

- compute.targetPools.list

- eventarc.locations.list

- eventarc.providers.list

- eventarc.triggers.list

- eventarc.triggers.get

- eventarc.channels.list

- cloudkms.locations.list

- cloudkms.keyRings.list

- cloudkms.cryptoKeys.get

- cloudkms.cryptoKeys.list

- cloudkms.cryptoKeyVersions.list

- cloudkms.importJobs.list

- monitoring.groups.get

- monitoring.groups.list

- monitoring.alertPolicies.get

- monitoring.alertPolicies.list

- monitoring.notificationChannels.get

- monitoring.notificationChannels.list

- monitoring.notificationChannelDescriptors.list

- monitoring.uptimeCheckConfigs.get

- monitoring.uptimeCheckConfigs.list

- monitoring.monitoredResourceDescriptors.list

- monitoring.timeSeries.list

- pubsub.topics.get

- pubsub.topics.list

- pubsub.subscriptions.list

- pubsub.subscriptions.get

- pubsub.subscriptions.list

- pubsublite.topics.list

- pubsublite.reservations.list

- pubsublite.subscriptions.get

- pubsublite.subscriptions.list

To continue, make sure you have permission to create roles and service accounts in GCP.

Step 4

Log in to GCP and select your Project

Step 5

Open the Cloud Shell and authorize it

Step 6 — Create a permissions file

You can download the template directly from the UI or via CLI (curl).

Option A — Download via UI (recommended)

  1. In the Uniskai interface, under Uniskai service role permissions, click Download template.

  2. Save the file to your local machine.

  3. Upload the file to the Cloud Shell Terminal.


Option B — Download via CLI

If you prefer using Cloud Shell or terminal, run the following command to download the role template file:

curl -o role-template.yaml \
"https://uniskai-eu-templates.s3.eu-central-1.amazonaws.com/gcp/role-template.yaml?versionId=du7HFyHAUefOCCV2WMtz_U5rHlvrOCV8"

Optional: review the permissions before applying the role

To inspect the contents of the downloaded file, run:

cat role-template.yaml

This lets you review the permissions included in the role template before applying it.

Step 7 — Create a custom IAM role

You must create the role. Replace YOUR_PROJECT_ID with your actual GCP Project ID.

In Google Cloud Console, open the Select a project window from the project selector at the top of the page. Your GCP Project ID is displayed in the ID column next to corresponding project.

gcloud iam roles create "uniskai_service_role" --project="YOUR_PROJECT_ID" --file=role-template.yaml

Wait until the script finishes.

Step 8

Return to Uniskai and generate Service Account Email. This email is used to grant Uniskai access to your GCP project.

Click Generate email, then copy the generated email

Step 9

In the side menu or the search field, navigate to the IAM page.

Then click Grant access.

Step 9

Paste the email from Step 8 into New principals.

Add the following roles:

  • Uniskai Service Role

  • Browser (under Basic roles)

Click Save.

Step 10

Return to Uniskai and click Connect project. The connection may take a few minutes.

Step 11

(Optional) To enable billing features in Uniskai, refer to the billing setup guide. This step can be completed later.

For instructions on adding billing permissions, see the billing setup manual.

Step 12

Once completed the account appears in Account Manager. Status shows Connected (Read-only). No further action is required

Did this answer your question?