Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support AWS_ROLE_ARN Environment Variable with Environment Credential Provider #2867

Closed
bflad opened this issue Aug 29, 2019 · 8 comments
Closed
Assignees
Labels
feature-request A feature should be added or improved. p2 This is a standard priority issue

Comments

@bflad
Copy link

bflad commented Aug 29, 2019

Feature description

The AWS_ROLE_ARN environment variable was recently added with the introduction of the web identity credential provider. It would be great if the AWS_ROLE_ARN environment variable could also be used with the environment credential provider. This allows environments where disk access is not available or read-only to assume a role without a shared configuration file.

An example workflow, given the following environment:

AWS_ACCESS_KEY_ID=AK...
AWS_SECRET_ACCESS_KEY=...
AWS_ROLE_ARN=arn:aws:iam::123456789012:role/example

The environment credential provider would use the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY credentials to assume the given AWS_ROLE_ARN.

Describe alternatives you've considered

Creating our own application-specific environment variable(s) (e.g. AWS_ROLE_ARN or TF_AWS_ROLE_ARN) to trigger assuming a role automatically, at the risk of:

  • Naming collisions and logic issues if within AWS_ namespace and default AWS Go SDK behavior
  • Maintaining our own environment variables which do not benefit the larger AWS SDK/CLI ecosystem
  • Longterm code deprecation and user burden of switching off our own environment variables if/when properly implemented in the AWS Go SDK

Additional context

References:

@jakauppila
Copy link

It seems like it would make sense to include AWS_ROLE_SESSION_NAME along with this as well.

@ashafer01
Copy link

👍 to making AssumeRole more transparent. I'd love to be able to tell my app developers "just use this credential provider class" and then give me the ability to fully determine what identity their code runs as, and how it obtains that identity, entirely by setting environment variables.

@mdross95
Copy link

Any update with this? This functionality would be very useful in deployed envs i.e. k8s to be able to start sessions for specific profiles in code without needing to use a filesystem (for the shared config file).

@lmmattr
Copy link

lmmattr commented Oct 19, 2020

This would definitely make my pipelines easier as with a lot of them I have to download the cli to then assume a role to then use with a deploy utility. Making this available would remove the need for us to assume a role with packages that use the SDK internally to manage credentials.

@RanVaknin
Copy link
Contributor

Hi @bflad ,

Thanks for the feature request. I think this is a reasonable request however this will need to be a cross-SDK effort and will require multi team planning.

I'm going to transfer this into the Cross SDK repo for further consideration.

Thanks,
Ran~

@RanVaknin RanVaknin self-assigned this Feb 13, 2023
@RanVaknin RanVaknin transferred this issue from aws/aws-sdk-go Feb 13, 2023
@RanVaknin RanVaknin assigned indrora and unassigned RanVaknin Sep 25, 2023
@RanVaknin RanVaknin assigned debora-ito and unassigned indrora Mar 1, 2024
@debora-ito debora-ito added the p2 This is a standard priority issue label Aug 30, 2024
@debora-ito
Copy link
Member

Transferring this to the SDK for Go v2 repo.

@debora-ito debora-ito transferred this issue from aws/aws-sdk Oct 30, 2024
@lucix-aws
Copy link
Contributor

Go v2 definitely supports these today, closing.

Copy link

This issue is now closed. Comments on closed issues are hard for our team to see.
If you need more assistance, please open a new issue that references this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A feature should be added or improved. p2 This is a standard priority issue
Projects
None yet
Development

No branches or pull requests

9 participants