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
JavaScript
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==
;