SC26AI agents lab + dinner on the river · Nov 17
Parallel Works

Google

This page explains how to set up a Google account so that ACTIVATE can manage your Google infrastructure, clusters, billing, storage, and usage data.

The steps on this page should be completed by a cloud engineer in your organization.

Google Account

We recommend creating a new Google project for the ACTIVATE platform, which will allow you to keep your existing Google project separate from the platform and make it easier to manage billing and usage data. This will also ensure the principle of least privilege, as ACTIVATE will only have access to the resources it needs to manage.

Ensure the following APIs are enabled for the project in the API & Services page:

  • Cloud Resource Manager API
  • IAM API
  • Compute Engine API
  • Filestore API

Setting Up Google Credentials

To get started quickly, you can create a new service account and add the Owner role. This will allow ACTIVATE to manage all resources in your project. If you want to limit the scope of the service account, you can create a custom role and assign it to the service account.

Creating a Service Account Key

ACTIVATE uses service account keys to authenticate with Google Cloud. You can create a new service account key by following the steps on the Google documentation.

Google Permissions

This section includes the permissions or roles you'll need to assign to the Google service account you create for ACTIVATE. You can create a custom role with all the necessary permissions in the IAM console, or assign the Owner role, which includes all of them.

Permission Check

After you add the cloud account, ACTIVATE checks that the service account has every permission listed below and shows any that are missing on the cloud account detail page. Permissions granted through custom roles, inherited roles and groups all count.

pw-compute

These permissions are used to create and manage VMs, disks, snapshots and networks.

89 permissions
  • compute.instances.create
  • compute.instances.delete
  • compute.instances.get
  • compute.instances.list
  • compute.instances.start
  • compute.instances.stop
  • compute.instances.setLabels
  • compute.instances.setMachineType
  • compute.instances.setMetadata
  • compute.instances.setServiceAccount
  • compute.instances.setTags
  • compute.instances.attachDisk
  • compute.instances.detachDisk
  • compute.instances.addAccessConfig
  • compute.disks.create
  • compute.disks.createSnapshot
  • compute.disks.delete
  • compute.disks.get
  • compute.disks.list
  • compute.disks.setLabels
  • compute.disks.use
  • compute.disks.useReadOnly
  • compute.snapshots.create
  • compute.snapshots.delete
  • compute.snapshots.get
  • compute.snapshots.list
  • compute.snapshots.setLabels
  • compute.snapshots.useReadOnly
  • compute.zones.list
  • compute.images.get
  • compute.images.useReadOnly
  • compute.acceleratorTypes.list
  • compute.networkProfiles.list
  • compute.instanceTemplates.create
  • compute.instanceTemplates.delete
  • compute.instanceTemplates.get
  • compute.instanceTemplates.list
  • compute.instanceGroupManagers.create
  • compute.instanceGroupManagers.delete
  • compute.instanceGroupManagers.get
  • compute.instanceGroupManagers.list
  • compute.instanceGroupManagers.update
  • compute.instanceGroups.delete
  • compute.zoneOperations.get
  • compute.regionOperations.get
  • compute.globalOperations.get
  • compute.networks.create
  • compute.networks.delete
  • compute.networks.get
  • compute.networks.use
  • compute.networks.updatePolicy
  • compute.subnetworks.create
  • compute.subnetworks.delete
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.routers.create
  • compute.routers.delete
  • compute.routers.get
  • compute.routers.update
  • compute.routers.list
  • compute.routes.create
  • compute.routes.delete
  • compute.addresses.create
  • compute.addresses.createInternal
  • compute.addresses.delete
  • compute.addresses.get
  • compute.addresses.list
  • compute.addresses.setLabels
  • compute.addresses.use
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.delete
  • compute.globalAddresses.get
  • compute.globalAddresses.setLabels
  • compute.firewalls.create
  • compute.firewalls.delete
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.resourcePolicies.create
  • compute.resourcePolicies.delete
  • compute.resourcePolicies.get
  • compute.resourcePolicies.list
  • compute.resourcePolicies.use
  • servicenetworking.services.addPeering
  • servicenetworking.services.deleteConnection
  • servicenetworking.services.get
  • servicenetworking.operations.get

pw-storage

These permissions are used to create and manage Cloud Storage buckets, Filestore and Managed Lustre instances, and the service accounts and HMAC keys that give clusters access to buckets.

26 permissions
  • storage.buckets.create
  • storage.buckets.delete
  • storage.buckets.get
  • storage.buckets.getIamPolicy
  • storage.buckets.list
  • storage.buckets.setIamPolicy
  • storage.buckets.update
  • storage.hmacKeys.create
  • storage.hmacKeys.delete
  • storage.hmacKeys.list
  • storage.hmacKeys.update
  • storage.managedFolders.delete
  • storage.managedFolders.list
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list
  • file.instances.create
  • file.instances.delete
  • file.instances.get
  • file.instances.list
  • file.operations.get
  • lustre.instances.create
  • lustre.instances.delete
  • lustre.instances.get
  • lustre.instances.list
  • lustre.operations.get

pw-iam

These permissions are used to create the service accounts ACTIVATE uses on your behalf and to grant them access to the project.

10 permissions
  • iam.serviceAccounts.create
  • iam.serviceAccounts.delete
  • iam.serviceAccounts.get
  • iam.serviceAccounts.actAs
  • iam.serviceAccountKeys.create
  • iam.serviceAccountKeys.delete
  • iam.serviceAccountKeys.list
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

pw-billing

These permissions are used to provision and access billing infrastructure.

12 permissions
  • bigquery.datasets.create
  • bigquery.datasets.delete
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.jobs.create
  • bigquery.tables.delete
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.list
  • serviceusage.operations.get
  • serviceusage.services.enable
  • serviceusage.services.use