@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
33 lines • 4.59 kB
JavaScript
;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const dsf = require("../../index");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
class ExampleVpcDataZoneMskEnvironmentAuthorizerStack extends cdk.Stack {
constructor(scope, id) {
super(scope, id);
/// !show
const permissionBoundaryPolicy = new aws_iam_1.ManagedPolicy(this, 'PermissionBoundaryPolicy', {
statements: [
// example of other permissions needed by the consumer
new aws_iam_1.PolicyStatement({
effect: aws_iam_1.Effect.ALLOW,
actions: ['s3:*'],
resources: ['*'],
}),
// permissions needed to consume MSK topics and granted by the Authorizer
dsf.governance.DataZoneMskEnvironmentAuthorizer.PERMISSIONS_BOUNDARY_STATEMENTS
],
});
new aws_iam_1.Role(this, 'ConsumerRole', {
assumedBy: new aws_iam_1.ServicePrincipal('lambda.amazonaws.com'),
permissionsBoundary: permissionBoundaryPolicy,
});
/// !hide
}
}
const app = new cdk.App();
new ExampleVpcDataZoneMskEnvironmentAuthorizerStack(app, 'ExampleVpcDataZoneMskEnvironmentAuthorizerStack');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXpvbmUtbXNrLWVudmlyb25tZW50LWF1dGhvcml6emVyLXBlcm1pc3Npb25zLWJvdW5kYXJ5LmxpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nb3Zlcm5hbmNlL2V4YW1wbGVzL2RhdGF6b25lLW1zay1lbnZpcm9ubWVudC1hdXRob3Jpenplci1wZXJtaXNzaW9ucy1ib3VuZGFyeS5saXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7O0FBRXRDLG1DQUFtQztBQUVuQyxtQ0FBbUM7QUFDbkMsaURBQXFHO0FBR3JHLE1BQU0sK0NBQWdELFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDckUsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixTQUFTO1FBRVQsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFO1lBQ25GLFVBQVUsRUFBRTtnQkFDVixzREFBc0Q7Z0JBQ3RELElBQUkseUJBQWUsQ0FBQztvQkFDbEIsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztvQkFDcEIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO29CQUNqQixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUJBQ2pCLENBQUM7Z0JBQ0YseUVBQXlFO2dCQUN6RSxHQUFHLENBQUMsVUFBVSxDQUFDLGdDQUFnQyxDQUFDLCtCQUErQjthQUNoRjtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksY0FBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDN0IsU0FBUyxFQUFFLElBQUksMEJBQWdCLENBQUMsc0JBQXNCLENBQUM7WUFDdkQsbUJBQW1CLEVBQUUsd0JBQXdCO1NBQzlDLENBQUMsQ0FBQTtRQUNGLFNBQVM7SUFFWCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLCtDQUErQyxDQUFDLEdBQUcsRUFBRSxpREFBaUQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBkc2YgZnJvbSAnLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgRWZmZWN0LCBNYW5hZ2VkUG9saWN5LCBQb2xpY3lTdGF0ZW1lbnQsIFJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcblxuXG5jbGFzcyBFeGFtcGxlVnBjRGF0YVpvbmVNc2tFbnZpcm9ubWVudEF1dGhvcml6ZXJTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8vICFzaG93XG5cbiAgICBjb25zdCBwZXJtaXNzaW9uQm91bmRhcnlQb2xpY3kgPSBuZXcgTWFuYWdlZFBvbGljeSh0aGlzLCAnUGVybWlzc2lvbkJvdW5kYXJ5UG9saWN5Jywge1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAvLyBleGFtcGxlIG9mIG90aGVyIHBlcm1pc3Npb25zIG5lZWRlZCBieSB0aGUgY29uc3VtZXJcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydzMzoqJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICAgIC8vIHBlcm1pc3Npb25zIG5lZWRlZCB0byBjb25zdW1lIE1TSyB0b3BpY3MgYW5kIGdyYW50ZWQgYnkgdGhlIEF1dGhvcml6ZXJcbiAgICAgICAgZHNmLmdvdmVybmFuY2UuRGF0YVpvbmVNc2tFbnZpcm9ubWVudEF1dGhvcml6ZXIuUEVSTUlTU0lPTlNfQk9VTkRBUllfU1RBVEVNRU5UU1xuICAgICAgXSxcbiAgICB9KVxuXG4gICAgbmV3IFJvbGUodGhpcywgJ0NvbnN1bWVyUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBwZXJtaXNzaW9uc0JvdW5kYXJ5OiBwZXJtaXNzaW9uQm91bmRhcnlQb2xpY3ksXG4gICAgfSlcbiAgICAvLy8gIWhpZGVcbiAgICBcbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xubmV3IEV4YW1wbGVWcGNEYXRhWm9uZU1za0Vudmlyb25tZW50QXV0aG9yaXplclN0YWNrKGFwcCwgJ0V4YW1wbGVWcGNEYXRhWm9uZU1za0Vudmlyb25tZW50QXV0aG9yaXplclN0YWNrJyk7Il19