UNPKG

advanced-cdk-constructs

Version:

[![codecov](https://codecov.io/gh/spensireli/advanced-cdk-constructs/graph/badge.svg?token=50IITI207T)](https://codecov.io/gh/spensireli/advanced-cdk-constructs)

65 lines 7.04 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.GuardDutyConstruct = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const gd = require("aws-cdk-lib/aws-guardduty"); const constructs_1 = require("constructs"); /** * A CDK construct that sets up AWS GuardDuty with configurable data sources and features. * * Example: * ```ts * new GuardDutyConstruct(this, 'GuardDuty', { * enableGuardDuty: true, * kubernetesAuditLogs: true, * malwareProtection: true, * s3Logs: true, * }); * ``` */ class GuardDutyConstruct extends constructs_1.Construct { /** * Creates a new GuardDutyConstruct. * @param scope The parent construct. * @param id The construct ID. * @param props GuardDuty configuration properties. */ constructor(scope, id, props) { super(scope, id); const enableGuardDuty = props?.enableGuardDuty ?? true; const kubernetesAuditLogs = props?.kubernetesAuditLogs ?? true; const malwareProtection = props?.malwareProtection ?? true; const s3Logs = props?.s3Logs ?? true; // const runtimeMonitoring: boolean = props?.runtimeMonitoring ?? true; const guardDuty = new gd.CfnDetector(this, 'GuardDutyDetector', { enable: enableGuardDuty, dataSources: { kubernetes: { auditLogs: { enable: kubernetesAuditLogs, }, }, malwareProtection: { scanEc2InstanceWithFindings: { ebsVolumes: malwareProtection, }, }, s3Logs: { enable: s3Logs, }, }, features: [ { name: 'RUNTIME_MONITORING', status: 'ENABLED', }, ], }); this.detectorId = guardDuty.attrId; } } exports.GuardDutyConstruct = GuardDutyConstruct; _a = JSII_RTTI_SYMBOL_1; GuardDutyConstruct[_a] = { fqn: "advanced-cdk-constructs.GuardDutyConstruct", version: "0.0.14" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmQtZHV0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ndWFyZC1kdXR5L2d1YXJkLWR1dHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBZ0Q7QUFDaEQsMkNBQXVDO0FBcUN2Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLHNCQUFTO0lBTS9DOzs7OztPQUtHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sZUFBZSxHQUFZLEtBQUssRUFBRSxlQUFlLElBQUksSUFBSSxDQUFDO1FBQ2hFLE1BQU0sbUJBQW1CLEdBQVksS0FBSyxFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQztRQUN4RSxNQUFNLGlCQUFpQixHQUFZLEtBQUssRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdBQVksS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDOUMsdUVBQXVFO1FBRXZFLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDOUQsTUFBTSxFQUFFLGVBQWU7WUFDdkIsV0FBVyxFQUFFO2dCQUNYLFVBQVUsRUFBRTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsTUFBTSxFQUFFLG1CQUFtQjtxQkFDNUI7aUJBQ0Y7Z0JBQ0QsaUJBQWlCLEVBQUU7b0JBQ2pCLDJCQUEyQixFQUFFO3dCQUMzQixVQUFVLEVBQUUsaUJBQWlCO3FCQUM5QjtpQkFDRjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLE1BQU07aUJBQ2Y7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixNQUFNLEVBQUUsU0FBUztpQkFDbEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDOztBQTdDSCxnREE4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBnZCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ3VhcmRkdXR5JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHtAbGluayBHdWFyZER1dHlDb25zdHJ1Y3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eUNvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIEd1YXJkRHV0eS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlR3VhcmREdXR5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgS3ViZXJuZXRlcyBhdWRpdCBsb2dzIGFzIGEgR3VhcmREdXR5IGRhdGEgc291cmNlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBrdWJlcm5ldGVzQXVkaXRMb2dzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgbWFsd2FyZSBwcm90ZWN0aW9uIChFQzIgRUJTIHZvbHVtZSBzY2FubmluZykuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG1hbHdhcmVQcm90ZWN0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgUzMgbG9ncyBhcyBhIEd1YXJkRHV0eSBkYXRhIHNvdXJjZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2dzPzogYm9vbGVhbjtcblxuICAvLyAvKipcbiAgLy8gICogV2hldGhlciB0byBlbmFibGUgcnVudGltZSBtb25pdG9yaW5nLlxuICAvLyAgKiBAZGVmYXVsdCB0cnVlXG4gIC8vICAqL1xuICAvLyByZWFkb25seSBydW50aW1lTW9uaXRvcmluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBDREsgY29uc3RydWN0IHRoYXQgc2V0cyB1cCBBV1MgR3VhcmREdXR5IHdpdGggY29uZmlndXJhYmxlIGRhdGEgc291cmNlcyBhbmQgZmVhdHVyZXMuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzXG4gKiBuZXcgR3VhcmREdXR5Q29uc3RydWN0KHRoaXMsICdHdWFyZER1dHknLCB7XG4gKiAgIGVuYWJsZUd1YXJkRHV0eTogdHJ1ZSxcbiAqICAga3ViZXJuZXRlc0F1ZGl0TG9nczogdHJ1ZSxcbiAqICAgbWFsd2FyZVByb3RlY3Rpb246IHRydWUsXG4gKiAgIHMzTG9nczogdHJ1ZSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBHdWFyZER1dHlDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBjcmVhdGVkIEd1YXJkRHV0eSBkZXRlY3Rvci5cbiAgICovXG4gIHB1YmxpYyBkZXRlY3RvcklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgR3VhcmREdXR5Q29uc3RydWN0LlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IElELlxuICAgKiBAcGFyYW0gcHJvcHMgR3VhcmREdXR5IGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogR3VhcmREdXR5Q29uc3RydWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGVuYWJsZUd1YXJkRHV0eTogYm9vbGVhbiA9IHByb3BzPy5lbmFibGVHdWFyZER1dHkgPz8gdHJ1ZTtcbiAgICBjb25zdCBrdWJlcm5ldGVzQXVkaXRMb2dzOiBib29sZWFuID0gcHJvcHM/Lmt1YmVybmV0ZXNBdWRpdExvZ3MgPz8gdHJ1ZTtcbiAgICBjb25zdCBtYWx3YXJlUHJvdGVjdGlvbjogYm9vbGVhbiA9IHByb3BzPy5tYWx3YXJlUHJvdGVjdGlvbiA/PyB0cnVlO1xuICAgIGNvbnN0IHMzTG9nczogYm9vbGVhbiA9IHByb3BzPy5zM0xvZ3MgPz8gdHJ1ZTtcbiAgICAvLyBjb25zdCBydW50aW1lTW9uaXRvcmluZzogYm9vbGVhbiA9IHByb3BzPy5ydW50aW1lTW9uaXRvcmluZyA/PyB0cnVlO1xuXG4gICAgY29uc3QgZ3VhcmREdXR5ID0gbmV3IGdkLkNmbkRldGVjdG9yKHRoaXMsICdHdWFyZER1dHlEZXRlY3RvcicsIHtcbiAgICAgIGVuYWJsZTogZW5hYmxlR3VhcmREdXR5LFxuICAgICAgZGF0YVNvdXJjZXM6IHtcbiAgICAgICAga3ViZXJuZXRlczoge1xuICAgICAgICAgIGF1ZGl0TG9nczoge1xuICAgICAgICAgICAgZW5hYmxlOiBrdWJlcm5ldGVzQXVkaXRMb2dzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1hbHdhcmVQcm90ZWN0aW9uOiB7XG4gICAgICAgICAgc2NhbkVjMkluc3RhbmNlV2l0aEZpbmRpbmdzOiB7XG4gICAgICAgICAgICBlYnNWb2x1bWVzOiBtYWx3YXJlUHJvdGVjdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzM0xvZ3M6IHtcbiAgICAgICAgICBlbmFibGU6IHMzTG9ncyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmZWF0dXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1JVTlRJTUVfTU9OSVRPUklORycsXG4gICAgICAgICAgc3RhdHVzOiAnRU5BQkxFRCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIHRoaXMuZGV0ZWN0b3JJZCA9IGd1YXJkRHV0eS5hdHRySWQ7XG4gIH1cbn0iXX0=