How to support modern AWS credential management? (Request for comment)
See original GitHub issueAWS has a number of ways to provide credentials that s3-wagon-private doesn’t really support. It would be good to integrate into that ecosystem. I think this should mostly be a matter of upgrading to the latest AWS SDK, but I’m not sure how tools like aws-vault
should fit into this.
This issue is to get feedback from users in how and where they want to use this plugin, and what auth mechanisms should be supported.
The standard hierarchy (see Reading Credentials at Run Time) is:
- In environment variables.
- In the central credentials file (~/.aws/credentials or %USERPROFILE%.aws\credentials).
- In an existing default, SDK-specific configuration file, if one exists. This would be the case if you had been using the SDK before these changes were made.
- For the .NET SDK, in the SDK Store, if it exists.
- If the code is running on an EC2 instance, via an IAM role for Amazon EC2. In that case, the code gets temporary security credentials from the instance metadata service; the credentials have the permissions derived from the role that is associated with the instance.
Issue Analytics
- State:
- Created 7 years ago
- Reactions:3
- Comments:8 (8 by maintainers)
Top Results From Across the Web
Managing temporary elevated access to your AWS environment
The user obtains a session with temporary credentials for the IAM role in the AWS account specified in their request, either in the...
Read more >A New and Standardized Way to Manage Credentials in the ...
In outline, all of the AWS SDKs now use a standard approach for how to manage credentials. This includes the AWS command-line interface ......
Read more >Accessing AWS using your AWS credentials
Understand the different types of AWS security credentials (passwords, access keys, ... Root and IAM users sign in through the AWS Management Console...
Read more >AWS Secrets Manager - Amazon Web Services
AWS Secrets Manager helps you manage, retrieve, and rotate database credentials, API keys, and other secrets throughout their lifecycles.
Read more >Configuration basics - AWS Command Line Interface
Use short-term credentials to sign programmatic requests to the AWS CLI or AWS ... names that you see in AWS Management Console URLs...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Sounds good, I’ll send over a PR for an updated readme then.
For multiple profiles, I think you’re talking about AWS profiles and not leiningen profiles, in which case they should work just fine with env vars now. The DefaultAWSCredentialsProviderChain (the new hero) includes the ProfileCredentialsProvider which reads either the
AWS_PROFILE
env var or theaws.profile
Java system property (which could just be checked in to project.clj if desired since it’s non-sensitive and would help ensure using the correct profile).For the :username :env stuff I was specifically talking about this line in the readme: To use the environment for credentials, include :username :env :passphrase :env instead of :creds :gpg and export LEIN_USERNAME and LEIN_PASSPHRASE environment variables.
I believe all that behavior continues to work so no one is broken with a new version. (I think we’re on the same page here – stop documenting
LEIN_PASSPHRASE
but let it work for now).I think we’re pretty good now for this, by support AWS SDK provider chains. Thanks heaps for your work @sheelc!