UNPKG

aws-container-image-scanner

Version:

AWS Container Image Scanner - Enterprise tool for scanning EKS clusters, analyzing Bitnami container dependencies, and generating migration guidance for AWS ECR alternatives with security best practices.

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