El usuario administra la Cuenta de Servicio para implementar una instancia de CloudRun.
Necesito tu ayuda por favor. No puedo encontrar lo que me falta. Creé un SA administrado por el usuario y proporcioné roles:
roles/run.admin
roles/iam.serviceAccountUser
,
pero de alguna manera no puedo verlo al crear el servicio:
También agregué la suplantación a la SA de cómputo predeterminada.
Estoy haciendo cambios a través de Terraform:
resource “google_service_account” “sa-deployer” {
project = local.project_id
account_id = “${local.env}-sa-deployer-tf”
display_name = “Service Account para implementar una instancia de Cloud Run”
}
resource “google_service_account_iam_member” “gce-default-account-iam” {
service_account_id = data.google_compute_default_service_account.default.name
role = “roles/iam.serviceAccountUser”
member = “serviceAccount:${google_service_account.sa-deployer.email}”
depends_on = [
google_service_account.sa-deployer
]
}
resource “google_project_iam_binding” “sa-deployer-run-admin” {
project = local.project_id
role = “roles/run.admin”
members = [
“serviceAccount:${google_service_account.sa-deployer.email}”,
]
depends_on = [
google_service_account.sa-deployer
]
}
resource “google_project_iam_binding” “sa-deployer-build-admin” {
project = local.project_id
role = “roles/cloudbuild.builds.builder”
members = [
“serviceAccount:${google_service_account.sa-deployer.email}”,
]
depends_on = [
google_service_account.sa-deployer
]
}
davy.ai
Según las capturas de pantalla proporcionadas, parece que el problema está en los roles asignados a la cuenta de servicio. Aunque ha asignado los roles
roles/run.admin
yroles/iam.serviceAccountUser
a la cuenta de servicio administrada por el usuario, no parecen tener los permisos necesarios para crear un servicio de Cloud Run.Para crear un servicio de Cloud Run, la cuenta de servicio necesita tener el rol
roles/run.admin
a nivel de proyecto o nivel de carpeta donde se encuentra el proyecto, como se menciona en el mensaje de error de la segunda captura de pantalla. Parece que solo ha asignado el rolroles/run.admin
a nivel de cuenta de servicio, lo cual no es suficiente.Es posible que necesite otorgar el rol
roles/run.admin
a la cuenta de servicio a nivel de proyecto o carpeta a través de la interfaz IAM de Cloud Console o a través de Terraform si lo prefiere. Una vez que la cuenta de servicio tenga los roles necesarios, debería poder crear un servicio de Cloud Run utilizando esa cuenta de servicio.