@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
44 lines • 7.23 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
const msk_1 = require("../lib/msk");
const kafka_api_1 = require("../lib/msk/kafka-api");
const aws_acmpca_1 = require("aws-cdk-lib/aws-acmpca");
const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
const app = new cdk.App();
const stack = new cdk.Stack(app, 'MskProvisionedDsf');
stack.node.setContext('@data-solutions-framework-on-aws/removeDataOnDestroy', true);
let certificateAuthority = aws_acmpca_1.CertificateAuthority.fromCertificateAuthorityArn(stack, 'certificateAuthority', 'arn:aws:acm-pca:eu-west-1:12345678912:certificate-authority/dummy-ca');
let secret = aws_secretsmanager_1.Secret.fromSecretCompleteArn(stack, 'secret', 'arn:aws:secretsmanager:eu-west-1:12345678912:secret:dsf/mskCert-dummy');
let vpc = aws_ec2_1.Vpc.fromVpcAttributes(stack, 'vpc', {
vpcId: 'vpc-1111111111',
vpcCidrBlock: '10.0.0.0/16',
availabilityZones: ['eu-west-1a', 'eu-west-1b'],
publicSubnetIds: ['subnet-111111111', 'subnet-11111111'],
privateSubnetIds: ['subnet-11111111', 'subnet-1111111'],
});
const kafkaApi = new kafka_api_1.KafkaApi(stack, 'kafkaApi', {
vpc: vpc,
clusterArn: 'arn:aws:kafka:eu-west-1:12345678912:cluster/byo-msk/dummy-5cf3-42d5-aece-dummmy-2',
clusterType: msk_1.MskClusterType.PROVISIONED,
brokerSecurityGroup: aws_ec2_1.SecurityGroup.fromSecurityGroupId(stack, 'brokerSecurityGroup', 'sg-98237412hsa'),
certficateSecret: secret,
clientAuthentication: msk_1.ClientAuthentication.saslTls({
iam: true,
certificateAuthorities: [certificateAuthority],
}),
kafkaClientLogLevel: msk_1.KafkaClientLogLevel.DEBUG,
});
/// !show
kafkaApi.setAcl('acl', {
resourceType: msk_1.AclResourceTypes.TOPIC,
resourceName: 'topic-1',
resourcePatternType: msk_1.ResourcePatternTypes.LITERAL,
principal: 'User:Cn=MyUser',
host: '*',
operation: msk_1.AclOperationTypes.CREATE,
permissionType: msk_1.AclPermissionTypes.ALLOW,
}, cdk.RemovalPolicy.DESTROY, msk_1.Authentication.MTLS);
/// !hide
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtYXBpLXNldC1hY2wubGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0cmVhbWluZy9leGFtcGxlcy9rYWZrYS1hcGktc2V0LWFjbC5saXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBbUM7QUFDbkMsaURBQXlEO0FBQ3pELG9DQUFzTDtBQUN0TCxvREFBZ0Q7QUFDaEQsdURBQThEO0FBQzlELHVFQUF3RDtBQUd4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFFdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0RBQXNELEVBQUUsSUFBSSxDQUFDLENBQUM7QUFHcEYsSUFBSSxvQkFBb0IsR0FBRyxpQ0FBb0IsQ0FBQywyQkFBMkIsQ0FDekUsS0FBSyxFQUFFLHNCQUFzQixFQUM3QixzRUFBc0UsQ0FDdkUsQ0FBQztBQUVGLElBQUksTUFBTSxHQUFHLDJCQUFNLENBQUMscUJBQXFCLENBQ3ZDLEtBQUssRUFBRSxRQUFRLEVBQUUsdUVBQXVFLENBQ3pGLENBQUM7QUFFRixJQUFJLEdBQUcsR0FBRyxhQUFHLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUM1QyxLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLFlBQVksRUFBRSxhQUFhO0lBQzNCLGlCQUFpQixFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMvQyxlQUFlLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQztJQUN4RCxnQkFBZ0IsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDO0NBQ3hELENBQUMsQ0FBQztBQUdILE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO0lBQy9DLEdBQUcsRUFBRSxHQUFHO0lBQ1IsVUFBVSxFQUFFLG1GQUFtRjtJQUMvRixXQUFXLEVBQUUsb0JBQWMsQ0FBQyxXQUFXO0lBQ3ZDLG1CQUFtQixFQUFFLHVCQUFhLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixDQUFDO0lBQ3RHLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsb0JBQW9CLEVBQUUsMEJBQW9CLENBQUMsT0FBTyxDQUFDO1FBQ2pELEdBQUcsRUFBRSxJQUFJO1FBQ1Qsc0JBQXNCLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztLQUMvQyxDQUFFO0lBQ0gsbUJBQW1CLEVBQUUseUJBQW1CLENBQUMsS0FBSztDQUMvQyxDQUFDLENBQUM7QUFHSCxTQUFTO0FBQ1QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ25CO0lBQ0UsWUFBWSxFQUFFLHNCQUFnQixDQUFDLEtBQUs7SUFDcEMsWUFBWSxFQUFFLFNBQVM7SUFDdkIsbUJBQW1CLEVBQUUsMEJBQW9CLENBQUMsT0FBTztJQUNqRCxTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLElBQUksRUFBRSxHQUFHO0lBQ1QsU0FBUyxFQUFFLHVCQUFpQixDQUFDLE1BQU07SUFDbkMsY0FBYyxFQUFFLHdCQUFrQixDQUFDLEtBQUs7Q0FDekMsRUFDRCxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFDekIsb0JBQWMsQ0FBQyxJQUFJLENBQ3BCLENBQUM7QUFDRixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXAsIFZwYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgQWNsT3BlcmF0aW9uVHlwZXMsIEFjbFBlcm1pc3Npb25UeXBlcywgQWNsUmVzb3VyY2VUeXBlcywgQ2xpZW50QXV0aGVudGljYXRpb24sIEthZmthQ2xpZW50TG9nTGV2ZWwsIE1za0NsdXN0ZXJUeXBlLCBSZXNvdXJjZVBhdHRlcm5UeXBlcywgQXV0aGVudGljYXRpb24gfSBmcm9tICcuLi9saWIvbXNrJztcbmltcG9ydCB7IEthZmthQXBpIH0gZnJvbSAnLi4vbGliL21zay9rYWZrYS1hcGknO1xuaW1wb3J0IHsgQ2VydGlmaWNhdGVBdXRob3JpdHkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYWNtcGNhJztcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5cblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcblxuY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgJ01za1Byb3Zpc2lvbmVkRHNmJyk7XG5cbnN0YWNrLm5vZGUuc2V0Q29udGV4dCgnQGRhdGEtc29sdXRpb25zLWZyYW1ld29yay1vbi1hd3MvcmVtb3ZlRGF0YU9uRGVzdHJveScsIHRydWUpO1xuXG5cbmxldCBjZXJ0aWZpY2F0ZUF1dGhvcml0eSA9IENlcnRpZmljYXRlQXV0aG9yaXR5LmZyb21DZXJ0aWZpY2F0ZUF1dGhvcml0eUFybihcbiAgc3RhY2ssICdjZXJ0aWZpY2F0ZUF1dGhvcml0eScsXG4gICdhcm46YXdzOmFjbS1wY2E6ZXUtd2VzdC0xOjEyMzQ1Njc4OTEyOmNlcnRpZmljYXRlLWF1dGhvcml0eS9kdW1teS1jYSdcbik7XG5cbmxldCBzZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKFxuICBzdGFjaywgJ3NlY3JldCcsICdhcm46YXdzOnNlY3JldHNtYW5hZ2VyOmV1LXdlc3QtMToxMjM0NTY3ODkxMjpzZWNyZXQ6ZHNmL21za0NlcnQtZHVtbXknXG4pO1xuXG5sZXQgdnBjID0gVnBjLmZyb21WcGNBdHRyaWJ1dGVzKHN0YWNrLCAndnBjJywge1xuICB2cGNJZDogJ3ZwYy0xMTExMTExMTExJyxcbiAgdnBjQ2lkckJsb2NrOiAnMTAuMC4wLjAvMTYnLFxuICBhdmFpbGFiaWxpdHlab25lczogWydldS13ZXN0LTFhJywgJ2V1LXdlc3QtMWInXSxcbiAgcHVibGljU3VibmV0SWRzOiBbJ3N1Ym5ldC0xMTExMTExMTEnLCAnc3VibmV0LTExMTExMTExJ10sXG4gIHByaXZhdGVTdWJuZXRJZHM6IFsnc3VibmV0LTExMTExMTExJywgJ3N1Ym5ldC0xMTExMTExJ10sXG59KTtcblxuXG5jb25zdCBrYWZrYUFwaSA9IG5ldyBLYWZrYUFwaShzdGFjaywgJ2thZmthQXBpJywge1xuICB2cGM6IHZwYyxcbiAgY2x1c3RlckFybjogJ2Fybjphd3M6a2Fma2E6ZXUtd2VzdC0xOjEyMzQ1Njc4OTEyOmNsdXN0ZXIvYnlvLW1zay9kdW1teS01Y2YzLTQyZDUtYWVjZS1kdW1tbXktMicsXG4gIGNsdXN0ZXJUeXBlOiBNc2tDbHVzdGVyVHlwZS5QUk9WSVNJT05FRCxcbiAgYnJva2VyU2VjdXJpdHlHcm91cDogU2VjdXJpdHlHcm91cC5mcm9tU2VjdXJpdHlHcm91cElkKHN0YWNrLCAnYnJva2VyU2VjdXJpdHlHcm91cCcsICdzZy05ODIzNzQxMmhzYScpLFxuICBjZXJ0ZmljYXRlU2VjcmV0OiBzZWNyZXQsXG4gIGNsaWVudEF1dGhlbnRpY2F0aW9uOiBDbGllbnRBdXRoZW50aWNhdGlvbi5zYXNsVGxzKHtcbiAgICBpYW06IHRydWUsXG4gICAgY2VydGlmaWNhdGVBdXRob3JpdGllczogW2NlcnRpZmljYXRlQXV0aG9yaXR5XSxcbiAgfSwpLFxuICBrYWZrYUNsaWVudExvZ0xldmVsOiBLYWZrYUNsaWVudExvZ0xldmVsLkRFQlVHLFxufSk7XG5cblxuLy8vICFzaG93XG5rYWZrYUFwaS5zZXRBY2woJ2FjbCcsIFxuICB7XG4gICAgcmVzb3VyY2VUeXBlOiBBY2xSZXNvdXJjZVR5cGVzLlRPUElDLFxuICAgIHJlc291cmNlTmFtZTogJ3RvcGljLTEnLFxuICAgIHJlc291cmNlUGF0dGVyblR5cGU6IFJlc291cmNlUGF0dGVyblR5cGVzLkxJVEVSQUwsXG4gICAgcHJpbmNpcGFsOiAnVXNlcjpDbj1NeVVzZXInLFxuICAgIGhvc3Q6ICcqJyxcbiAgICBvcGVyYXRpb246IEFjbE9wZXJhdGlvblR5cGVzLkNSRUFURSxcbiAgICBwZXJtaXNzaW9uVHlwZTogQWNsUGVybWlzc2lvblR5cGVzLkFMTE9XLFxuICB9LFxuICBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICBBdXRoZW50aWNhdGlvbi5NVExTXG4pO1xuLy8vICFoaWRlXG4iXX0=