You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
When both AWS_ROLE_ARN/AWS_WEB_IDENTITY_TOKEN_FILE and AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN are set, this library is preferring the former. This causes Vault 1.4.0+ to ignore an explicitly set access key in the environment in favor of IRSA. This seems like a bug to me. If someone has gone to the trouble of exporting the access key and session token variables from an STS session, it doesn't make sense to request new credentials with IRSA. Presumably if a user has done this, they have already used the IRSA-based credentials to call sts:AssumeRole.
To Reproduce
Steps to reproduce the behavior:
In a Kubernetes pod with IRSA enabled, run aws sts assume-role to assume an STS role in another account
Export the access key ID, secret, and session token as AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN
Run vault login -method=aws role=some-vault-role
Receive error looking up full ARN of entity error
Having this be a cross-account scenario is key to getting the error looking up full ARN of entity error specifically, but if it isn't a cross-account role you would likely just get a failed login when the role ARN from IRSA does not match the bound ARN wildcards.
Expected behavior
When AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set in the environment (and optionally AWS_SESSION_TOKEN), awsutil should ignore AWS_ROLE_ARN and AWS_WEB_IDENTITY_TOKEN_FILE. This is how aws sts get-caller-identity works, for example.
The text was updated successfully, but these errors were encountered:
Describe the bug
When both
AWS_ROLE_ARN
/AWS_WEB_IDENTITY_TOKEN_FILE
andAWS_ACCESS_KEY_ID
/AWS_SECRET_ACCESS_KEY
/AWS_SESSION_TOKEN
are set, this library is preferring the former. This causes Vault 1.4.0+ to ignore an explicitly set access key in the environment in favor of IRSA. This seems like a bug to me. If someone has gone to the trouble of exporting the access key and session token variables from an STS session, it doesn't make sense to request new credentials with IRSA. Presumably if a user has done this, they have already used the IRSA-based credentials to callsts:AssumeRole
.To Reproduce
Steps to reproduce the behavior:
aws sts assume-role
to assume an STS role in another accountAWS_ACCESS_KEY_ID
/AWS_SECRET_ACCESS_KEY
/AWS_SESSION_TOKEN
vault login -method=aws role=some-vault-role
error looking up full ARN of entity
errorHaving this be a cross-account scenario is key to getting the
error looking up full ARN of entity
error specifically, but if it isn't a cross-account role you would likely just get a failed login when the role ARN from IRSA does not match the bound ARN wildcards.Expected behavior
When
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
are set in the environment (and optionallyAWS_SESSION_TOKEN
),awsutil
should ignoreAWS_ROLE_ARN
andAWS_WEB_IDENTITY_TOKEN_FILE
. This is howaws sts get-caller-identity
works, for example.The text was updated successfully, but these errors were encountered: