We have seen many actors playing "James Bond". So is there any criteria that actor has to fill in order to be James bond.
Short answer: yes.
So far, the James Bonds we have seen are all quite similar: white, British (see Edit) and can fit the persona of James Bond (physically fit and good-looking).
Coming from Britain is probably an important aspect, as the character and franchise are quintessentially British. It is therefore easier to embody the mannerisms of such a character, as well as the fact audiences may dislike a non-brit playing the character.
However, all of the James Bond actors prior to Daniel Craig were brunette, and he is clearly blonde, so in terms of more specific features it is unlikely to be such an issue. Some people contend that James Bond should not have a different ethnicity, but as it is set in modern day I don't think it should be an issue for the character.
Having different characters playing James Bond, whilst having a continuous supporting cast acting alongside these different actors without batting an eyelid at their change of appearance has now foregone any semblance of continuity for the movie character, so apart from being male I can't see there being any additional restrictions for an actor playing the role.
Out of universe, playing James Bond is a big commitment. The actor will likely sign up for multiple films when they take the role, so they need to be prepared to put aside a lot of time for many years, restricting their opportunity to be in other films. Having conflicting commitments for other films might mean they miss out on the chance.
As an added bit of trivia, any person contracted to play James Bond cannot appear in any other movie wearing a tuxedo during their tenure as Bond. Again, if this conflicts with other roles the actor has already accepted then they would be unlikely to be accepted for the part.
Edit: My apologies, I was wrong about the nationalities (credit goes to Napoleon for pointing it out). I thought Pierce Brosnan was Northern Irish, thus originating from within the UK, but he is from Ireland. However he moved to England at a young age, so that probably worked in his favour. And George Lazenby was Australian, but he was only in a single James Bond movie before Sean Connery once again assumed the mantle, which sort of proves the point that people prefer a British bond.
- they have to be available to film
- they have to be affordable
- they have to please the powers-that-be (typically the producers)
But that's true of pretty much any role. I don't think there's anything particular to James Bond other than the actor usually has to fit into a rough stereotypical box (handsome, athletic, looks good in a suit...). Though fortunately those stereotypical boxes are become less and less of a requirement in general.