@vptech/aws-security-baseline
Version:
Auto-generate AWS security baselines, IAM policies, and security groups from TypeScript interfaces
179 lines • 6.66 kB
JavaScript
;
/**
* AWS Security Baseline Generator
* Auto-generate AWS security baselines, IAM policies, and security groups from TypeScript interfaces
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Compliance = exports.SecurityBaseline = exports.SecurityBaselineGenerator = void 0;
exports.generateSecurityBaseline = generateSecurityBaseline;
exports.analyzeTypeScriptSecurity = analyzeTypeScriptSecurity;
exports.generateCDKSecurity = generateCDKSecurity;
exports.createSecurityStack = createSecurityStack;
exports.generateFromInterface = generateFromInterface;
exports.createSecurityGenerator = createSecurityGenerator;
exports.createSecurityAnalyzer = createSecurityAnalyzer;
exports.createCDKIntegration = createCDKIntegration;
exports.getAvailableComplianceFrameworks = getAvailableComplianceFrameworks;
exports.generateMinimalBaseline = generateMinimalBaseline;
exports.generateProductionBaseline = generateProductionBaseline;
// Core types
__exportStar(require("./types"), exports);
// Generators
var security_baseline_generator_1 = require("./generators/security-baseline-generator");
Object.defineProperty(exports, "SecurityBaselineGenerator", { enumerable: true, get: function () { return security_baseline_generator_1.SecurityBaselineGenerator; } });
// Analyzers
__exportStar(require("./analyzers/typescript-analyzer"), exports);
// Integrations
__exportStar(require("./integrations/cdk-integration"), exports);
// Main toolkit functions
const security_baseline_generator_2 = require("./generators/security-baseline-generator");
const typescript_analyzer_1 = require("./analyzers/typescript-analyzer");
const cdk_integration_1 = require("./integrations/cdk-integration");
/**
* Generate a complete AWS security baseline
*/
function generateSecurityBaseline(config) {
const generator = new security_baseline_generator_2.SecurityBaselineGenerator();
return generator.generateBaseline(config);
}
/**
* Analyze TypeScript interface for security requirements
*/
function analyzeTypeScriptSecurity(filePath, interfaceName) {
const analyzer = new typescript_analyzer_1.TypeScriptSecurityAnalyzer();
return analyzer.analyzeInterface(filePath, interfaceName);
}
/**
* Generate CDK constructs from security baseline
*/
function generateCDKSecurity(baseline) {
const integration = new cdk_integration_1.CDKSecurityIntegration();
return integration.generateCDKConstructs(baseline);
}
/**
* Create a complete security stack with CDK
*/
function createSecurityStack(baseline, stackName) {
const integration = new cdk_integration_1.CDKSecurityIntegration();
return integration.createSecurityStack(baseline, stackName);
}
/**
* Generate security baseline from TypeScript interface analysis
*/
function generateFromInterface(filePath, interfaceName, config) {
const analyzer = new typescript_analyzer_1.TypeScriptSecurityAnalyzer();
const generator = new security_baseline_generator_2.SecurityBaselineGenerator();
const integration = new cdk_integration_1.CDKSecurityIntegration();
// Analyze the TypeScript interface
const analysis = analyzer.analyzeInterface(filePath, interfaceName);
// Create baseline configuration
const baselineConfig = {
complianceFrameworks: ['SOC2', 'ISO27001'],
securityLevel: 'enhanced',
organizationName: 'MyOrg',
environmentType: 'production',
enableCloudTrail: true,
enableConfigRules: true,
enableGuardDuty: true,
enableSecurityHub: true,
...config
};
// Generate security baseline
const baseline = generator.generateBaseline(baselineConfig);
// Generate CDK code
const cdkCode = integration.generateCDKConstructs(baseline);
return {
analysis,
baseline,
cdkCode
};
}
/**
* Create a security baseline generator instance
*/
function createSecurityGenerator() {
return new security_baseline_generator_2.SecurityBaselineGenerator();
}
/**
* Create a TypeScript security analyzer instance
*/
function createSecurityAnalyzer() {
return new typescript_analyzer_1.TypeScriptSecurityAnalyzer();
}
/**
* Create a CDK integration helper instance
*/
function createCDKIntegration() {
return new cdk_integration_1.CDKSecurityIntegration();
}
/**
* Get available compliance frameworks
*/
function getAvailableComplianceFrameworks() {
return ['SOC2', 'ISO27001', 'HIPAA', 'PCI-DSS', 'GDPR', 'CUSTOM'];
}
/**
* Generate a minimal security baseline for quick start
*/
function generateMinimalBaseline(organizationName) {
const config = {
complianceFrameworks: ['SOC2'],
securityLevel: 'basic',
organizationName,
environmentType: 'development',
enableCloudTrail: true,
enableConfigRules: false,
enableGuardDuty: true,
enableSecurityHub: false
};
return generateSecurityBaseline(config);
}
/**
* Generate a production-ready security baseline
*/
function generateProductionBaseline(organizationName, frameworks = ['SOC2', 'ISO27001']) {
const config = {
complianceFrameworks: frameworks,
securityLevel: 'strict',
organizationName,
environmentType: 'production',
enableCloudTrail: true,
enableConfigRules: true,
enableGuardDuty: true,
enableSecurityHub: true
};
return generateSecurityBaseline(config);
}
// Convenience exports
exports.SecurityBaseline = {
generate: generateSecurityBaseline,
analyzeTypeScript: analyzeTypeScriptSecurity,
generateCDK: generateCDKSecurity,
createStack: createSecurityStack,
fromInterface: generateFromInterface,
minimal: generateMinimalBaseline,
production: generateProductionBaseline
};
exports.Compliance = {
frameworks: getAvailableComplianceFrameworks(),
SOC2: 'SOC2',
ISO27001: 'ISO27001',
HIPAA: 'HIPAA',
PCI_DSS: 'PCI-DSS',
GDPR: 'GDPR'
};
//# sourceMappingURL=index.js.map