Google: Service Account
Using service accounts is more complex than OAuth2. Before you begin:
- Check if your node is compatible with Service Account.
- Make sure you need to use service account. For most use cases, OAuth2 is a better option.
- Read the Google documentation on Creating and managing service accounts .
Prerequisites
- Google Cloud {:targe=_blank .external-link} account
- Google Cloud Platform project {:targe=_blank .external-link}
Set up Service Account
Create a new credential in Mosaic Workflows
- Follow the steps to Create a credential .
- Note the Private Key from the node credential modal. You'll need this in the next section.
Set up service account in Google Cloud
In your Google Cloud Console dashboard:
- Select the hamburger menu > APIs & Services > Credentials . Google takes you to your Credentials page.
- Select + CREATE CREDENTIALS > Service account .
- Enter a name in Service account name , and an ID in Service account ID . Refer to Creating a service account for more information.
- Select CREATE AND CONTINUE .
- Based on your use-case, you may want to Select a role and Grant users access to this service account using the corresponding sections.
- Select DONE .
- Select your newly created service account under the Service Accounts section. Open the KEYS tab.
- Select ADD KEY > Create new key .
- In the modal that appears, select JSON , then select CREATE . Google saves the file to your computer.
-
Enable each Google service API that you want to use:
- Access your Google Cloud Console - Library . Make sure you're in the correct project.
- Search for and select the API(s) you want to enable. For example, for the Gmail node, search for and enable the Gmail API.
- Select ENABLE .
Create and test your connection
In Mosaic Workflows:
- In the Service Account Email field, enter the email associated with your new Service Account (you can find this in the Details tab in Google Cloud).
-
Enter the
Private Key
from the downloaded JSON file. If you're running a Mosaic Workflows version older than 0.156.0: replace all instances of
\n
in the JSON file with new lines. - Optional : Click the toggle to enable Impersonate a User and enter the email.
- Save your credentials.
Troubleshooting
Service Account can't access Google Drive files
A Service Account can't access Google Drive files and folders that weren't shared with its associated user email.
- Access your Google Cloud Console and copy your Service Account email.
- Access your Google Drive and go to the designated file or folder.
- Right-click on the file or folder and select Share .
- Paste your Service Account email into Add People and groups .
- Select Editor for read-write access or Viewer for read-only access.