arrow_back

Configuración, uso y revisión de las cuentas de servicio y los permisos de las VMs

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Configuración, uso y revisión de las cuentas de servicio y los permisos de las VMs

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

Descripción general

Las cuentas de servicio son una cuenta especial de Google que otorgan 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 a 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.

Objetivos

En este lab, aprenderás a hacer lo siguiente:

  • 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 búsqueda en un conjunto de datos públicos de BigQuery desde una instancia de Compute Engine

Configuración y requisitos

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Activa Google Cloud Shell

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

Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell destacado

  2. Haz clic en Continuar.

El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:

ID del proyecto destacado en la terminal de Cloud Shell

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.

  • Puedes solicitar el nombre de la cuenta activa con este comando:
gcloud auth list

Resultado:

Credentialed accounts: - @.com (active)

Resultado de ejemplo:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puedes solicitar el ID del proyecto con este comando:
gcloud config list project

Resultado:

[core] project =

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: La documentación completa de gcloud está disponible en la guía de descripción general de gcloud CLI .

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

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 se crea un nuevo proyecto Cloud mediante la consola de Cloud, si la API de Compute Engine está habilitada para tu proyecto, se te creará una cuenta de servicio de Compute Engine de forma predeterminada. Es identificable mediante el 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 manera predeterminada. Es identificable mediante el 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 de Cloud. 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.

Cuentas de servicio de la API de Google

Un ejemplo de cuenta de servicio administrada por Google es una cuenta de servicio de la API de Google identificable mediante el 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 Cloud. De forma predeterminada, la cuenta recibe el rol de editor del proyecto automáticamente y aparece en la sección IAM de la consola de Cloud.

Esta cuenta de servicio solo se borra cuando se borra el proyecto. Los servicios de Google dependen de que la cuenta tenga acceso a tu proyecto. Por este motivo, no deberías quitar ni cambiar el rol de la cuenta de servicio en tu proyecto.

Tarea 1. Crea y administra cuentas de servicio

En esta tarea, crearás y administrarás cuentas de servicio.

De forma predeterminada, puedes crear hasta 100 cuentas de servicio administradas por el usuario en un proyecto. Si esta cuota no satisface tus necesidades, puedes usar la consola de Cloud para solicitar un aumento de cuota.

Nota: Las cuentas de servicio predeterminadas que se describen en esta página no se contabilizan para esta cuota.

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:

Resultado:

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

Cómo otorgar roles a una cuenta de servicio para recursos específicos

Otorgas roles a una cuenta de servicio para que esta tenga permiso y así realizar acciones específicas en los recursos de tu proyecto de Google Cloud. Por ejemplo, puedes otorgar 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.

Resultado:

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

Comprende los roles

Cuando una identidad llama a una API de Google Cloud, Cloud Identity and Access Management (Cloud IAM) requiere que la identidad tenga los permisos adecuados para usar el recurso. Puedes otorgar permisos si asignas 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 de propietario, editor y roles de visualizador que existieron 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

Para obtener más detalles, consulta la documentación de referencia Roles de IAM.

Tarea 2. Usa las bibliotecas cliente para acceder a BigQuery desde una cuenta de servicio

En esta tarea, buscará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 crearás una cuenta de servicio nueva con la consola de Cloud.

  1. En la consola de Cloud, desde el menú de navegación, haz clic en IAM y administración > Cuentas de servicio.
  2. Haz clic en Crear cuenta de servicio.
  3. Especifica el nombre de la cuenta de servicio como bigquery-qwiklab.

Crea un diálogo de configuración de cuenta de servicio

  1. Haz clic en Crear y continuar.
  2. Especifica el rol como BigQuery > Visualizador de datos de BigQuery.
  3. Haz clic en Agregar otro rol.
  4. Especifica el otro rol como BigQuery > Usuario de BigQuery.

Crea un permiso de acceso de rol opcional a la cuenta de servicio

  1. Haz clic en Continuar.

Tu consola de Cloud debería verse de la siguiente manera.

Paso 3: Otorga a los usuarios acceso a service_account

  1. Haz clic en Listo.

