@deeplint/scanner-aws
Version:
DeepScanner AWS collects cloud resources and outputs them in standard format for further processing
58 lines • 6.46 kB
JavaScript
;
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