Skip to main content

Configure authentication and permissions for GCP connectors

Google Cloud Platform (GCP unified) connectors in DigiCert​​®​​ Trust Lifecycle Manager support authentication via a Google Cloud service account.

The way you set up the integration depends on the scope of the connector (organization scope or project scope).

Organization scope setup

When configured with organization scope, the connector provides access to a Google Cloud organization or folder and all of its child projects.

For organization scope, you need to create one main service account to authenticate the connector and additional service accounts to manage all the child projects.

Create the service accounts in Google Cloud

In Google Cloud, prepare the required accounts and permissions as follows:

  1. Select any project within the parent Google Cloud organization or folder to create the main service account in.

  2. Create a service account in the selected project. This will be the main service account used to authenticate the connector.

  3. Assign the new service account the Folder Viewer role in the parent organization or folder.

  4. Create a custom role in the parent organization or folder that contains all the permissions in the Minimum required permissions section below.

  5. Assign the custom role you created in step 4 to the main service account you created in step 2.

  6. Create and download a JSON key for the main service account you created in step 2:

    1. In the Google Cloud console, select the project where the service account is set up.

    2. Select the service account by its email address.

    3. Select the Keys tab for the service account.

    4. Open the Add key dropdown and select Create new key.

    5. Select JSON as the Key type and select Create.

    Important

    The JSON key file gets downloaded to your computer and looks like the example shown in the Example service account key JSON file section below. Save this JSON file in a secure location so you can use it when configuring the connector in Trust Lifecycle Manager.

  7. Create additional service accounts in all the individual Google Cloud projects to manage, all with the same account name. These service accounts are used to access and manage the individual projects within the parent organization or folder.

    Important

    All the service accounts you create in this step must have the same name. You will provide this name in the Impersonate service account name field when configuring the connector in Trust Lifecycle Manager.

  8. For each additional service account you created in step 6:

    • Assign the custom role you created in step 4.

    • Assign the Service Account Token Creator role, mapping it to the main authentication service account you created in step 2.

  9. Make sure each individual Google Cloud project that you will manage via the connector has the following API services enabled:

    • Certificate Manager API

    • Compute Engine API

    • Cloud Resource Manager API

Configure the connector in Trust Lifecycle Manager

When configuring the organization-scoped GCP unified connector in Trust Lifecycle Manager, provide values for the following fields in the Configuration settings section:

  • GCP scope: Select Organization.

  • Folder / Organization ID: Enter the ID of the parent Google Cloud organization or folder with all the projects to manage.

  • Get the values for the following fields from the service account key JSON file you created in step 6 above:

    • Project ID: Enter the value of the project_id property.

    • Private key ID: Enter the value of the private_key_id property.

    • Private key: Enter the value of the private_key property including the "BEGIN" and "END" tags.

    • Client email: Enter the value of the client_email property.

    • Client ID: Enter the value of the client_id property.

  • Impersonate service account name: Enter the common name of the additional service accounts you created in all of the child projects in step 7 above.

Project scope setup

When configured with project scope, the connector provides access to a specific project in your Google Cloud organization.

For project scope, you only need to create one main service account, used to authenticate the connector.

Create the service account in Google Cloud

In Google Cloud, prepare the required account and permissions as follows:

  1. Select the specific Google Cloud project to manage via the Trust Lifecycle Manager connector.

  2. Create a service account in the selected project.

  3. Create a custom role in the selected project that contains all the permissions in the Minimum required permissions section below.

  4. Assign the custom role you created in step 3 to the service account you created in step 2.

  5. Create and download a JSON key for the service account:

    1. In the Google Cloud console, select the project where the service account is set up.

    2. Select the service account by its email address.

    3. Select the Keys tab for the service account.

    4. Open the Add key dropdown and select Create new key.

    5. Select JSON as the Key type and select Create.

    Important

    The JSON key file gets downloaded to your computer and looks like the example shown in the Example service account key JSON file section below. Save this JSON file in a secure location so you can use it when configuring the connector in Trust Lifecycle Manager.

  6. Make sure the selected Google Cloud project has the following API services enabled:

    • Certificate Manager API

    • Compute Engine API

    • Cloud Resource Manager API

Configure the connector in Trust Lifecycle Manager

When configuring the project-scoped GCP unified connector in Trust Lifecycle Manager, provide values for the following fields in the Configuration settings section:

  • GCP scope: Select Project.

  • Get the values for the following fields from the service account key JSON file you created in step 5 above:

    • Project ID: Enter the value of the project_id property.

    • Private key ID: Enter the value of the private_key_id property.

    • Private key: Enter the value of the private_key property including the "BEGIN" and "END" tags.

    • Client email: Enter the value of the client_email property.

    • Client ID: Enter the value of the client_id property.

