Como profesional de la nube, una de las preocupaciones más fundamentales a la hora de preparar el entorno de nube es cómo configurar el acceso a tus recursos siguiendo el principio de privilegio mínimo. Estas son algunas preguntas clave:
¿Cuáles son las mejores maneras de administrar el acceso a los recursos en tu entorno de nube?
¿Cómo se les puede otorgar a los usuarios acceso solo a los recursos que de verdad necesitan?
¿Cómo puedes permitir que las aplicaciones y los servicios se autentiquen en tus recursos en la nube?
En este lab, se profundiza en los aspectos fundamentales de Identity and Access Management (IAM) en Google Cloud. Aprenderás a configurar de forma estratégica el acceso a los recursos de la nube, lo que garantiza que se cumpla con el principio de privilegio mínimo. El enfoque está en usar herramientas de línea de comandos para administrar los permisos de los usuarios, otorgar solo el acceso necesario y configurar mecanismos de autenticación seguros para las aplicaciones y los servicios.
Si conoces IAM de Azure, este lab traducirá esos conceptos al entorno de Google Cloud. Explorarás el enfoque único de IAM de Google Cloud en cuanto a roles y permisos. El lab hace hincapié en la práctica con la herramienta de línea de comandos de gcloud, incluidas su instalación, configuración y la administración de múltiples parámetros de configuración y cuentas de servicio.
Objetivos
En este lab, aprenderás a hacer lo siguiente:
Instalar y configurar el cliente de gcloud
Crear y cambiar entre varios parámetros de configuración de IAM
Identificar y asignar permisos de IAM correctos
Crear y usar una cuenta de servicio
Entorno inicial
Comienzas con dos cuentas de usuario y dos proyectos; user1 es el “propietario” de ambos proyectos y user2 es el “visualizador” de solo el primer proyecto. Hay una máquina virtual (VM) de Linux en ejecución en el primer proyecto.
¿Qué es IAM?
Google Cloud ofrece Cloud Identity and Access Management (IAM), que te permite administrar el control de acceso definiendo quién (identidad) tiene qué acceso (rol) a qué recurso.
Con Cloud IAM, puedes otorgar acceso detallado a recursos de Google Cloud específicos y evitar el acceso no deseado a otros recursos. Cloud IAM te permite adoptar el principio de seguridad de privilegio mínimo, de manera que solo otorgues el acceso necesario a tus recursos.
Identidades
En Cloud IAM, les otorgas el acceso a los miembros. Los miembros se pueden clasificar en los siguientes tipos:
En este lab, usas cuentas de Google, cuentas de servicio y grupos de dominio de Cloud Identity.
Roles
Un rol es un conjunto de permisos. No puedes asignar un permiso al usuario directamente; en cambio, le concedes un rol. Cuando otorgas un rol a un usuario, le otorgas todos los permisos que contiene ese rol.
En Cloud IAM existen tres tipos de roles:
Roles básicos: los roles que siempre han estado disponibles en la consola de Cloud seguirán funcionando. Estos roles son los de propietario, editor y visualizador.
Roles predefinidos: los roles predefinidos son aquellos de Cloud IAM que proporcionan un control de acceso más detallado que los roles básicos. Por ejemplo, el rol predefinido Publicador de Pub/Sub (roles/pubsub.publisher) proporciona acceso solo para publicar mensajes en un tema de Cloud Pub/Sub.
Roles personalizados: son los que creas para adaptar los permisos a las necesidades de tu organización cuando los roles predefinidos no las satisfacen.
La gcloud CLI forma parte del SDK de Cloud. Debes descargar el SDK en tu sistema, instalarlo y, luego, inicializarlo para poder usar la herramienta de línea de comandos de gcloud. Puedes usar esta herramienta para realizar varias tareas comunes en la plataforma, ya sea desde la línea de comandos o con secuencias de comandos y otras automatizaciones.
De forma predeterminada, el SDK instala los comandos de gcloud CLI que solamente están en los niveles Disponibilidad general y Vista previa. Hay funcionalidades adicionales disponibles en los componentes del SDK llamados alpha y beta. Estos componentes te permiten usar gcloud CLI para trabajar con Cloud Bigtable, Google Cloud Dataflow y otras partes de Cloud en niveles de actualizaciones anteriores a la Disponibilidad general.
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, 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 del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos 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: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Nota: En este lab, ingresa a la cuenta con el nombre de usuario 1.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
El botón para abrir la consola de Google Cloud
El tiempo restante
Las credenciales temporales que debes 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: Ordena 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 Cloud para este lab podría generar cargos adicionales.
Haz 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 acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Tarea 1: Instala y configura gcloud
El primer paso es conectarse a una instancia de procesamiento de Google Cloud existente y, luego, descargar, instalar y configurar el SDK de gcloud.
El SDK de gcloud tiene varias utilidades que permiten la administración del entorno. Primero, debes configurar la autenticación para proporcionar el permiso de utilidad para realizar acciones. El proceso de autenticación varía según la identidad que uses. En este ejemplo, usarás la identidad que te proporciona el lab (que es una cuenta de usuario). Una vez que te autentiques, también deberás configurar el entorno para definir el proyecto en el que realices acciones.
Este lab ya tiene una instancia de Compute Engine llamada centos-clean que simula un entorno en el que está instalado gcloud. Te conectarás a esta instancia con la consola de Cloud.
Para abrir la lista de instancias de procesamiento, dirígete al menú de navegación > Compute Engine > Instancias de VM.
En la línea con la instancia de procesamiento llamada centos-clean, haz clic en SSH.
Nota: Respecto a las instancias de Compute Engine, hay tipos de instancias de Windows y Linux. En este lab, usas el tipo de instancia de Linux. Te puedes conectar a las instancias de Linux de manera sencilla con el cliente de Secure Shell (SSH) en el navegador web.
Te conectas automáticamente a la instancia. Google Cloud administra las claves de autenticación por ti, las mantiene seguras y disponibles solo para quienes tengan acceso.
Primera prueba, si aún no tienes instalado gcloud. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud --version
Comienza a configurar tu entorno de gcloud. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud auth login --no-launch-browser
Se te presentan varios mensajes.
Para You must log in to continue. y Do you want to continue (Y/n)?, presiona INTRO.
Navega al vínculo que se encuentra debajo del mensaje Go to the following link in your browser: en una pestaña nueva.
Usa las credenciales de este lab para autenticar el entorno de gcloud. Debido a que utilizarás una instancia de Compute Engine, normalmente usarías una cuenta de servicio. Puedes ignorar la sugerencia y continuar porque estás simulando tu propio entorno de estación de trabajo. Verás cómo usar una cuenta de servicio más adelante en este lab.
El vínculo abrirá una página web de Acceder con Google. Haz clic en la cuenta proporcionada para este lab (si no sabes cuál es, consulta la parte superior izquierda de esta página).
Haz clic en Permitir.
Aceptarás que el SDK de Cloud tendrá el mismo acceso que tu Cuenta de Google.
Cuando veas el mensaje Escribe el siguiente código de verificación en gcloud CLI en la máquina a la que deseas acceder, haz clic en el botón para copiar y, luego, vuelve a la sesión de SSH y pega el código en el mensaje Enter authorization code:.
En Elegir el proyecto de la nube para usar:, busca tu proyecto actual (puedes ver el ID del proyecto en la parte superior de tu consola web) en la lista y, luego, ingresa el número de tu proyecto para seleccionarlo de la lista de opciones.
La inicialización se completará y verás que la zona y región están configuradas de forma automática. Cambiarás ambas en la siguiente tarea.
Inicializar el SDK de Cloud
Configura tu región y zona
Algunos recursos de Compute Engine se encuentran en regiones y zonas. Una región es una ubicación geográfica específica donde puedes ejecutar tus recursos. Cada región tiene una o más zonas.
Ejecuta los siguientes comandos de gcloud en Cloud Shell para establecer la región y la zona predeterminadas de tu lab:
gcloud config set compute/zone "{{{project_0.default_zone|ZONE}}}"
export ZONE=$(gcloud config get compute/zone)
gcloud config set compute/region "{{{project_0.default_region|REGION}}}"
export REGION=$(gcloud config get compute/region)
Configura el entorno de gcloud
Una vez que tengas instalada y básicamente configurada la herramienta de línea de comandos de gcloud, crea una instancia de procesamiento para hacer algunos cambios.
Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud compute instances create lab-1
Puedes presionar INTRO para aceptar la zona predeterminada para esta VM. Si configuraste todo de la manera correcta, el comando creará una instancia.
Pero ¿de qué tamaño? ¿Y dónde? ¿Qué imagen se usará?
Hay varios parámetros de configuración predeterminados que usa el servicio. Algunos se pueden controlar en la configuración de gcloud. Por ejemplo, la ubicación de la instancia está controlada por la configuración de la zona.
Crear una instancia con el nombre lab-1 en el Proyecto 1
Revisa tu configuración actual de gcloud. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config list
Ahora ves tres secciones, compute, core y active configuration. Puedes cambiar todas estas secciones, pero en este lab solo cambiarás la zona. Mira la zona en la que se creó tu VM.
Ahora, enumera todas las zonas disponibles para su uso ejecutando el código a continuación en la sesión de SSH:
gcloud compute zones list
Selecciona una de las otras zonas en tu misma región. Por ejemplo, si tu zona es us-west2-a, deberías elegir us-west2-b.
Cambia tu zona actual por otra zona en la misma región. En la sesión de SSH, ejecuta el código a continuación, reemplazando ZONE por la zona que elegiste:
gcloud config set compute/zone ZONE
Verifica que se haya implementado el cambio de zona. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config list
Ves que la zona mencionada refleja el cambio que realizaste.
Puedes cambiar otros parámetros de configuración con el comando de configuración de proyectos de gcloud. Esos cambios son permanentes. Se escriben en tu directorio de la página principal.
La configuración predeterminada se almacena en ~/.config/gcloud/configurations/config_default.
Si quieres usar una zona que no sea la predeterminada cuando creas una instancia, puedes usar el cambio de zona. Por ejemplo, las instancias de gcloud de procesamiento crean lab-1 --zone us-central1-f
Actualizar la zona predeterminada
Verifica que la zona esté escrita en el archivo de configuración. Dentro de la sesión de SSH, ejecuta lo siguiente:
Puedes ver que la configuración solo está almacenada como texto y puedes crear una copia de seguridad o copiarla.
Ya configuraste correctamente gcloud.
Tarea 2: Crea y cambia entre varios parámetros de configuración de IAM
Configuraste una cuenta. En situaciones en las que debas trabajar en equipos diferentes o acceder a diferentes cuentas, también puedes administrarlo con gcloud config.
En la siguiente tarea, aprenderás como crear una segunda configuración y cambiar entre ambas.
Crea una nueva configuración de IAM
En este lab, tienes una segunda cuenta de Google con la que puedes acceder. Esta cuenta tiene acceso de solo lectura (visualizador) para el primer proyecto. Ahora, crearás una configuración nueva para ese usuario.
Empieza una configuración nueva de gcloud para la segunda cuenta de usuario. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud init --no-launch-browser
Elige la opción 2, Create a new configuration.
configuration name: Escribe user2.
Log in with a new account: Elige la opción 3. Ingresas a la cuenta con el otro nombre de usuario.
Presiona INTRO cuando veas la pregunta Do you want to continue (Y/n)?
Navega al vínculo que se muestra en una pestaña nueva.
Haz clic en Usar otra cuenta
Copia la segunda cuenta de usuario de esta página (lado izquierdo) y pégala en el mensaje de correo electrónico o teléfono.
Copia la misma contraseña con la cual empezaste el lab y pégala en el prompt de escribe tu contraseña.
Haz clic en Comprendo.
Haz clic en Permitir.
Aceptarás que el SDK de Cloud tendrá el mismo acceso que tu Cuenta de Google.
Cuando veas el mensaje Ingresa el siguiente código de verificación en gcloud CLI en la máquina a la que deseas acceder., haz clic en el botón para copiar y, luego, vuelve a la sesión de SSH y pega el código en el mensaje Escribe el código de autorización:.
En Pick cloud project to use:, encuentra tu proyecto actual (puedes ver el ID del proyecto en la parte superior de tu consola web) y, luego, ingresa el número que corresponde al proyecto.
La inicialización se completará y verás que la zona y región están configuradas de forma automática.
Comprobar que se haya creado la configuración de gcloud user2
Prueba la cuenta nueva
Esta cuenta nueva solo tiene acceso de lector en el proyecto, para que puedas probar que usas esta cuenta tratando de ver y crear algunos recursos.
Revisa si puedes ver los detalles del primer proyecto. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud compute instances list
La segunda cuenta de usuario tiene acceso de visualizador, así que verás las instancias centos-clean y lab-1.
Revisa que no puedes crear una instancia en el primer proyecto, debido a que tu rol asignado es de visualizador básico. Dentro de la sesión de SSH, ejecuta lo siguiente:
Dado que la segunda cuenta de usuario solo tiene acceso de visualizador, no puede crear una instancia, así que este comando fallará. Tardará un tiempo en hacerlo.
Cambia la configuración de vuelta a la del primer usuario (predeterminada). Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config configurations activate default
Ahora usas las credenciales de tu cuenta de usuario original. Luego, debes cambiar entre las dos cuentas a medida que aprendes sobre los roles y permisos.
Tarea 3: Identifica y asigna permisos de IAM correctos
Se te brindaron dos cuentas de usuario para este proyecto. El primer usuario tiene el control total de ambos proyectos y se lo puede considerar la cuenta de administrador. El segundo usuario tiene acceso de solo lectura a ambos proyectos. Llama al segundo usuario un usuario de DevOps. Esa identidad de usuario representa un usuario de nivel típico de DevOps.
Luego, usas gcloud para configurar el acceso a un proyecto para el usuario de DevOps con la creación de un rol personalizado para el proyecto que permita la creación de instancias y buckets.
Examina los roles y permisos
Para ver todos los roles, ejecuta el código a continuación en la sesión de SSH:
gcloud iam roles list | grep "name:"
Se muestra la lista de roles. Agregar grep "name:" al comando reduce la cantidad de datos que se muestran a solo los nombres de roles.
Inspecciona uno de los roles para ver los permisos asignados al rol. Para ver los permisos, usa gcloud iam roles describe. Intenta mirar el rol simple roles/compute.instanceAdmin.
Examina el rol predefinido compute.instanceAdmin. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud iam roles describe roles/compute.instanceAdmin
Puedes ver que roles/compute.instanceAdmin tiene muchos permisos, pero estos son los mínimos necesarios para más tarde:
Otórgale el rol de visualizador al segundo usuario en el segundo proyecto
Ahora que sabes que los roles contienen permisos, ¿cómo asignas un rol (y todos los permisos asociados) a una cuenta de usuario?
Hay dos maneras de conectar un rol:
Al usuario y una organización
A un usuario y un proyecto
Luego, unes el rol básico de “lector” al segundo usuario en el segundo proyecto.
Prueba que el segundo usuario no tenga acceso al segundo proyecto.
Cambia la configuración de gcloud de vuelta al segundo usuario (user2). Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config configurations activate user2
Ahora estás de vuelta en user2.
En la sesión de SSH, ejecuta el siguiente comando para establecer PROJECTID2 en el segundo proyecto:
echo "export PROJECTID2={{{project_1.project_id|Project ID 2}}}" >> ~/.bashrc
. ~/.bashrc
gcloud config set project $PROJECTID2
Nota: Este comando agrega el archivo bashrc, ten cuidado.
Verás una advertencia: WARNING: You do not appear to have access to project [your 2nd project id] or it does not exist.
Nota: Cuando se te pregunte Do you want to continue (Y/n)?, escribe N y presiona INTRO.
Esto significa que no tienes acceso al proyecto PROJECTID2, lo cual arreglarás en breve.
Cambia a la configuración predeterminada de gcloud. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config configurations activate default
Debes volver al primer usuario, que tiene el permiso para otorgar acceso al segundo usuario.
Establece el valor de USERID2 al segundo nombre de usuario y vincula el rol de visualizador al segundo usuario en el segundo proyecto.
Cuando ejecutes el comando, verás un texto similar al siguiente (tal vez tengas que desplazarte hacia arriba):
Updated IAM policy for project [qwiklabs-gcp-336e4f5b8aff1c01].
bindings:
...
- members:
- serviceAccount:qwiklabs-gcp-01-a262cff86157@qwiklabs-gcp-01-a262cff86157.iam.gserviceaccount.com
- user:student-01-1b9999e9cc77@qwiklabs.net
- user:student-01-c831155b330a@qwiklabs.net role: roles/viewer
Restringir el nombre de usuario 2 a roles/viewer en el Proyecto 2
Tarea 4: Prueba si el user2 tiene acceso
Cambia tu configuración de gcloud a user2. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config configurations activate user2
Cambia la configuración de user2 en el segundo proyecto. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config set project $PROJECTID2
Esta vez, no debería aparecer un mensaje de error.
Verifica si tienes acceso de lectura. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud compute instances list
Puedes ver 0 instancias en este proyecto.
Intenta crear una instancia en el segundo proyecto como el segundo usuario. Dentro de la sesión de SSH, ejecuta lo siguiente:
Este comando fallará porque el user2 tiene acceso de visualizador al proyecto.
Cambia tu configuración de gcloud a predeterminada. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config configurations activate default
Ahora usas las credenciales de tu cuenta de usuario original.
Crea un nuevo rol con permisos
Luego, crea el rol nuevo con el conjunto de permisos necesarios para el equipo de DevOps.
Crea un rol personalizado llamado devops que tiene los permisos para crear una instancia. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud iam roles create devops --project $PROJECTID2 --permissions "compute.instances.create,compute.instances.delete,compute.instances.start,compute.instances.stop,compute.instances.update,compute.disks.create,compute.subnetworks.use,compute.subnetworks.useExternalIp,compute.instances.setMetadata,compute.instances.setServiceAccount"
Este comando crea un rol personalizado en el proyecto, llamado devops, con los permisos para crear y administrar instancias.
Se muestra el nombre completo del rol. Ten en cuenta que el rol está en el proyecto, así que la ruta de acceso tiene el patrón de projects/PROJECT/roles/ROLENAME.
Crear un rol nuevo con permisos para el equipo de DevOps
Vincula el rol a la segunda cuenta a ambos proyectos
Ahora tienes el rol creado y debes vincular el usuario y el rol al proyecto. Usarás gcloud projects add-iam-policy-binding para realizar la vinculación. Para que este comando sea más fácil de ejecutar, primero establece algunas variables de entorno, el ID del proyecto y la cuenta de usuario.
Vincula el rol de iam.serviceAccountuser al segundo usuario en el segundo proyecto. Dentro de la sesión de SSH, ejecuta lo siguiente:
Necesitas permisos para crear una instancia con una cuenta de servicio adjuntada. El rol iam.serviceAccountuser tiene esos permisos, así que usa este rol predefinido.
Revisar que el user2 esté vinculado al project2 y al rol roles/iam.serviceAccountuser
Vincula el rol personalizado devops al segundo usuario en el segundo proyecto. Puedes encontrar la segunda cuenta de usuario en la izquierda de esta página. Asegúrate de establecer userID en la segunda cuenta de usuario.
Cuando ejecutes el comando, el texto se verá parecido a lo siguiente (tal vez tengas que desplazarte hacia arriba):
Updated IAM policy for project [qwiklabs-gcp-336e4f5b8affxxxx].
bindings:
- members:
- user:gcpstaginguser80_student@qwiklabs.net
role: projects/qwiklabs-gcp-336e4f5b8affxxxx/roles/devops
Vincular el nombre de usuario 2 al rol de DevOps
Prueba los permisos recién asignados.
Cambia tu configuración de gcloud a user2. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config configurations activate user2
Ahora estás de vuelta en user2.
Intenta crear una instancia llamada lab-2. Dentro de la sesión de SSH, ejecuta lo siguiente:
Ahora la creación de instancias funciona para user2.
Crear una instancia con el nombre lab-2 en el Proyecto 2
Verifica si la instancia existe. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud compute instances list
Tu entorno
Después de estos últimos cambios, tu entorno se verá así.
Tarea 5: Usa una cuenta de servicio
Aprendiste cómo autenticar y usar gcloud para acceder a servicios de Google Cloud con roles. Ahora verás un enfoque típico.
Tienes una aplicación que usará las interfaces de programación de aplicaciones (APIs) para leer y escribir en buckets de Cloud Storage. No tendrás que autenticar cada vez que habilites un servidor nuevo, eso sería molesto y no es lo que queremos lograr con el uso de la nube. Así que usas cuentas de servicio.
Una cuenta de servicio es un tipo especial de cuenta de Google que pertenece a tu aplicación o 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.
Ahora creas una cuenta de servicio, usas esa cuenta de servicio con una instancia de procesamiento y pruebas que la cuenta de servicio te permita el acceso que necesitas.
Crea una cuenta de servicio
Cambia tu configuración de gcloud a predeterminada, user2 no tiene los derechos para establecer y configurar cuentas de servicio. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config configurations activate default
Establece el proyecto como PROJECTID2 en tu configuración. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud config set project $PROJECTID2
Asegúrate de incluir el proyecto que corresponda.
Crea la cuenta de servicio. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud iam service-accounts create devops --display-name devops
Comprobar la cuenta de servicio devops que se haya creado
Obtén la dirección de correo electrónico de la cuenta de servicio. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud iam service-accounts list --filter "displayName=devops"
Nota: El filtro solo muestra la línea que te interesa. Ten en cuenta que la dirección de correo electrónico contiene el nombre del rol y el ID del proyecto.
Pon la dirección de correo electrónico en una variable local llamada SA. Dentro de la sesión de SSH, ejecuta lo siguiente:
SA=$(gcloud iam service-accounts list --format="value(email)" --filter "displayName=devops")
Este comando establece la variable local SA en la dirección de correo electrónico de la cuenta de servicio. Muy útil, ¿no?
Otórgale a la cuenta de servicio el rol de iam.serviceAccountuser. Dentro de la sesión de SSH, ejecuta lo siguiente:
Este rol permite que la cuenta de servicio administre instancias de procesamiento.
Revisar que la cuenta de servicio de DevOps esté vinculada al project2 y al rol roles/compute.instanceAdmin
Crea una instancia con la cuenta de servicio de DevOps adjunta. También tienes que especificar un permiso de acceso que defina las llamadas a la API que puede hacer la instancia. Dentro de la sesión de SSH, ejecuta lo siguiente:
Los permisos de acceso son el método heredado que permite especificar permisos para tu instancia. Los permisos de acceso no son un mecanismo de seguridad. En cambio, definen los permisos de OAuth predeterminados que se usan en las solicitudes de la herramienta de gcloud o las bibliotecas cliente. Ten en cuenta que no tienen ningún efecto cuando se realizan solicitudes que no se autenticaron con OAuth, como gRPC o las APIs de SignBlob.
Debes configurar los permisos de acceso cuando estableces una instancia para que se ejecute como cuenta de servicio.
Una práctica recomendada es establecer el permiso de acceso completo de cloud-platform en la instancia y luego limitar de forma segura el acceso a la API de la cuenta de servicio con roles de IAM.
Los permisos de acceso se aplican por instancia. Los permisos de acceso se configuran cuando se crea una instancia y persisten solo durante la vida útil de la instancia.
Los permisos de acceso no tienen ningún efecto si no habilitaste la API relacionada en el proyecto al que pertenece la cuenta de servicio. Por ejemplo, si otorgas permisos de acceso para Cloud Storage en una instancia de máquina virtual, esto permite que la instancia realice una llamada a la API de Cloud Storage solo si habilitaste la API de Cloud Storage en el proyecto.
Revisar que el lab-3 tenga la cuenta de servicio adjunta
Tarea 7: Prueba la cuenta de servicio
Conéctate a la instancia recién creada con gcloud compute ssh. Dentro de la sesión de SSH, ejecuta lo siguiente:
Puedes presionar INTRO para aceptar la zona predeterminada para esta VM.
Revisa que los roles adjuntos funcionen. Dentro de la sesión de SSH, ejecuta lo siguiente:
gcloud compute instances list
Como la cuenta de servicio tiene permisos, puedes ver las instancias enumeradas.
Tu entorno debería verse así
¡Felicitaciones!
Con la herramienta del SDK de Cloud (gcloud), instalaste y configuraste correctamente el cliente de gcloud, administraste varios parámetros de configuración de IAM, asignaste los permisos de IAM adecuados y trabajaste con una cuenta de servicio. Estas tareas demuestran las similitudes entre Google Cloud IAM y Azure IAM cuando se usan herramientas de línea de comandos para el control de acceso. Ambas interfaces te permiten aprovisionar cuentas/roles, crear cuentas de servicio/roles y cambiar de usuario.
Si bien existen similitudes entre Azure IAM y Google Cloud IAM con respecto al control de acceso basado en roles (RBAC), también hay diferencias. Una diferencia clave que exploraste en el lab es el proceso de creación de cuentas de servicio, ya que no registras cuentas ni creas nombres principales de servicio en Google Cloud. Los proyectos en Google Cloud funcionan como usuarios en Azure. Usaste la herramienta de línea de comandos de gcloud para aprovisionar cuentas en varios proyectos de forma similar a como usarías la CLI de Azure para aprovisionar acceso a varios usuarios.
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: 4 de julio de 2024
Prueba más reciente del lab: 4 de julio de 2024
Copyright 2025 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.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
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.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
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.
En este lab, se usa la herramienta de gcloud CLI para establecer y configurar las funciones de comando de Cloud Identity and Access Management.
Duración:
1 min de configuración
·
Acceso por 90 min
·
60 min para completar