Comparing version
@@ -9,2 +9,3 @@ #!/usr/bin/env node | ||
}); | ||
exports.assumeRole = assumeRole; | ||
exports.getProfile = getProfile; | ||
@@ -22,7 +23,12 @@ | ||
var _os = require('os'); | ||
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } | ||
function assume(profile) { | ||
function assumeRole(profile) { | ||
var creds = new _awsSdk.SharedIniFileCredentials({ profile: profile }); | ||
var file = process.env.AWS_CONFIG_FILE || (0, _path.join)((0, _path.dirname)(creds.filename), 'config'); | ||
var awsProfileDir = creds.filename ? (0, _path.dirname)(creds.filename) : (0, _path.join)((0, _os.homedir)(), '.aws'); | ||
var file = process.env.AWS_CONFIG_FILE || (0, _path.join)(awsProfileDir, 'config'); | ||
var config = (0, _ini.parse)((0, _fs.readFileSync)(file, 'utf-8'))['profile ' + profile]; | ||
@@ -38,3 +44,3 @@ var sts = new _awsSdk.STS(); | ||
sts.assumeRole(options, function (error, response) { | ||
if (error) reject(error);else resolve(response.Credentials); | ||
if (error) reject(error);else resolve(new _awsSdk.Credentials(response.Credentials.AccessKeyId, response.Credentials.SecretAccessKey, response.Credentials.SessionToken)); | ||
}); | ||
@@ -45,13 +51,8 @@ }); | ||
function getProfile() { | ||
if (process.argv.length > 2) { | ||
return process.argv[2]; | ||
} else if (process.env.AWS_PROFILE) { | ||
return process.env.AWS_PROFILE; | ||
} | ||
return 'default'; | ||
return process.env.AWS_PROFILE || 'default'; | ||
} | ||
exports.default = function () { | ||
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(profile) { | ||
var _ref2, AccessKeyId, SecretAccessKey, SessionToken; | ||
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(profile) { | ||
var _ref2, accessKeyId, secretAccessKey, sessionToken; | ||
@@ -67,11 +68,11 @@ return regeneratorRuntime.wrap(function _callee$(_context) { | ||
_context.next = 5; | ||
return assume(profile); | ||
return assumeRole(profile); | ||
case 5: | ||
_ref2 = _context.sent; | ||
AccessKeyId = _ref2.AccessKeyId; | ||
SecretAccessKey = _ref2.SecretAccessKey; | ||
SessionToken = _ref2.SessionToken; | ||
accessKeyId = _ref2.accessKeyId; | ||
secretAccessKey = _ref2.secretAccessKey; | ||
sessionToken = _ref2.sessionToken; | ||
process.stdout.write('AWS_ACCESS_KEY_ID=' + AccessKeyId + ' AWS_SECRET_ACCESS_KEY=' + SecretAccessKey + ' AWS_SESSION_TOKEN=' + SessionToken); | ||
process.stdout.write('AWS_ACCESS_KEY_ID=' + accessKeyId + ' AWS_SECRET_ACCESS_KEY=' + secretAccessKey + ' AWS_SESSION_TOKEN=' + sessionToken); | ||
_context.next = 16; | ||
@@ -78,0 +79,0 @@ break; |
{ | ||
"name": "aws-assume", | ||
"description": "Generate teporary credentials for aws assumed roles.", | ||
"version": "0.1.5", | ||
"version": "0.1.6", | ||
"author": "Jonathan Brumley <cayasso@gmail.com>", | ||
@@ -6,0 +6,0 @@ "keywords": [ |
@@ -18,6 +18,8 @@ # aws-assume | ||
## Installation | ||
``` | ||
# As part of your Node project | ||
npm install aws-assume --save | ||
### As part of your Node project | ||
`npm install aws-assume --save` | ||
#### Usage as a standalone CLI script | ||
```javascript | ||
# package.json | ||
@@ -31,4 +33,18 @@ ... | ||
#### Usage as a module | ||
```javascript | ||
import {assumeRole, getProfile} from 'aws-assume' | ||
import AWS from 'aws-sdk' | ||
... | ||
assumeRole(getProfile()) | ||
.then(credentials => { | ||
AWS.config.credentials = credentials | ||
// ... | ||
}) | ||
``` | ||
# Install globally | ||
### Install globally | ||
```bash | ||
npm install -g aws-assume | ||
@@ -35,0 +51,0 @@ eval "`aws-assume <profile>` npm run deploy" |
Sorry, the diff of this file is not supported yet
83071
986.61%8
14.29%113
16.49%3
-25%86
-2.27%