arrow_back

Aspectos principales de las cuentas de servicio y los roles

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Aspectos principales de las cuentas de servicio y los roles

Lab 1 hora 15 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP199

Labs de autoaprendizaje de Google Cloud

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:

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)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. 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
  2. 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.
  3. 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.

  4. Haz clic en Siguiente.

  5. 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.

  6. 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.
  7. 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.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

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.

  1. Haz clic en Activar Cloud Shell Ícono de 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:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de 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:

gcloud config set compute/region {{{project_0.default_region | Region}}}

¿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:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

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:

PROJECT_ID@appspot.gserviceaccount.com

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:

PROJECT_NUMBER@cloudservices.gserviceaccount.com

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.

Nota: Los servicios de Google dependen de que la cuenta tenga acceso al proyecto. Por este motivo, no deberías quitar ni cambiar el rol de la cuenta de servicio en tu 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:
gcloud iam service-accounts create my-sa-123 --display-name "my service account"

El resultado de este comando es la cuenta de servicio, que será similar a lo siguiente:

Created service account [my-sa-123]

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:
gcloud projects add-iam-policy-binding $DEVSHELL_PROJECT_ID \ --member serviceAccount:my-sa-123@$DEVSHELL_PROJECT_ID.iam.gserviceaccount.com --role roles/editor

El resultado mostrará una lista de los roles que ahora tiene la cuenta de servicio:

bindings: - members: - user:email1@gmail.com role: roles/owner - members: - serviceAccount:our-project-123@appspot.gserviceaccount.com - serviceAccount:123456789012-compute@developer.gserviceaccount.com - serviceAccount:my-sa-123@my-project-123.iam.gserviceaccount.com - user:email3@gmail.com role: roles/editor - members: - user:email2@gmail.com role: roles/viewer etag: BwUm38GGAQk= version: 1

Haz clic en Revisar mi progreso para verificar el objetivo. Crear y administrar cuentas de servicio

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.

  1. Ve al menú de navegación > IAM y administración, selecciona Cuentas de servicio y haz clic en + Crear cuenta de servicio.

  2. Completa los detalles necesarios con lo siguiente:

  • Nombre de la cuenta de servicio: bigquery-qwiklab
  1. 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:

Crea una página de pestañas de cuentas de servicio

  1. Haz clic en Continuar y, luego, en Listo.

Crea una instancia de VM

  1. En la consola, ve a Compute Engine > Instancias de VM y haz clic en Crear instancia.

  2. 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
Nota: Si la cuenta de servicio “bigquery-qwiklab” no aparece en la lista desplegable, escribe el nombre en la sección “Filtro”.
  1. Haz clic en Crear.

Ingresa el código de ejemplo en una instancia de Compute Engine

  1. En la consola, ve a Compute Engine > Instancias de VM.
  2. Establece una conexión SSH en bigquery-instance haciendo clic en el botón SSH.
Nota: Mientras se establece la conexión con SSH, puedes hacer clic en Conectarse sin Identity-Aware Proxy.

En la ventana de SSH, ejecuta los siguientes comandos para instalar las dependencias necesarias:

sudo apt-get update sudo apt-get install -y git python3-pip pip3 install --upgrade pip pip3 install google-cloud-bigquery pip3 install pyarrow pip3 install pandas pip3 install db-dtypes

Ahora, crea el archivo de Python de ejemplo:

echo " from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project='{{{project_0.project_id | Your Project ID}}}', credentials=credentials) print(client.query(query).to_dataframe()) " > query.py

Agrega el ID del proyecto a query.py usando el siguiente comando:

sed -i -e "s/{{{project_0.project_id | Your Project ID}}}/$(gcloud config get-value project)/g" query.py

Ejecuta el siguiente comando para asegurarte de que sed haya cambiado correctamente el ID del proyecto en el archivo:

cat query.py

Resultado de ejemplo (es posible que el tuyo sea distinto):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

Agrega el correo electrónico de la cuenta de servicio a query.py con:

sed -i -e "s/YOUR_SERVICE_ACCOUNT/bigquery-qwiklab@$(gcloud config get-value project).iam.gserviceaccount.com/g" query.py

Ejecuta el siguiente comando para asegurarte de que sed haya cambiado correctamente el correo electrónico de la cuenta de servicio en el archivo:

cat query.py

Resultado de ejemplo (es posible que el tuyo sea distinto):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='bigquery-qwiklab@{{{ project_0.project_id }}}.iam.gserviceaccount.com') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

Ahora la aplicación usará los permisos asociados con esta cuenta de servicio. Ejecuta la consulta con el siguiente comando de Python:

python3 query.py

La consulta debería devolver el siguiente resultado (es posible que el tuyo sea distinto):

Row year num_babies 0 2008 4255156 1 2006 4273225 2 2003 4096092 3 2004 4118907 4 2002 4027376 5 2005 4145619 6 2001 4031531 7 2007 4324008 Nota: Es posible que los valores de tus filas no coincidan con los años del resultado anterior. No obstante, asegúrate de que la cantidad de bebés por año sea la misma.

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. Acceder a BigQuery con una cuenta de servicio

¡Felicitaciones!

En este lab, aprendiste a usar las cuentas de servicio.

Próximos pasos y más información

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.

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible