UNPKG

aws-ddk-core

Version:

The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.

37 lines 4.14 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.SnsFactory = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdk = require("aws-cdk-lib"); const iam = require("aws-cdk-lib/aws-iam"); class SnsFactory { static secureSnsTopicPolicy(topic) { topic.addToResourcePolicy(new iam.PolicyStatement({ sid: "TopicOwnerOnlyAccess", effect: iam.Effect.ALLOW, principals: [new iam.AccountPrincipal(cdk.Stack.of(topic).account)], actions: [ "sns:AddPermission", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe", "sns:RemovePermission", "sns:Publish", ], resources: [topic.topicArn], })); topic.addToResourcePolicy(new iam.PolicyStatement({ sid: "HttpsOnly", effect: iam.Effect.DENY, principals: [new iam.AnyPrincipal()], actions: ["sns:Subscribe", "sns:Publish"], resources: [topic.topicArn], conditions: { Bool: { "aws:SecureTransport": false } }, })); } } exports.SnsFactory = SnsFactory; _a = JSII_RTTI_SYMBOL_1; SnsFactory[_a] = { fqn: "aws-ddk-core.SnsFactory", version: "1.4.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9zbnMtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUNuQywyQ0FBMkM7QUFHM0MsTUFBYSxVQUFVO0lBQ2QsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQWlCO1FBQ2xELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLEdBQUcsRUFBRSxzQkFBc0I7WUFDM0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRSxPQUFPLEVBQUU7Z0JBQ1AsbUJBQW1CO2dCQUNuQix3QkFBd0I7Z0JBQ3hCLHdCQUF3QjtnQkFDeEIsZUFBZTtnQkFDZixzQkFBc0I7Z0JBQ3RCLGFBQWE7YUFDZDtZQUNELFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDNUIsQ0FBQyxDQUNILENBQUM7UUFDRixLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixHQUFHLEVBQUUsV0FBVztZQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ3ZCLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUM7WUFDekMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUMzQixVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsRUFBRTtTQUN2RCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBNUJILGdDQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0ICogYXMgc25zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc25zXCI7XG5cbmV4cG9ydCBjbGFzcyBTbnNGYWN0b3J5IHtcbiAgcHVibGljIHN0YXRpYyBzZWN1cmVTbnNUb3BpY1BvbGljeSh0b3BpYzogc25zLklUb3BpYykge1xuICAgIHRvcGljLmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHNpZDogXCJUb3BpY093bmVyT25seUFjY2Vzc1wiLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLkFjY291bnRQcmluY2lwYWwoY2RrLlN0YWNrLm9mKHRvcGljKS5hY2NvdW50KV0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcInNuczpBZGRQZXJtaXNzaW9uXCIsXG4gICAgICAgICAgXCJzbnM6R2V0VG9waWNBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgXCJzbnM6U2V0VG9waWNBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgXCJzbnM6U3Vic2NyaWJlXCIsXG4gICAgICAgICAgXCJzbnM6UmVtb3ZlUGVybWlzc2lvblwiLFxuICAgICAgICAgIFwic25zOlB1Ymxpc2hcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdG9waWMudG9waWNBcm5dLFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0b3BpYy5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6IFwiSHR0cHNPbmx5XCIsXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5ERU5ZLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BbnlQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFtcInNuczpTdWJzY3JpYmVcIiwgXCJzbnM6UHVibGlzaFwiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdG9waWMudG9waWNBcm5dLFxuICAgICAgICBjb25kaXRpb25zOiB7IEJvb2w6IHsgXCJhd3M6U2VjdXJlVHJhbnNwb3J0XCI6IGZhbHNlIH0gfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==