Crea una instancia de VM

  1. En la consola de Cloud, desde el menú de navegación, haz clic en Compute Engine > Instancias de VM, y luego haz clic en Crear instancia.
  2. Crea tu VM con la siguiente información:

Configuración

Valor

Nombre

bigquery-instance

Región

us-central1(Iowa)

Zona

us-central1-a

Serie

E2

Tipo de máquina

e2-standard-2 (2 vCPU)

Disco de arranque

Debian GNU/Linux 11 (bullseye)

Cuenta de servicio

bigquery-qwiklab

Permisos de acceso

Permitir el acceso total a todas las APIs de Cloud

Nota: Si la cuenta de servicio bigquery-qwiklab no figura en la lista desplegable, intenta escribir el nombre desde la sección Filtro.

A continuación, verás las opciones que se agregaron cuando seleccionaste un disco de arranque compatible con VMs protegidas.

  1. En la parte inferior de la página, haz clic en el vínculo Herramientas de redes, discos, seguridad, administración, usuario único.

  2. Haz clic en la pestaña Seguridad. Aparecerán las opciones de VM protegida en la parte superior de la pestaña. Si no hubieras seleccionado un disco de arranque con funciones de VM protegida, estas opciones no habrían aparecido. Algunas de estas opciones se seleccionan de forma predeterminada.

  3. Haz clic en la casilla de verificación Activar el arranque seguro.

Arranque seguro y diálogo de seguridad habilitados

Compute Engine no habilita esta opción de forma predeterminada, ya que es posible que los controladores sin firmas y otros software de bajo nivel no sean compatibles. Aun así, si es posible, Google recomienda habilitarlo.

  1. Haz clic en Crear.

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

  1. En la consola de Cloud, ve a Compute Engine > Instancias de VM.
  2. Establece una conexión SSH en bigquery-instance haciendo clic en el botón SSH. Haz clic en Conectar.
  3. En la ventana de SSH, ejecuta los siguientes comandos para instalar las dependencias necesarias:
sudo apt-get update -y sudo apt-get install -y git python3-pip sudo pip3 install six==1.13.0 sudo pip3 install --upgrade pip sudo pip3 install --upgrade google-cloud-bigquery sudo pip3 install pandas
  1. Con el comando echo, crea query.py. Usarás este archivo, desarrollado en Python, para ejecutar la búsqueda.
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='YOUR_PROJECT_ID', credentials=credentials) print(client.query(query).to_dataframe()) " > query.py
  1. Agrega el ID del proyecto a query.py mediante el siguiente comando:
sed -i -e "s/YOUR_PROJECT_ID/$(gcloud config get-value project)/g" query.py
  1. 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 (el tuyo será 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='qwiklabs-gcp-186de687ef87f911', credentials=credentials) print(client.query(query).to_dataframe())
  1. 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
  1. Ejecuta lo siguiente para asegurarte de que el comando sed cambió con éxito el correo electrónico de la cuenta de servicio en el archivo:
cat query.py

Resultado de ejemplo (el tuyo será distinto):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='bigquery-qwiklab@qwiklabs-gcp-186de687ef87f911.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='qwiklabs-gcp-186de687ef87f911', credentials=credentials) print(client.query(query).to_dataframe())

Ahora, la aplicación usará los permisos asociados con esta cuenta de servicio.

  1. Instala la biblioteca pyarrow con este comando:
sudo pip3 install pyarrow==16.1.0
  1. Instala la biblioteca db-dtypes con este comando:
sudo pip3 install db-dtypes
  1. Ejecuta query.py con este comando:
python3 query.py

Deberías obtener un resultado similar al siguiente.

Resultado:

year num_babies 0 2008 4255156 1 2002 4027376 2 2005 4145619 3 2006 4273225 4 2001 4031531 5 2007 4324008 6 2003 4096092 7 2004 4118907 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 coincida.

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. Usar las bibliotecas cliente para acceder a BigQuery desde una cuenta de servicio

Felicitaciones

En este lab, aprendiste a hacer lo siguiente:

  • 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 búsqueda en un conjunto de datos públicos de BigQuery desde una instancia de Compute Engine

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Copyright 2020 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.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

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

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el 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.