arrow_back

Protege Google Cloud con CFT Scorecard

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Protege Google Cloud con CFT Scorecard

Lab 40 minutos universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP698

Labs de autoaprendizaje de Google Cloud

Descripción general

CFT Scorecard es un cliente de línea de comandos de código abierto de Config Validator con Forseti que pertenece al amplio Cloud Foundation Toolkit. Proporciona visibilidad sobre las infracciones y los parámetros de configuración incorrectos en un conjunto de estándares establecidos para los recursos, proyectos, carpetas o, incluso, organizaciones de Google Cloud.

Existen más de 86 tipos de recursos de Google Cloud, y siguen aumentando. Con el paso a la nube pública, es más fácil que nunca federar implementaciones de recursos y operaciones en la nube para muchas personas. Sin embargo, con la federación y la agilidad en la implementación de la infraestructura, los recursos y las políticas, se ha vuelto muy difícil mantener las políticas y los estándares en orden.

En este lab configurarás CFT Scorecard para mejorar la visibilidad de un proyecto de Google Cloud y detectar parámetros de configuración incorrectos.

¿Qué harás en este lab?

En este lab, se destacan los desafíos sobre la utilización de la nube con varios usuarios de forma simultánea. Habilitarás CFT Scorecard y extenderás sus capacidades de detección de infracciones y supervisión de la configuración de recursos a través de la integración en Cloud Asset Inventory y la biblioteca de políticas de código abierto. Configurarás las herramientas para detectar parámetros de configuración incorrectos y recursos sobreexpuestos para que otras personas de tu equipo y, en definitiva, el proyecto de Google Cloud, sean ágiles respecto a las políticas establecidas.

Temas abordados:

  • Configura CFT Scorecard
  • Ejecuta una evaluación de CFT Scorecard
  • Agrega una política nueva en CFT Scorecard

Infografía de temas

Situación

Imagina que eres el líder técnico de un equipo de 3 personas. Tus compañeros de equipo, Alicia y Roberto, trabajan estrechamente contigo. También implementan muchos recursos en el proyecto compartido de Google Cloud en el que trabajas. Luego de trabajar juntos algunas semanas, comienzas a notar algunas señales de alerta. Pronto descubres que Alicia y Pedro tomaron unos atajos, por lo que implementaron parámetros de configuración en el proyecto que, a tu juicio, son incorrectos. Uno de los parámetros expuso un bucket de Cloud Storage de forma pública. Este es solo uno de los parámetros de configuración incorrectos que descubriste, y temes que existan muchos más.

Luego de hacer una búsqueda rápida en Google, encontraste la utilidad de la CLI, Cloud Foundation Toolkit (CFT) Scorecard. Luego de una lectura rápida, concluyes que esta herramienta puede ayudarte a administrar políticas en tu entorno de Google Cloud y determinar dónde se originan estos parámetros de configuración incorrectos, así que decides probarla.

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 su 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
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. 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 ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Í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.

Tarea 1: Configura el entorno

  1. Para comenzar, abre Cloud Shell y, a continuación, configura algunas variables de entorno:
export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID export CAI_BUCKET_NAME=cai-$GOOGLE_PROJECT
  1. Luego de leer los documentos, comprendes que CFT Scorecard tiene dos dependencias, las que se mencionan a continuación:
  • Cloud Asset Inventory
  • Biblioteca de políticas
  1. Habilita la API de Cloud Asset en tu proyecto:
gcloud services enable cloudasset.googleapis.com \ --project $GOOGLE_PROJECT
  1. Ejecuta este comando para crear la cuenta predeterminada del servicio Cloud Asset:
gcloud beta services identity create --service=cloudasset.googleapis.com --project=$GOOGLE_PROJECT
  1. Otorga el rol de administrador de almacenamiento a la cuenta de servicio de los activos de la nube:
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT} \ --member=serviceAccount:service-$(gcloud projects list --filter="$GOOGLE_PROJECT" --format="value(PROJECT_NUMBER)")@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/storage.admin
  1. Clona la biblioteca de políticas:
git clone https://github.com/forseti-security/policy-library.git
  1. Notas que esta biblioteca aplica políticas de la carpeta policy-library/policies/constraints, en cuyo caso, puedes copiar una política del directorio de muestra en el directorio de restricciones.
cp policy-library/samples/storage_denylist_public.yaml policy-library/policies/constraints/
  1. Crea el bucket en el que almacenarás los datos que Cloud Asset Inventory (CAI) exportará:
gsutil mb -l {{{project_0.default_region | REGION}}} -p $GOOGLE_PROJECT gs://$CAI_BUCKET_NAME

Haz clic en Revisar mi progreso para verificar el objetivo. Crea un bucket de CAI

Tarea 2: Recopila datos con Cloud Asset Inventory (CAI)

Ahora que configuraste el entorno, comienza a recopilar los datos para CFT Scorecard.

Como ya se mencionó, las entradas de CFT Scorecard son los datos de recursos y de IAM, y la carpeta de la biblioteca de políticas.

