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.

[![enter image description here][1]][1]

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.


[![enter image description here][2]][2]


  [1]: https://i.sstatic.net/m6paw.jpg
  [2]: https://i.sstatic.net/IZ5df.jpg