The short answer is YES. The longer answer is it depends.
In a common emitter configuration (the most common) you NEED to limit current. This needs to be sufficient to saturate the transistor. For a light load of 20 mA this is not critical. A value of 1kΩ would limit current to the nominal 3.3mA and drive loads of several hundred mA with most transistors.
There are two answers to your question of "need":
Yes - you need a resistor between the base junction of the transistor and the GPIO pin. Otherwise, the current flowing into the base junction of the transistor will exceed the GPIO's "safe" limits. In other words you may damage your RPi - you'll certainly not be following best practices.
Since most keyboards (if you even have one connected) don't have an AltGr key, the following worked for me to successfully switch off the power LED by assigning it to light up when ALtGr is engaged:
echo kbd-altgrlock >/sys/class/leds/led1/trigger
I have searched, unsuccessfully, for any documentation on the Ethernet LEDs and asked on the Forum, but got no replies.
dtparam -h eth_led0 eth_led1 produces the following, but it is unclear what most of these mean.
eth_led0 Set mode of LED0 - amber on Pi3B+ (default "1"),
green on Pi4 (default "0").
On the PI 4 the yellow LED, the LINK LED, lights when ethernet is connected. Green LED is ACT LED. The LEDs don't change color with different speed. I've tried 10M, 100M and 1000M. Always both LEDs are working the same way.