Refonte AI

Google Cloud Storage

Google Cloud Storage Access

If you use Google Cloud Storage to store data, if you submit tasks with attachments as `gs:` protocol URIs, rather than `http:` or `https:`, we will use the Google Cloud Storage API to fetch your data. For example, instead of sending `https://storage.googleapis.com/bucket/key`, you would send `gs://bucket/key`.

We can either fetch your data using Service Account Impersonation (preferred, more secure) or Cross-project Access.

Service Account Impersonation

To access Cloud Storage data in your GCP project, Refonte can impersonate a service account within that project, which has permission to access data in Cloud Storage.

To set up Service Account Impersonation:

  • As a team admin or manager, go to dashboard.refonte-ai.com/settings/integrations.
  • In another window, navigate to the GCP Service Accounts page for the appropriate project.
  • Create a service account.
    • The service account ID must contain an 8-character user identifier as a substring, this identifier can be found in the Google Cloud Platform section of the Integrations Settings page.
    • We suggest the ID `refonte-ai-integrations-{uid}`.
  • Grant Refonte.Ai's service account the ability to impersonate the newly created service account
    • In the Service Accounts page on GCP, check the box associated with the newly created service account.
    • In the permissions pane on the right, click `Add Member`, you may need to click "Show Info Panel" in the top right to see this option.
    • Specify `backend-bucket-access@attachment-storage-243718.iam.gserviceaccount.com` as the member, and `Service Account Token Creator` as the role.
    • Save the permissions.
  • In Google Cloud Storage, assign the `Storage Legacy Bucket Reader` or `Storage Bucket Data Reader` permissions for the requisite buckets to the newly created service account.
    • If you use fine-grained access controls, add the service account email as a Reader for any objects you would like to upload (if not already granted by bucket-level access).
  • Return to the Refonte.Ai Dashboard and enter the email of the service account.
overview

Note that if you enable the GCP integration for your account, we will not attempt to fetch attachments from the default service account ( `backend-bucket-access@attachment-storage-243718.iam.gserviceaccount.com`) directly; the policies described in GCP IAM Access will not work.

Cross-project Access

If Service Account Impersonation is not configured, we will directly fetch attachments from your GCS bucket, using the GCP service account `backend-bucket-access@attachment-storage-243718.iam.gserviceaccount.com`. You can grant access to this service account on a per-object basis with ACLs, or on a per-bucket basis with Cloud IAMPermissions.

Please note that this authentication mechanism suffers from the confused deputy problem — a third party that can guess your S3 URLs will be able to submit tasks with your data.

Updated about 2 months ago