aws-get-credentials
Create an AWS credentials instance from local credentials
About
Fetch a credentials instance from your local machine using a very simple fetcher method.
Avoid hardcoding and commiting secure information by using AWS' credentials file for configuration. Some AWS client libraries automatically read this file, but some do not. aws-get-credentials provides a quick and easy method to retrieve a credential file's config.
Usage
The aws-get-credentials
module exports two methods:
-
getAWSCredentials
- Fetch an AWSCredentials
instance from local configuration -
getAWSProfiles
- Get an array of profile names available
Check out the API documentation for more information.
getAWSCredentials
The method getAWSCredentials
takes two parameters:
getAWSCredentials(
optionalProfileOverride,
optionalPathOverride,
useEnvironmentVariables = false
) // => Promise.<AWS.Credentials>
optionalProfileOverride
is an optional override for the profile to use (defaults to an environment variable AWS_DEFAULT_PROFILE
first, then "default" lastly). optionalPathOverride
is an optional override for the path to the credentials file (defaults to an environment variable AWS_CREDENTIALS_PATH
first, and then ~/.aws/credentials
lastly).
Providing true
for the 3rd parameter, "useEnvironmentVariables", tells getAWSCredentials
to return a Credentials
instance using the available environment variables instead of trying to read from the local credentials file.
Example
Firstly, import the function:
const { getAWSCredentials } = require("aws-get-credentials");
Then use its output (promise):
const s3 = require("s3"); // example library
getAWSCredentials("production")
.then(function(credentials) {
const s3Client = s3.createClient({
s3Options: {
credentials
}
});
const syncOptions = {};
const uploader = s3Client.uploadDir(syncOptions);
return new Promise(function(resolve, reject) {
uploader.on("error", reject);
uploader.on("end", resolve);
});
});
getAWSProfiles
This method asynchronously fetches a list of profile names in the credentials file:
const { getAWSProfiles } = require("aws-get-credentials");
getAWSProfiles().then(profiles => {
// [
// "company-prod",
// "company-stag",
// "default"
// ]
});