UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

43 lines 7.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable import/order */ const AWS = require("aws-sdk"); const awscli_compatible_1 = require("../../lib/api/aws-auth/awscli-compatible"); const util_1 = require("../util"); beforeEach(() => { // Set to paths that don't exist so the SDK doesn't accidentally load this config process.env.AWS_CONFIG_FILE = '/home/dummydummy/.bxt/config'; process.env.AWS_SHARED_CREDENTIALS_FILE = '/home/dummydummy/.bxt/credentials'; // Scrub some environment variables that might be set if we're running on CodeBuild which will interfere with the tests. delete process.env.AWS_REGION; delete process.env.AWS_DEFAULT_REGION; delete process.env.AWS_ACCESS_KEY_ID; delete process.env.AWS_SECRET_ACCESS_KEY; delete process.env.AWS_SESSION_TOKEN; }); test('on an EC2 instance, region lookup queries IMDS', async () => { return (0, util_1.withMockedClassSingleton)(AWS, 'MetadataService', async (mdService) => { mdService.request // First call for a token .mockImplementationOnce((_1, _2, cb) => { cb(undefined, 'token'); }) // Second call for the region .mockImplementationOnce((_1, _2, cb) => { cb(undefined, JSON.stringify({ region: 'some-region' })); }); const region = await awscli_compatible_1.AwsCliCompatible.region({ ec2instance: true }); expect(region).toEqual('some-region'); }); }); test('Use web identity when available', async () => { // Scrub some environment variables that are maybe set for Ecs Credentials delete process.env.ECS_CONTAINER_METADATA_URI_V4; delete process.env.ECS_CONTAINER_METADATA_URI; delete process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI; // create and configure the web identity token file process.env.AWS_WEB_IDENTITY_TOKEN_FILE = 'some-value'; process.env.AWS_ROLE_ARN = 'some-value'; // create the chain const providers = (await awscli_compatible_1.AwsCliCompatible.credentialChain()).providers; // make sure the web identity provider is in the chain const webIdentify = providers[5](); expect(webIdentify).toBeInstanceOf(AWS.TokenFileWebIdentityCredentials); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2xpLWNvbXBhdGlibGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3c2NsaS1jb21wYXRpYmxlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMsK0JBQStCO0FBQy9CLGdGQUE0RTtBQUM1RSxrQ0FBbUQ7QUFFbkQsVUFBVSxDQUFDLEdBQUcsRUFBRTtJQUNkLGlGQUFpRjtJQUNqRixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyw4QkFBOEIsQ0FBQztJQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLG1DQUFtQyxDQUFDO0lBQzlFLHdIQUF3SDtJQUN4SCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO0lBQzlCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztJQUN0QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7SUFDckMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDO0lBQ3pDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxnREFBZ0QsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLElBQUEsK0JBQXdCLEVBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUMxRSxTQUFTLENBQUMsT0FBTztZQUNmLHlCQUF5QjthQUN4QixzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRSw2QkFBNkI7YUFDNUIsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoSCxNQUFNLE1BQU0sR0FBRyxNQUFNLG9DQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLElBQUksRUFBRTtJQUVqRCwwRUFBMEU7SUFDMUUsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDO0lBQ2pELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztJQUM5QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUM7SUFFMUQsbURBQW1EO0lBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEdBQUcsWUFBWSxDQUFDO0lBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUV4QyxtQkFBbUI7SUFDbkIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLG9DQUFnQixDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRXZFLHNEQUFzRDtJQUN0RCxNQUFNLFdBQVcsR0FBSSxTQUFTLENBQUMsQ0FBQyxDQUFjLEVBQUUsQ0FBQztJQUNqRCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L29yZGVyICovXG5pbXBvcnQgKiBhcyBBV1MgZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgeyBBd3NDbGlDb21wYXRpYmxlIH0gZnJvbSAnLi4vLi4vbGliL2FwaS9hd3MtYXV0aC9hd3NjbGktY29tcGF0aWJsZSc7XG5pbXBvcnQgeyB3aXRoTW9ja2VkQ2xhc3NTaW5nbGV0b24gfSBmcm9tICcuLi91dGlsJztcblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIC8vIFNldCB0byBwYXRocyB0aGF0IGRvbid0IGV4aXN0IHNvIHRoZSBTREsgZG9lc24ndCBhY2NpZGVudGFsbHkgbG9hZCB0aGlzIGNvbmZpZ1xuICBwcm9jZXNzLmVudi5BV1NfQ09ORklHX0ZJTEUgPSAnL2hvbWUvZHVtbXlkdW1teS8uYnh0L2NvbmZpZyc7XG4gIHByb2Nlc3MuZW52LkFXU19TSEFSRURfQ1JFREVOVElBTFNfRklMRSA9ICcvaG9tZS9kdW1teWR1bW15Ly5ieHQvY3JlZGVudGlhbHMnO1xuICAvLyBTY3J1YiBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IG1pZ2h0IGJlIHNldCBpZiB3ZSdyZSBydW5uaW5nIG9uIENvZGVCdWlsZCB3aGljaCB3aWxsIGludGVyZmVyZSB3aXRoIHRoZSB0ZXN0cy5cbiAgZGVsZXRlIHByb2Nlc3MuZW52LkFXU19SRUdJT047XG4gIGRlbGV0ZSBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9SRUdJT047XG4gIGRlbGV0ZSBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRDtcbiAgZGVsZXRlIHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWTtcbiAgZGVsZXRlIHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOO1xufSk7XG5cbnRlc3QoJ29uIGFuIEVDMiBpbnN0YW5jZSwgcmVnaW9uIGxvb2t1cCBxdWVyaWVzIElNRFMnLCBhc3luYyAoKSA9PiB7XG4gIHJldHVybiB3aXRoTW9ja2VkQ2xhc3NTaW5nbGV0b24oQVdTLCAnTWV0YWRhdGFTZXJ2aWNlJywgYXN5bmMgKG1kU2VydmljZSkgPT4ge1xuICAgIG1kU2VydmljZS5yZXF1ZXN0XG4gICAgICAvLyBGaXJzdCBjYWxsIGZvciBhIHRva2VuXG4gICAgICAubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoXzEsIF8yLCBjYikgPT4geyBjYih1bmRlZmluZWQgYXMgYW55LCAndG9rZW4nKTsgfSlcbiAgICAgIC8vIFNlY29uZCBjYWxsIGZvciB0aGUgcmVnaW9uXG4gICAgICAubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoXzEsIF8yLCBjYikgPT4geyBjYih1bmRlZmluZWQgYXMgYW55LCBKU09OLnN0cmluZ2lmeSh7IHJlZ2lvbjogJ3NvbWUtcmVnaW9uJyB9KSk7IH0pO1xuXG4gICAgY29uc3QgcmVnaW9uID0gYXdhaXQgQXdzQ2xpQ29tcGF0aWJsZS5yZWdpb24oeyBlYzJpbnN0YW5jZTogdHJ1ZSB9KTtcbiAgICBleHBlY3QocmVnaW9uKS50b0VxdWFsKCdzb21lLXJlZ2lvbicpO1xuICB9KTtcbn0pO1xuXG50ZXN0KCdVc2Ugd2ViIGlkZW50aXR5IHdoZW4gYXZhaWxhYmxlJywgYXN5bmMgKCkgPT4ge1xuXG4gIC8vIFNjcnViIHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIG1heWJlIHNldCBmb3IgRWNzIENyZWRlbnRpYWxzXG4gIGRlbGV0ZSBwcm9jZXNzLmVudi5FQ1NfQ09OVEFJTkVSX01FVEFEQVRBX1VSSV9WNDtcbiAgZGVsZXRlIHByb2Nlc3MuZW52LkVDU19DT05UQUlORVJfTUVUQURBVEFfVVJJO1xuICBkZWxldGUgcHJvY2Vzcy5lbnYuQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkk7XG5cbiAgLy8gY3JlYXRlIGFuZCBjb25maWd1cmUgdGhlIHdlYiBpZGVudGl0eSB0b2tlbiBmaWxlXG4gIHByb2Nlc3MuZW52LkFXU19XRUJfSURFTlRJVFlfVE9LRU5fRklMRSA9ICdzb21lLXZhbHVlJztcbiAgcHJvY2Vzcy5lbnYuQVdTX1JPTEVfQVJOID0gJ3NvbWUtdmFsdWUnO1xuXG4gIC8vIGNyZWF0ZSB0aGUgY2hhaW5cbiAgY29uc3QgcHJvdmlkZXJzID0gKGF3YWl0IEF3c0NsaUNvbXBhdGlibGUuY3JlZGVudGlhbENoYWluKCkpLnByb3ZpZGVycztcblxuICAvLyBtYWtlIHN1cmUgdGhlIHdlYiBpZGVudGl0eSBwcm92aWRlciBpcyBpbiB0aGUgY2hhaW5cbiAgY29uc3Qgd2ViSWRlbnRpZnkgPSAocHJvdmlkZXJzWzVdIGFzIEZ1bmN0aW9uKSgpO1xuICBleHBlY3Qod2ViSWRlbnRpZnkpLnRvQmVJbnN0YW5jZU9mKEFXUy5Ub2tlbkZpbGVXZWJJZGVudGl0eUNyZWRlbnRpYWxzKTtcbn0pO1xuIl19