Puntos de control
Creating and Managing Service Accounts
/ 30
Access BigQuery from a Service Account
/ 70
Aspectos principales de las cuentas de servicio y los roles
GSP199
Descripción general
Las cuentas de servicio son un tipo especial de Cuenta de Google que otorga permisos a máquinas virtuales, en lugar de a usuarios finales. Se usan principalmente para garantizar que las conexiones a las APIs y los servicios de Google Cloud sean seguras y estén administradas. Otorgar acceso a conexiones de confianza y rechazar las que sean maliciosas es una función de seguridad que se debe tener en cualquier proyecto de Google Cloud. En este lab, podrás practicar con los pormenores de las cuentas de servicio.
Qué aprenderás
En este lab, aprenderás a realizar las siguientes tareas:
- Crear y administrar cuentas de servicio
- Crear una máquina virtual y asociarla con una cuenta de servicio
- Usar bibliotecas cliente para acceder a BigQuery desde una cuenta de servicio
- Ejecutar una consulta en un conjunto de datos públicos de BigQuery desde una instancia de Compute Engine
Requisitos previos
Se recomienda tener algo de experiencia con Cloud IAM, pero se da por supuesto que tu conocimiento sobre las cuentas de servicio es escaso o nulo. Si quieres realizar una práctica más avanzada relacionada con esta área temática, consulta los siguientes labs:
- Intercambio de tráfico entre redes de VPC
- Cómo configurar un clúster de Kubernetes privado
- Cómo crear una VPN de alta capacidad de procesamiento
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón Abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta. -
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}} También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}} También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales. -
Haga clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
- Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Establece la región para tu proyecto
Ejecuta el siguiente comando para establecer la región de tu proyecto:
¿Qué son las cuentas de servicio?
Una cuenta de servicio es un tipo especial de Cuenta de Google que pertenece a tu aplicación o a una máquina virtual (VM) en lugar de a un usuario final individual. Tu aplicación usa la cuenta de servicio para llamar a la API de Google de un servicio, de modo que los usuarios no están involucrados de manera directa.
Por ejemplo, una VM de Compute Engine puede ejecutarse como una cuenta de servicio y esa cuenta puede obtener permisos para acceder a los recursos que necesita. De esta forma, la cuenta de servicio es la identidad del servicio y los permisos de la cuenta de servicio controlan los recursos a los que tiene acceso el servicio.
Una cuenta de servicio se identifica por su dirección de correo electrónico, que es única para la cuenta.
Tipos de cuentas de servicio
Cuentas de servicio administradas por el usuario
Cuando creas un nuevo proyecto de Cloud a través de la consola de Google Cloud, si la API de Compute Engine está habilitada para el proyecto, se te creará una cuenta de servicio de Compute Engine de forma predeterminada. Se la puede identificar con la siguiente dirección de correo electrónico:
Si tu proyecto contiene una aplicación de App Engine, la cuenta de servicio predeterminada de App Engine se crea en tu proyecto de forma predeterminada. Se la puede identificar con la siguiente dirección de correo electrónico:
Cuentas de servicio administradas por Google
Además de las cuentas de servicio administradas por el usuario, es posible que veas algunas cuentas de servicio adicionales en la política de IAM de tu proyecto o en la consola. Estas cuentas de servicio son creación y propiedad de Google. Estas cuentas representan diferentes servicios de Google y a cada una se le otorgan roles de IAM automáticamente para acceder a tu proyecto de Google Cloud.
Cuenta de servicio de las APIs de Google
Un ejemplo de una cuenta de servicio administrada por Google es una cuenta de servicio de la API de Google a la que se identifica con la siguiente dirección de correo electrónico:
Esta cuenta de servicio está diseñada específicamente para ejecutar procesos internos de Google en tu nombre y no aparece en la sección Cuentas de servicio de la consola. De forma predeterminada, la cuenta recibe automáticamente el rol Editor del proyecto y aparece en la sección IAM de la consola. Esta cuenta de servicio solo se borra cuando se borra el proyecto.
Información sobre los roles de IAM
Cuando una identidad llama a una API de Google Cloud, Google Cloud Identity and Access Management exige que la identidad tenga los permisos adecuados para usar el recurso. Puedes otorgar permisos asignándole roles a un usuario, a un grupo o a una cuenta de servicio.
Tipos de roles
Existen tres tipos de roles en Cloud IAM:
- Roles básicos, que incluyen los roles Propietario, Editor y Visualizador que existían antes de la introducción de Cloud IAM
- Roles predefinidos, que proporcionan acceso detallado a un servicio específico y que Google Cloud administra
- Roles personalizados, que proporcionan acceso detallado según una lista de permisos especificada por el usuario
Obtén más información sobre los roles en la Guía para comprender los roles.
Tarea 1. Crea y administra cuentas de servicio
Cuando creas un nuevo proyecto de Cloud, Google Cloud genera automáticamente una cuenta de servicio de Compute Engine y otra de App Engine en el proyecto. Puedes crear hasta 98 cuentas de servicio adicionales para tu proyecto para controlar el acceso a los recursos.
Crea una cuenta de servicio
Crear una cuenta de servicio es similar a agregar un miembro a tu proyecto, pero la cuenta de servicio pertenece a tus aplicaciones en lugar de a un usuario final individual.
- Para crear una cuenta de servicio, ejecuta el siguiente comando en Cloud Shell:
El resultado de este comando es la cuenta de servicio, que será similar a lo siguiente:
Asigna roles a cuentas de servicio
Cuando se otorgan roles de IAM, puedes tratar a una cuenta de servicio como un recurso o como una identidad.
Tu aplicación usa una cuenta de servicio como identidad para autenticarse en los servicios de Google Cloud. Por ejemplo, si tienes una máquina virtual (VM) de Compute Engine que se ejecuta como una cuenta de servicio, puedes otorgar el rol Editor a la cuenta de servicio (la identidad) para un proyecto (el recurso).
Al mismo tiempo, tal vez quieras también controlar quién puede iniciar la VM. Para ello, debes otorgarle al usuario (la identidad) el rol serviceAccountUser para la cuenta de servicio (el recurso).
Otorga roles a una cuenta de servicio para recursos específicos
Para que una cuenta de servicio tenga permisos para realizar acciones específicas en los recursos en tu proyecto de Google Cloud, debes otorgarle roles a la cuenta de servicio. Por ejemplo, puedes otorgarle el rol storage.admin
a una cuenta de servicio para que tenga control de los objetos y buckets de Cloud Storage.
- Ejecuta lo siguiente en Cloud Shell para otorgarle roles a la cuenta de servicio que acabas de crear:
El resultado mostrará una lista de los roles que ahora tiene la cuenta de servicio:
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 2. Usa las bibliotecas cliente para acceder a BigQuery con una cuenta de servicio
En esta sección, consultarás los conjuntos de datos públicos de BigQuery desde una instancia con la ayuda de una cuenta de servicio que tiene los roles necesarios.
Crea una cuenta de servicio
Primero crea una nueva cuenta de servicio desde la consola.
-
Ve al menú de navegación > IAM y administración, selecciona Cuentas de servicio y haz clic en + Crear cuenta de servicio.
-
Completa los detalles necesarios con lo siguiente:
- Nombre de la cuenta de servicio: bigquery-qwiklab
-
Ahora haz clic en Crear y continuar y, luego, agrega los siguientes roles:
-
BigQuery > Visualizador de datos de BigQuery
-
BigQuery > Usuario de BigQuery
-
La consola debería verse de la siguiente manera:
- Haz clic en Continuar y, luego, en Listo.
Crea una instancia de VM
-
En la consola, ve a Compute Engine > Instancias de VM y haz clic en Crear instancia.
-
Crea tu VM con la siguiente información:
Configuración | Valor |
---|---|
Nombre | bigquery-instance |
Región | |
Zona | |
Serie | E2 |
Tipo de máquina | e2-medium |
Disco de arranque | Debian GNU/Linux 11 (bullseye) x86/64 |
Cuenta de servicio | bigquery-qwiklab |
Permisos de acceso | Configurar acceso para cada API |
BigQuery | Enabled |
“bigquery-qwiklab”
no aparece en la lista desplegable, escribe el nombre en la sección “Filtro”.- Haz clic en Crear.
Ingresa el código de ejemplo en una instancia de Compute Engine
- En la consola, ve a Compute Engine > Instancias de VM.
- Establece una conexión SSH en
bigquery-instance
haciendo clic en el botón SSH.
En la ventana de SSH, ejecuta los siguientes comandos para instalar las dependencias necesarias:
Ahora, crea el archivo de Python de ejemplo:
Agrega el ID del proyecto a query.py
usando el siguiente comando:
Ejecuta el siguiente comando para asegurarte de que sed
haya cambiado correctamente el ID del proyecto en el archivo:
Resultado de ejemplo (es posible que el tuyo sea distinto):
Agrega el correo electrónico de la cuenta de servicio a query.py
con:
Ejecuta el siguiente comando para asegurarte de que sed haya cambiado correctamente el correo electrónico de la cuenta de servicio en el archivo:
Resultado de ejemplo (es posible que el tuyo sea distinto):
Ahora la aplicación usará los permisos asociados con esta cuenta de servicio. Ejecuta la consulta con el siguiente comando de Python:
La consulta debería devolver el siguiente resultado (es posible que el tuyo sea distinto):
Buen trabajo. Realizaste una solicitud a un conjunto de datos públicos de BigQuery con una cuenta de servicio bigquery-qwiklab
.
Haz clic en Revisar mi progreso para verificar el objetivo.
¡Felicitaciones!
En este lab, aprendiste a usar las cuentas de servicio.
Próximos pasos y más información
- Obtén más información sobre cómo crear y administrar cuentas de servicio en la Guía para crear y administrar cuentas de servicio.
- Consulta los siguientes labs:
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 17 de julio de 2024
Prueba más reciente del lab: 17 de julio de 2024
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.