Bitcoin's ledger is a list of transactions grouped into blocks. Each block contains a fingerprint (a hash) of the block before it, so the blocks form a chain. Changing an old block would change its fingerprint and break every block after it.
Who adds the blocks?
Miners compete to add the next block, roughly one every ten minutes. To earn the right they must do a large amount of computing work, called proof of work. The winner is paid newly created bitcoin plus the fees from the transactions in the block.
Who enforces the rules?
Nodes: computers that keep a full copy of the ledger and check every block against the rules. If a miner breaks a rule, honest nodes reject the block, and the work is wasted.
Why this works
Rewriting history would mean redoing enormous amounts of work faster than everyone else combined. That cost is what makes the record hard to change.
One thing to remember
Miners propose, nodes verify, and cost keeps history in place. See how Bitcoin works for the detail.