Deberás usar el CAI para generar la información de la política de IAM y de recursos para el proyecto.

  1. Usa el siguiente comando para crear los datos:
# Export resource data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/resource_inventory.json \ --content-type=resource \ --project=$GOOGLE_PROJECT # Export IAM data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/iam_inventory.json \ --content-type=iam-policy \ --project=$GOOGLE_PROJECT # Export org policy data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/org_policy_inventory.json \ --content-type=org-policy \ --project=$GOOGLE_PROJECT # Export access policy data gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/access_policy_inventory.json \ --content-type=access-policy \ --project=$GOOGLE_PROJECT

Resultado de ejemplo:

Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00]. Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/RESOURCE/2295255602305764396] to check the status of the operation. Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00]. Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/IAM_POLICY/11771734913762837428] to check the status of the operation.
  1. Asegúrate de que el CAI terminó la recopilación de datos. Mira el resultado del comando anterior y usa el código gcloud asset operations describe que se proporcionó con el resultado de esos comandos para verificar si se terminaron estas operaciones. Es posible que tarde un poco en comprobar el progreso.

Haz clic en Revisar mi progreso para verificar el objetivo. Verifica si se crearon los archivos de CAI

Tarea 3: Analiza los datos de CAI con CFT Scorecard

  1. Debes descargar la aplicación de CFT Scorecard y hacer que sea ejecutable:
curl -o cft https://storage.googleapis.com/cft-cli/latest/cft-linux-amd64 # make executable chmod +x cft
  1. Ahora que ya configuraste todos los datos, ejecuta la aplicación de CFT Scorecard:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Resultado de ejemplo:

Generating CFT scorecard 1 total issues found Operational Efficiency: 0 issues found ---------- Security: 1 issues found ---------- denylist_public_users: 1 issues - //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable Reliability: 0 issues found ---------- Other: 0 issues found ----------

Este es el bucket público que identificaste antes.

Tarea 4: Agrega más restricciones a CFT Scorecard

  1. Se te olvidó IAM. Agrega la siguiente restricción para saber exactamente quién tiene el rol roles/owner además del usuario que se encuentra en la lista de entidades permitidas:
# Add a new policy to blacklist the IAM Owner Role cat > policy-library/policies/constraints/iam_allowlist_owner.yaml << EOF apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedBindingsConstraintV3 metadata: name: allowlist_owner annotations: description: List any users granted Owner spec: severity: high match: target: ["organizations/**"] exclude: [] parameters: mode: allowlist assetType: cloudresourcemanager.googleapis.com/Project role: roles/owner members: - "serviceAccount:admiral@qwiklabs-services-prod.iam.gserviceaccount.com" EOF
  1. Vuelve a ejecutar CFT Scorecard:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Aunque parece que todo está bien, revisemos también el rol roles/editor.

  1. Establece dos variables adicionales para crear la nueva restricción:
export USER_ACCOUNT="$(gcloud config get-value core/account)" export PROJECT_NUMBER=$(gcloud projects describe $GOOGLE_PROJECT --format="get(projectNumber)")
  1. Crea la siguiente restricción que incluirá las cuentas válidas en la lista de entidades permitidas:
# Add a new policy to allowlist the IAM Editor Role cat > policy-library/policies/constraints/iam_identify_outside_editors.yaml << EOF apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedBindingsConstraintV3 metadata: name: identify_outside_editors annotations: description: list any users outside the organization granted Editor spec: severity: high match: target: ["organizations/**"] exclude: [] parameters: mode: allowlist assetType: cloudresourcemanager.googleapis.com/Project role: roles/editor members: - "user:$USER_ACCOUNT" - "serviceAccount:**$PROJECT_NUMBER**gserviceaccount.com" - "serviceAccount:$GOOGLE_PROJECT**gserviceaccount.com" EOF
  1. Vuelve a ejecutar CFT Scorecard:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Resultado de ejemplo:

Generating CFT scorecard 3 total issues found Reliability: 0 issues found ---------- Other: 2 issues found ---------- identify_outside_editors: 1 issues - IAM policy for //cloudresourcemanager.googleapis.com/projects/1044418630080 grants roles/editor to user:qwiklabs.lab.user@gmail.com Operational Efficiency: 0 issues found ---------- Security: 1 issues found ---------- denylist_public_users: 1 issues - //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable

Ahora, deberías ver un editor que no es de tu organización. Es hora de hablar con Alicia y Pedro.

¡Felicitaciones!

Aprendiste a descargar, configurar y utilizar CFT Scorecard para analizar un proyecto de Google Cloud.

Finaliza tu Quest

Este lab de autoaprendizaje forma parte de la Quest Security & Identity Fundamentals. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en esta Quest o en cualquiera que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Continúa tu Quest con Intercambio de tráfico entre redes de VPC, o prueba los labs de Google Cloud Skills Boost que se mencionan a continuació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.

Actualización más reciente del manual: 29 de noviembre de 2023

Prueba más reciente del lab: 29 de noviembre de 2023

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.