UNPKG

container-image-scanner

Version:

Enterprise Container Image Scanner with AWS Security Best Practices. Scan EKS clusters for Bitnami container image dependencies and generate migration guidance for AWS ECR alternatives.

118 lines 3.43 kB
export interface ScanOptions { accounts?: string; regions: string; orgScan?: boolean; roleArn?: string; output?: string; criticalOnly?: boolean; verbose?: boolean; } export interface ContainerImage { account: string; accountName: string; region: string; cluster: string; namespace: string; workload: string; workloadType: 'deployment' | 'statefulset' | 'daemonset' | 'pod' | 'job' | 'cronjob'; container: string; image: string; tag: string; isLatest: boolean; riskLevel: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW'; category: string; ecrAlternative: string; replicas: number; lastScanned: string; pullPolicy?: string; resources?: { requests?: { cpu?: string; memory?: string; }; limits?: { cpu?: string; memory?: string; }; }; } export interface ScanResults { metadata: { scanId: string; timestamp: string; version: string; totalAccounts: number; totalClusters: number; daysUntilDeadline: number; broadcomDeadline: string; scanDuration: number; }; summary: { totalImages: number; criticalRisk: number; highRisk: number; mediumRisk: number; lowRisk: number; categorizedImages: Record<string, number>; topRiskClusters: Array<{ cluster: string; account: string; region: string; bitnamiCount: number; criticalCount: number; }>; }; images: ContainerImage[]; clusters: Array<{ account: string; region: string; name: string; status: string; version?: string; bitnamiImageCount: number; totalImageCount: number; }>; errors: Array<{ account: string; region?: string; cluster?: string; error: string; timestamp: string; errorType: 'AUTH' | 'NETWORK' | 'KUBECTL' | 'PARSING' | 'OTHER'; }>; } export declare class ContainerImageScanner { results: ScanResults; private startTime; private bitnamiImages; constructor(); isBitnamiImage(imageName: string): boolean; assessRiskLevel(imageName: string): 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'; getAwsAlternative(imageName: string): string | undefined; searchImages(searchText: string, fields?: string[]): ContainerImage[]; filterImages(filters: { field: string; operator: string; value: any; }[]): ContainerImage[]; getClusterSummary(): any[]; startInteractiveMode(): Promise<void>; displayResults(images?: ContainerImage[]): void; displayClusterSummary(): void; processScanResults(scanData: any): any; processCluster(cluster: any): any; private getRiskPriority; validateAccountId(accountId: string): boolean; validateRegion(region: string): boolean; private initializeResults; performScan(options: ScanOptions): Promise<void>; discoverOrganizationAccounts(): Promise<Array<{ id: string; name: string; }>>; private calculateSummary; private saveResults; scanAccount(accountId: string, accountName: string, regions: string[]): Promise<void>; generateRoleSetupInstructions(_options: any): Promise<void>; } //# sourceMappingURL=scanner.d.ts.map