Crear un rol personalizado en Google Cloud para encendido y apagado de máquinas

Es posible que queramos delegar ciertas tareas de administración sobre elementos de Google Cloud a usuarios o departamentos, y que no existan roles predefinidos que hagan exactamente lo que necesitamos. Para eso están los roles personalizados, similar a las políticas de IAM de AWS.

Por ejemplo, para crear un rol que permita a un usuario apagar, encender y reinicar máquinas virtuales, podemos crear un rol como el siguiente:

gcloud iam roles create StartStopVms --project ${GOOGLE_CLOUD_PROJECT} \
    --title StartStopVms --description "Can start, stop, suspend, resume and reset VMs" \
    --stage GA --permissions compute.instances.start,compute.instances.stop,compute.instances.suspend,compute.instances.resume,compute.instances.reset

Una vez creado el rol, se lo podemos asignar a un usuario con el siguiente comando:

gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
    --member user@domain.com \
    --role projects/${GOOGLE_CLOUD_PROJECT}/roles/StartStopVms

En el caso que nos aplica, también sería conveniente dar permisos de sólo lectura (en este ejemplo damos permisos de visor sobre el proyecto completo, aunque se podría afinar más para sólo permitir al acceso a la parte de computación):

gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
    --member user@domain.com \
    --role roles/viewer

NOTA: La variable GOOGLE_CLOUD_PROJECT se establece automáticamente en la consola de Cloud Shell; si se ejecuta desde otro tipo de consola, se debe establecer manualmente esta variable, cuyo valor es el ID del proyecto sobre el que se están dando permisos.

Referencias:

comments powered by Disqus