2.0.0 • Published 3 years ago

aws-get-credentials v2.0.0

Weekly downloads
75
License
MIT
Repository
github
Last release
3 years ago

aws-get-credentials

Create an AWS credentials instance from local credentials

npm version Build Status

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 AWS Credentials 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"
    // ]
});