> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: Connecting to Google Cloud Storage

> Connect Google Cloud Storage to Integrate.io ETL using a service account key. Configure bucket access and GCS connection settings for pipelines.

<Frame>
  <iframe className="w-full aspect-video rounded-xl" src="https://fast.wistia.com/embed/iframe/i8j75wsbde" title="Allowing Integrate.io ETL access to my data on Google Cloud Storage" allow="autoplay; fullscreen" allowFullScreen />
</Frame>

### Service Account Creation & JSON Key Generation

<Steps>
  <Step>
    Access your [Google Cloud Console](https://console.cloud.google.com/#/project) and click the relevant project.
  </Step>

  <Step>
    On the sidebar, choose **IAM & Admin -> Service Accounts -> Create Service Account**
  </Step>

  <Step>
    Fill up **Service account name** and then click **Done**.

    <Frame>
      <img src="https://mintcdn.com/integrateio/XpeHmuMzUiEmfOEz/images/connectivity-and-security/image-164.webp?fit=max&auto=format&n=XpeHmuMzUiEmfOEz&q=85&s=06b24d4555f85526adacb177a90b0dbf" alt="Google Cloud Console service account creation form" width="1200" height="1149" data-path="images/connectivity-and-security/image-164.webp" />
    </Frame>
  </Step>

  <Step>
    Click the newly created service account and navigate to **Keys**.
  </Step>

  <Step>
    Generate a JSON key via **Add Key -> Create New Key -> JSON -> Create**.
  </Step>

  <Step>
    We will upload this JSON key later on Integrate.io ETL when creating the connection.
  </Step>
</Steps>

### Grant Access to Cloud Storage Bucket

<Steps>
  <Step>
    Access your [Google Cloud Storage](https://console.cloud.google.com/storage) and click the relevant bucket.
  </Step>

  <Step>
    Under **Permissions** section, click **Grant Access**.
  </Step>

  <Step>
    Input the service account email we created from the previous section under **New Principals** field.
  </Step>

  <Step>
    For Read-only, select the following roles: **Storage Legacy Bucket Reader** and **Storage Legacy Object Reader**.
  </Step>

  <Step>
    For Write access, select the following roles: **Storage Legacy Bucket Writer** and **Storage Legacy Object Reader**.
  </Step>

  <Step>
    Click **Save**.

    <Frame>
      <img src="https://mintcdn.com/integrateio/XpeHmuMzUiEmfOEz/images/connectivity-and-security/image-165.webp?fit=max&auto=format&n=XpeHmuMzUiEmfOEz&q=85&s=8fc77c64d0d8e9c8a45c0a918e73d833" alt="Granting bucket access with Storage Legacy roles" width="1114" height="1468" data-path="images/connectivity-and-security/image-165.webp" />
    </Frame>
  </Step>
</Steps>

### Create a Google Cloud Storage connection in Integrate.io ETL

<Steps>
  <Step>
    Click the Connections icon (lightning bolt) on the top left menu.
  </Step>

  <Step>
    To create a connection, click **New connection**.

    <Frame>
      <img src="https://mintcdn.com/integrateio/XpeHmuMzUiEmfOEz/images/connectivity-and-security/image-166.webp?fit=max&auto=format&n=XpeHmuMzUiEmfOEz&q=85&s=267c0e0f3b1196ce34566fcbf7afa722" alt="New connection button in the Connections menu" width="1200" height="829" data-path="images/connectivity-and-security/image-166.webp" />
    </Frame>
  </Step>

  <Step>
    Select Google Cloud Storage.

    <Frame>
      <img src="https://mintcdn.com/integrateio/XpeHmuMzUiEmfOEz/images/connectivity-and-security/image-167.webp?fit=max&auto=format&n=XpeHmuMzUiEmfOEz&q=85&s=51003641fef24f550f44e9fda4dcee44" alt="Selecting Google Cloud Storage from the connection type list" width="1200" height="829" data-path="images/connectivity-and-security/image-167.webp" />
    </Frame>
  </Step>

  <Step>
    Name the connection. Upload JSON key.

    <Frame>
      <img src="https://mintcdn.com/integrateio/XpeHmuMzUiEmfOEz/images/connectivity-and-security/image-168.webp?fit=max&auto=format&n=XpeHmuMzUiEmfOEz&q=85&s=7beb0d935d3b16e727e3012f33317543" alt="Google Cloud Storage connection form with JSON key upload" width="1200" height="829" data-path="images/connectivity-and-security/image-168.webp" />
    </Frame>
  </Step>

  <Step>
    Click **Test Connection** to make sure the connection details are correct.
  </Step>

  <Step>
    Click **Create connection** to create the connection.

    <Frame>
      <img src="https://mintcdn.com/integrateio/XpeHmuMzUiEmfOEz/images/connectivity-and-security/image-169.webp?fit=max&auto=format&n=XpeHmuMzUiEmfOEz&q=85&s=5705651c2f2f2928ee0cbc6dceaaea00" alt="Test Connection and Create connection buttons" width="1200" height="829" data-path="images/connectivity-and-security/image-169.webp" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/integrateio/XpeHmuMzUiEmfOEz/images/connectivity-and-security/image-170.webp?fit=max&auto=format&n=XpeHmuMzUiEmfOEz&q=85&s=5e364801b2fbc94946932663e4c674b7" alt="Google Cloud Storage connection created and listed in connections" width="1200" height="829" data-path="images/connectivity-and-security/image-170.webp" />
    </Frame>
  </Step>
</Steps>
