UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

36 lines (35 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const AWS = require("aws-sdk"); const utils_1 = require("../../../utils"); const aws_1 = require("../../../utils/aws"); const base_1 = require("../../base"); class VirtualMFADevicesCollector extends base_1.BaseCollector { constructor() { super(...arguments); this.iam = new AWS.IAM({ region: "us-east-1" }); } collect() { return this.listVirtualMFADevices(); } async listVirtualMFADevices() { try { const iam = this.getClient("IAM", "us-east-1"); let fetchPending = true; let marker; let mfaVirtualDevices = []; while (fetchPending) { const iamMfaDevicesData = await iam.listVirtualMFADevices({ Marker: marker }).promise(); mfaVirtualDevices = mfaVirtualDevices.concat(iamMfaDevicesData.VirtualMFADevices); marker = iamMfaDevicesData.Marker; fetchPending = iamMfaDevicesData.IsTruncated === true; await utils_1.CommonUtil.wait(200); } return { mfaVirtualDevices }; } catch (error) { aws_1.AWSErrorHandler.handle(error); } } } exports.VirtualMFADevicesCollector = VirtualMFADevicesCollector;