advanced-cdk-constructs
Version:
[](https://codecov.io/gh/spensireli/advanced-cdk-constructs)
65 lines • 7.04 kB
JavaScript
;
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=