A 368 m s. n. m. es el más alto de los lagos prealpinos lombardos. El lago está alimentado principalmente por las aguas del río Chiese; ese río es también su único emisario. Tiene una superficie de 11,4 km² y una profundidad máxima de 122 metros.
El lago está rodeado por montañas boscosas. El litoral de alrededor de 24 km lo comparten cuatro municipios: Idro (las frazioni Crone y Belprato), del que los lagos toman su nombre, Anfo, Bagolino (fraz. Ponte Caffaro) y Bondone (fraz. Baitoni).
El lago Idro actualmente se enfrenta a varios problemas de eutroficación lo que da como resultado la ausencia de varios sistemas de vertidos y el uso de sus aguas de alimentación para la irrigación y la generación de energía hidráulica: se ha convertido en un lugar de conflicto entre los intereses medioambientales, agrícolas y los de la industria de la electricidad.