Example service account key JSON file

The service account key JSON file that you create and download in Google Cloud should resemble the example shown below. Use the values in the downloaded JSON file to fill out the Configuration settings section for the GCP unified connector in Trust Lifecycle Manager.

{  
  "type": "my-service-account",  
  "project_id": "my-gcp-project-1",  
  "private_key_id": "0888c80dd415874d2247ab55555b7ac0ee99963b",  
  "private_key": "-----BEGIN PRIVATE KEY-----\n{private key value}\n-----END PRIVATE KEY-----\n",  
  "client_email": "my-service-account@my-org.iam.gserviceaccount.com",  
  "client_id": "111446787751705551234",  
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",  
  "token_uri": "https://oauth2.googleapis.com/token",  
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",  
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-service-account.iam.gserviceaccount.com",  
  "universe_domain": "googleapis.com"

Minimum required permissions

GCP unified connectors in Trust Lifecycle Manager require the following Google Cloud permissions at minimum.

certificatemanager.certmapentries.create
certificatemanager.certmapentries.get
certificatemanager.certmapentries.list
certificatemanager.certmapentries.update
certificatemanager.certmaps.create
certificatemanager.certmaps.get
certificatemanager.certmaps.list
certificatemanager.certmaps.update
certificatemanager.certmaps.use
certificatemanager.certs.create
certificatemanager.certs.delete
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.update
certificatemanager.certs.use
certificatemanager.locations.get
certificatemanager.locations.list
certificatemanager.operations.cancel
certificatemanager.operations.delete
certificatemanager.operations.get
certificatemanager.operations.list
cloudasset.assets.listComputeSslCertificates
compute.addresses.get
compute.addresses.list
compute.forwardingRules.create
compute.forwardingRules.createTagBinding
compute.forwardingRules.get
compute.forwardingRules.list
compute.forwardingRules.setTarget
compute.forwardingRules.update
compute.forwardingRules.use
compute.globalAddresses.get
compute.globalAddresses.list
compute.globalAddresses.use
compute.globalForwardingRules.create
compute.globalForwardingRules.delete
compute.globalForwardingRules.get
compute.globalForwardingRules.list
compute.globalForwardingRules.setTarget
compute.globalForwardingRules.update
compute.globalOperations.get
compute.regionOperations.get
compute.regionSslCertificates.create
compute.regionSslCertificates.get
compute.regionSslCertificates.list
compute.regionTargetHttpProxies.create
compute.regionTargetHttpProxies.get
compute.regionTargetHttpProxies.list
compute.regionTargetHttpProxies.setUrlMap
compute.regionTargetHttpProxies.use
compute.regionTargetHttpsProxies.create
compute.regionTargetHttpsProxies.get
compute.regionTargetHttpsProxies.list
compute.regionTargetHttpsProxies.setSslCertificates
compute.regionTargetHttpsProxies.setUrlMap
compute.regionTargetHttpsProxies.update
compute.regionTargetHttpsProxies.use
compute.regionTargetTcpProxies.get
compute.regionTargetTcpProxies.list
compute.regions.list
compute.sslCertificates.create
compute.sslCertificates.delete
compute.sslCertificates.get
compute.sslCertificates.list
compute.targetHttpProxies.create
compute.targetHttpProxies.get
compute.targetHttpProxies.list
compute.targetHttpProxies.setUrlMap
compute.targetHttpProxies.update
compute.targetHttpProxies.use
compute.targetHttpsProxies.create
compute.targetHttpsProxies.get
compute.targetHttpsProxies.list
compute.targetHttpsProxies.setCertificateMap
compute.targetHttpsProxies.setSslCertificates
compute.targetHttpsProxies.update
compute.targetHttpsProxies.use
compute.targetSslProxies.create
compute.targetSslProxies.get
compute.targetSslProxies.list
compute.targetSslProxies.setCertificateMap
compute.targetSslProxies.setSslCertificates
compute.targetSslProxies.update
compute.targetSslProxies.use
secretmanager.locations.get
secretmanager.locations.list
secretmanager.secrets.create
secretmanager.secrets.delete
secretmanager.secrets.get
secretmanager.secrets.list
secretmanager.secrets.update
secretmanager.versions.access
secretmanager.versions.add
secretmanager.versions.get
Publication date: