From 33d4c978101ecd90d83f45aab3f6f9a19a916288 Mon Sep 17 00:00:00 2001 From: Monty Chavez Date: Fri, 21 Jun 2024 13:57:01 -0500 Subject: [PATCH] Patch 5.4.1 - Cloud Build service account update --- README.md | 37 +++++++++++++++++----- RELEASE_NOTES.md | 11 +++++++ images/5.png | Bin 86770 -> 0 bytes images/cloudbuild_compute_sa.png | Bin 0 -> 25113 bytes src/utils/interactive/apply_config.py | 44 +++++++++++++++++++------- 5 files changed, 73 insertions(+), 19 deletions(-) delete mode 100644 images/5.png create mode 100644 images/cloudbuild_compute_sa.png diff --git a/README.md b/README.md index 8c86ba2..87742bc 100644 --- a/README.md +++ b/README.md @@ -196,20 +196,41 @@ These permissions may vary depending on the setup of the project. Consider the f ### Configure the Cloud Build account -In the source project, navigate to the [Cloud Build](https://console.cloud.google.com/cloud-build/settings/service-account) and locate the account that will execute the deployment process. +You need to grant the Cloud Build service account permissions to deploy Cortex. -![cloud build service account](images/5.png "image_tooltip") +Cloud Build uses a service account to execute builds on your behalf. [Cloud Build service account](https://cloud.google.com/build/docs/cloud-build-service-account) describes how Cloud Build uses the default service account. -Locate the build account in [IAM](https://pantheon.corp.google.com/iam-admin/iam) (make sure it says _cloudbuild_): +To grant the required permissions, perform the following steps: -![Cloud build service account in IAM](images/6.png "image_tooltip") +1. Find the default Cloud Build service account by opening [Cloud Shell](https://shell.cloud.google.com/?show=terminal) and executing the following gcloud command: + ```bash + gcloud builds get-default-service-account --project + ``` + +2. You should see a response formatted as either: + + `serviceAccountEmail: projects//serviceAccounts/-compute@developer.gserviceaccount.com` + + or + + `serviceAccountEmail: projects//serviceAccounts/@cloudbuild.gserviceaccount.com` + + Note the last part, `-compute@developer.gserviceaccount.com` or `@cloudbuild.gserviceaccount.com`, This is your default Cloud Build service account. + + +3. Locate this service account in [IAM](https://console.cloud.google.com/iam-admin/iam): + ![Cloud build service account in IAM](images/6.png "Cloud Build service account") + + or + + ![Cloud build compute service account in IAM](images/cloudbuild_compute_sa.png "Cloud Build Compute service account") -Grant the following permissions to the Cloud Build service account in both the source and target projects if they are different: +4. Grant the following permissions to the Cloud Build service account in the source project (and the target project if deploying to a separate target): -- BigQuery Data Editor -- BigQuery Job User + - BigQuery Data Editor + - BigQuery Job User -\[Optional\] If changing the default values for Data Mesh in `config/config.json` to implement features beyond descriptions, the executing account (Cloud Build service account) will need to have the following permissions: +\[Optional\] If changing the default values for Data Mesh in `config/config.json` to implement features beyond descriptions, the executing account (Cloud Build service account) will need to have the following additional permissions: - Policy Tag Admin - Data Catalog TagTemplate Owner - Dataplex Editor diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 5208664..dfddb50 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,14 @@ +## June 2024 - Release 5.4.2 +The Cloud Build default service account behavior has changed and will now default to one of two types of service accounts: +* The legacy Cloud Build service account `@cloudbuild.gserviceaccount.com`. +* The project's compute service account `-compute@developer.gserviceaccount.com`. + +This release updates the [Quick demo deployment](README.md#quick-demo-deployment) to use either default account. + +The guidance in [Configure the Cloud Build account](README.md#configure-the-cloud-build-account) has also been updated with the latest instructions to determine your Cloud Build default account. + +Additional details about the Cloud Build change can be found at [Cloud Build Service Account Change](https://cloud.google.com/build/docs/cloud-build-service-account-updates). + ## May 2024 - Release 5.4.1 ### Marketing * Table schema directory location re-aligned for Google Ads, CM360 and TikTok: moved from `src/marketing/src/SOURCE/src/table_schema` to `src/marketing/src/SOURCE/config/table_schema` matching other Marketing sources. diff --git a/images/5.png b/images/5.png deleted file mode 100644 index a0b98c5f82e436a43bb76dfe63a6dc50e822be00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86770 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

~nwhy+iFkMU*5>_k1{)*|Dj1z% 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

>wzFsP&?( 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 btN)o#H*e{hlzW4l0SG)@{an^LB{Ts5S>qI& diff --git a/images/cloudbuild_compute_sa.png b/images/cloudbuild_compute_sa.png new file mode 100644 index 0000000000000000000000000000000000000000..9f106ddd3241dbfb4f408ec4d50377e95a15dd2b GIT binary patch literal 25113 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±)S}O6ljSJs42OP)sja~ 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 bd}FfP9X6ggdnp7w>w(G00Igr5cRli-qF7o- literal 0 HcmV?d00001 diff --git a/src/utils/interactive/apply_config.py b/src/utils/interactive/apply_config.py index 14f7c0d..8031360 100644 --- a/src/utils/interactive/apply_config.py +++ b/src/utils/interactive/apply_config.py @@ -1,4 +1,4 @@ -# Copyright 2023 Google LLC +# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,21 +17,36 @@ import logging import typing +from google.api_core import retry +from google.api_core.exceptions import Conflict +from google.api_core.exceptions import Forbidden +from google.api_core.exceptions import Unauthorized +from google import auth as gauth +from google.auth.transport import requests +from google.cloud import bigquery +from google.cloud import storage +from google.cloud.bigquery.enums import EntityTypes import googleapiclient.discovery from googleapiclient.errors import HttpError -from google.api_core.exceptions import Unauthorized, Forbidden, Conflict -from google.cloud import bigquery, storage -from google.cloud.bigquery.enums import EntityTypes +_RETRY_TIMEOUT_SEC = 60.0 # Timeout for API retries SOURCE_PROJECT_APIS = ["cloudresourcemanager", "storage-component", "bigquery", "cloudbuild"] TARGET_PROJECT_APIS = ["storage-component", "bigquery"] PROJECT_ROLES = ["roles/bigquery.user"] + +@retry.Retry(predicate=retry.if_exception_type(KeyError, HttpError), + timeout=_RETRY_TIMEOUT_SEC) def get_cloud_build_account(project_id: str) -> str: - """Retrieves GCP project Cloud Build account principal by project name/id. + """ + Retrieves GCP project Cloud Build account principal by project name/id. + + Since this gets called soon after the Cloud Build API is enabled, + the @retry.Retry dectorator is called to ensure the API is available before + this function proceeds with retrieving the serivce account. Args: project_id (str): project id @@ -39,11 +54,18 @@ def get_cloud_build_account(project_id: str) -> str: Returns: str: Cloud Build account principal """ - crm = googleapiclient.discovery.build("cloudresourcemanager", "v1", - cache_discovery=False) - project = crm.projects().get(projectId=project_id).execute() - project_number = project["projectNumber"] - return f"{project_number}@cloudbuild.gserviceaccount.com" + + # Get default Cloud Build account + cloudbuild_account_url =( + "https://cloudbuild.googleapis.com/v1/projects/" + f"{project_id}/locations/global/defaultServiceAccount") + + credentials,_ = gauth.default(quota_project_id=project_id) + session = requests.AuthorizedSession(credentials) + response_json = session.get(cloudbuild_account_url).json() + sa_email = response_json["serviceAccountEmail"] + + return sa_email.split("/")[-1] def add_bq_roles(client: bigquery.Client, dataset: bigquery.Dataset, @@ -228,7 +250,7 @@ def add_bucket_roles(client: storage.Client, bucket: storage.Bucket, else: if service_account_name not in role_binding["members"]: modified = True - role_binding["members"].append(service_account_name) + role_binding["members"].add(service_account_name) if modified: try: