Hi Hridyesh,
You are noticing is an expected behavior.
In step 4, you created a token which can only read aws/creds/s3_bucket and nothing more.
In step 5, when you did a $vault auth using this token. This activates the s3_bucket policy and hence you can only do what you authorized the token to do.
i.e to read aws/creds/s3_bucket.
If you try creating a token instead, it will certainly fail.
When vault gets initialized, it will have root-token printed on the screen.
You should use it to re-authenticate as 'root' before you create more tokens for s3_bucket.
The point is, you can create as many token as needed using step 4. Just don't 'auth' into it in the meanwhile.