Link al lab Fuente pública utilizada para extraer comandos (por requerir login): Build and Secure Networks in Google Cloud: Challenge Lab (DEV Community).
Recursos identificados
- APIs/servicios GCP:
Compute Engine API(compute.googleapis.com).Identity-Aware Proxy API(iap.googleapis.com) para SSH vía IAP TCP forwarding.
- Recursos principales:
- Red
acme-vpc. - Subred de gestión
acme-mgmt-subnet(CIDR usado para SSH interno). - VM
bastion(sin public IP en el escenario objetivo). - VM
juice-shop(exposición HTTP pública y SSH interno restringido). - Reglas de firewall:
open-access(a eliminar), regla SSH vía IAP, regla HTTP pública, regla SSH interna.
- Red
- IAM:
- Uso de permisos para administrar firewall/tagging en Compute Engine.
- Acceso operativo vía IAP (normalmente con rol como
roles/iap.tunnelResourceAccessorpara usuarios operadores).
- Integraciones:
- IAP TCP forwarding -> SSH a
bastion. bastion-> SSH interno ajuice-shop.- Exposición HTTP de
juice-shopmediante regla ingress acotada atcp:80.
- IAP TCP forwarding -> SSH a
Comandos ejecutados
gcloud compute firewall-rules delete open-access
gcloud compute instances start bastion --zone=us-central1-b
gcloud compute firewall-rules create ssh-ingress --allow=tcp:22 --source-ranges 35.235.240.0/20 --target-tags [NETWORK_TAG_1] --network acme-vpc
gcloud compute instances add-tags bastion --tags=[NETWORK_TAG_1] --zone=us-central1-b
gcloud compute firewall-rules create http-ingress --allow=tcp:80 --source-ranges 0.0.0.0/0 --target-tags [NETWORK_TAG_2] --network acme-vpc
gcloud compute instances add-tags juice-shop --tags=[NETWORK_TAG_2] --zone=us-central1-b
gcloud compute firewall-rules create internal-ssh-ingress --allow=tcp:22 --source-ranges 192.168.10.0/24 --target-tags [NETWORK_TAG_3] --network acme-vpc
gcloud compute instances add-tags juice-shop --tags=[NETWORK_TAG_3] --zone=us-central1-b
ssh <internal-IP-of-juice-shop>