Una cuenta de servicio en Google Cloud es esencial para que puedas automatizar tareas y darle permisos a aplicaciones o procesos externos para interactuar con los recursos de tu proyecto.
Usa el siguiente comando para crear una cuenta de servicio nueva:
gcloud iam service-accounts create [SERVICE_ACCOUNT_NAME] \
--description="Cuenta de servicio para gestionar recursos del proyecto" \
--display-name="[DISPLAY_NAME]"
Reemplaza [SERVICE_ACCOUNT_NAME]
con el nombre interno que quieres darle a la cuenta de servicio, y [DISPLAY_NAME]
con el nombre visible.
Para que la cuenta de servicio pueda interactuar con los recursos, es necesario asignarle los roles adecuados. A continuación, se detallan los roles necesarios:
Este rol permite a la cuenta de servicio gestionar la mayoría de los recursos:
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com" \
--role="roles/editor"
Permite gestionar clústeres de Kubernetes (GKE):
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com" \
--role="roles/container.admin"
Permite crear y gestionar bases de datos en Cloud SQL:
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com" \
--role="roles/cloudsql.admin"
Permite gestionar redes y configuraciones VPC:
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com" \
--role="roles/compute.networkAdmin"
Si necesitas usar esta cuenta de servicio desde una aplicación externa o CI/CD, deberás generar una clave para autenticarte:
gcloud iam service-accounts keys create ~/key.json \
--iam-account [SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com
Esto descargará un archivo key.json
que podrás usar para autenticarte en tus aplicaciones o scripts.
Para usar esta cuenta de servicio en tus comandos de gcloud
, primero debes autenticarte con la clave generada:
gcloud auth activate-service-account --key-file=~/key.json
Ahora todos los comandos de gcloud
usarán esta cuenta de servicio con los permisos asignados.