UNPKG

@deeplint/scanner-aws

Version:

DeepScanner AWS collects cloud resources and outputs them in standard format for further processing

58 lines 6.46 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.S3BucketProvider = void 0; const aws_error_handler_1 = require("../helper/aws-error-handler"); const aws_provider_1 = require("../helper/aws-provider"); class S3BucketProvider extends aws_provider_1.AwsProvider { collect(context) { return __awaiter(this, void 0, void 0, function* () { console.log(context); return this.listAllBuckets(); }); } listAllBuckets() { return __awaiter(this, void 0, void 0, function* () { const result = []; const serviceName = 'S3'; try { for (const region of this.getRegions(serviceName)) { const s3 = this.getClient(serviceName, region); const s3BucketsData = yield s3.listBuckets().promise(); if (s3BucketsData && s3BucketsData.Buckets) { for (const bucket of s3BucketsData.Buckets) { if (bucket.Name) { const versioning = yield s3 .getBucketVersioning({ Bucket: bucket.Name }) .promise(); result.push({ name: bucket.Name, type: S3BucketProvider.RESOURCE_TYPE, properties: { Region: region, VersioningConfiguration: { Status: versioning.Status }, }, }); } } } } } catch (error) { aws_error_handler_1.handle(error); } return result; }); } } exports.S3BucketProvider = S3BucketProvider; S3BucketProvider.RESOURCE_TYPE = 'aws::s3::bucket'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9yZXNvdXJjZXMvczMtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLG1FQUFxRDtBQUVyRCx5REFBcUQ7QUFHckQsTUFBYSxnQkFBaUIsU0FBUSwwQkFBVztJQUdsQyxPQUFPLENBQUMsT0FBK0I7O1lBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDL0IsQ0FBQztLQUFBO0lBRWEsY0FBYzs7WUFDMUIsTUFBTSxNQUFNLEdBQWUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJO2dCQUNGLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDakQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFXLENBQUM7b0JBQ3pELE1BQU0sYUFBYSxHQUE2QixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakYsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRTt3QkFDMUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFOzRCQUMxQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0NBQ2YsTUFBTSxVQUFVLEdBQXFDLE1BQU0sRUFBRTtxQ0FDMUQsbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO3FDQUM1QyxPQUFPLEVBQUUsQ0FBQztnQ0FDYixNQUFNLENBQUMsSUFBSSxDQUFDO29DQUNWLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQ0FDakIsSUFBSSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7b0NBQ3BDLFVBQVUsRUFBRTt3Q0FDVixNQUFNLEVBQUUsTUFBTTt3Q0FDZCx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFO3FDQUN2RDtpQ0FDRixDQUFDLENBQUM7NkJBQ0o7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLDBCQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDZjtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7S0FBQTs7QUFyQ0gsNENBc0NDO0FBckN3Qiw4QkFBYSxHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFuZGxlIH0gZnJvbSAnLi4vaGVscGVyL2F3cy1lcnJvci1oYW5kbGVyJztcbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCB7IEF3c1Byb3ZpZGVyIH0gZnJvbSAnLi4vaGVscGVyL2F3cy1wcm92aWRlcic7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJ0BkZWVwc2Nhbm5lci9iYXNlJztcblxuZXhwb3J0IGNsYXNzIFMzQnVja2V0UHJvdmlkZXIgZXh0ZW5kcyBBd3NQcm92aWRlciB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVTT1VSQ0VfVFlQRSA9ICdhd3M6OnMzOjpidWNrZXQnO1xuXG4gIHB1YmxpYyBhc3luYyBjb2xsZWN0KGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQcm9taXNlPFJlc291cmNlW10+IHtcbiAgICBjb25zb2xlLmxvZyhjb250ZXh0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0QWxsQnVja2V0cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsaXN0QWxsQnVja2V0cygpOiBQcm9taXNlPFJlc291cmNlW10+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlc291cmNlW10gPSBbXTtcbiAgICBjb25zdCBzZXJ2aWNlTmFtZSA9ICdTMyc7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIHRoaXMuZ2V0UmVnaW9ucyhzZXJ2aWNlTmFtZSkpIHtcbiAgICAgICAgY29uc3QgczMgPSB0aGlzLmdldENsaWVudChzZXJ2aWNlTmFtZSwgcmVnaW9uKSBhcyBBV1MuUzM7XG4gICAgICAgIGNvbnN0IHMzQnVja2V0c0RhdGE6IEFXUy5TMy5MaXN0QnVja2V0c091dHB1dCA9IGF3YWl0IHMzLmxpc3RCdWNrZXRzKCkucHJvbWlzZSgpO1xuICAgICAgICBpZiAoczNCdWNrZXRzRGF0YSAmJiBzM0J1Y2tldHNEYXRhLkJ1Y2tldHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGJ1Y2tldCBvZiBzM0J1Y2tldHNEYXRhLkJ1Y2tldHMpIHtcbiAgICAgICAgICAgIGlmIChidWNrZXQuTmFtZSkge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9uaW5nOiBBV1MuUzMuR2V0QnVja2V0VmVyc2lvbmluZ091dHB1dCA9IGF3YWl0IHMzXG4gICAgICAgICAgICAgICAgLmdldEJ1Y2tldFZlcnNpb25pbmcoeyBCdWNrZXQ6IGJ1Y2tldC5OYW1lIH0pXG4gICAgICAgICAgICAgICAgLnByb21pc2UoKTtcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IGJ1Y2tldC5OYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IFMzQnVja2V0UHJvdmlkZXIuUkVTT1VSQ0VfVFlQRSxcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICBSZWdpb246IHJlZ2lvbixcbiAgICAgICAgICAgICAgICAgIFZlcnNpb25pbmdDb25maWd1cmF0aW9uOiB7IFN0YXR1czogdmVyc2lvbmluZy5TdGF0dXMgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19