As Josh said there are many ways to rig an arm, here is one basic:
- Add a Target bone and a Poletarget bone to your arm. The Target will be the arm controller, the Poletarget will determine the arm orientation.
- Parent these 2 bones to the Root bone of your armature.
- If don't have a Root bone yet, at least deparent these 2 bones.
- Disable their Deform option in Properties panel > Bone > Deform: When you'll parent the armature these 2 bones won't deform the mesh.
- Parent the Hand bone to the Target so that when you'll move the Target the Hand will also follow, which is very convenient.
- Give the Lowerarm an IK constraint, choose a Length of 2 so that it will move Loweram and Upperarm only, and choose the Target bone as the Target and the Poletarget bone as the Pole Target.
- For the fingers: give the second phalanx a Copy Rotation constraint with the first phalanx as the Target, and give the third phalanx a Copy Rotation constraint with the second phalanx as the Target so that when you'll rotate the first phalanx the rest of the finger will follow.
A good thing would also be to choose a B-Bone Display for your armature (in the Properties panel > Data > Display), and to segment the Upperarm and Lowerarm so that they will bend smoothly (Go in the Properties panel > Bone > Bendy Bones > Segments and give 5 segments for example). In that case, give the Lowerarm an Copy Rotation constraint with the Hand as the Target: when the Hand will rotate the Lowerarm and Upperarm will follow. Also, you could limit the rotation of these bones in the Properties panel > Bone > Inverse Kinematics, but it's a bit tricky and most of the time you want need it.