Hi Matt,
What you are describing is expected behavior. You've configured the role in Vault so that the IAM role $aws_devops_role can get a Vault token with permissions specified by the prod policy. But you're authenticating as $MYUSER, and hence the error you're seeing.
In configuring your user and role, you've set it up so that $MYUSER can call sts:AssumeRole and receive temporary credentials for $aws_devops_role. Where I think the confusion is that Vault won't do that for you (and in fact, by design, cannot as the necessary credentials are never sent over the wire).
If it's your intention to have $MYUSER be able to receive the Vault token, then you have a couple of options:
1. Set the bound_iam_principal_arn to arn:aws:iam::$aws_account_id:user/$MYUSER
2. From your workstation, call sts:AssumeRole, use that to retrieve temporary credentials from STS, and then use those credentials to authenticate to Vault.
I think the first is closer to what you are trying to achieve, and it would also let you remove the trust policy on $aws_devops_role and the sts:AssumeRole permission on $MYUSER if you have no other need to assume that role, so it's simpler. But there could be reasons why you'd want to do the second (e.g., you have EC2 instances in an instance profile in the $aws_devops_role that you also want to have access to the same Vault role and don't want to create separate roles for $aws_devops_role and $MYUSER).
Hope this helps!
--Joel