cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
24 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.allowEc2InstanceDeleteByOwner = void 0;
const __1 = require("..");
/**
* Allows stopping EC2 instance only for the user who started them
*
* @param tag The tag name, where the user information will be stored - default: `Owner`
*/
function allowEc2InstanceDeleteByOwner(tag) {
const tagName = tag ?? 'Owner';
return [
new __1.Statement.Ec2()
.allow()
.toStartInstances()
.ifAwsRequestTag(tagName, '${aws:username}'),
new __1.Statement.Ec2()
.allow()
.toStopInstances()
.ifResourceTag(tagName, '${aws:username}'),
];
}
exports.allowEc2InstanceDeleteByOwner = allowEc2InstanceDeleteByOwner;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb3dFYzJJbnN0YW5jZURlbGV0ZUJ5T3duZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbGxvd0VjMkluc3RhbmNlRGVsZXRlQnlPd25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQkFBK0I7QUFFL0I7Ozs7R0FJRztBQUVILFNBQWdCLDZCQUE2QixDQUFDLEdBQVk7SUFDeEQsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLE9BQU8sQ0FBQztJQUMvQixPQUFPO1FBQ0wsSUFBSSxhQUFTLENBQUMsR0FBRyxFQUFFO2FBQ2hCLEtBQUssRUFBRTthQUNQLGdCQUFnQixFQUFFO2FBQ2xCLGVBQWUsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUM7UUFDOUMsSUFBSSxhQUFTLENBQUMsR0FBRyxFQUFFO2FBQ2hCLEtBQUssRUFBRTthQUNQLGVBQWUsRUFBRTthQUNqQixhQUFhLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDO0tBQzdDLENBQUM7QUFDSixDQUFDO0FBWkQsc0VBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZW1lbnQgfSBmcm9tICcuLic7XG5cbi8qKlxuICogQWxsb3dzIHN0b3BwaW5nIEVDMiBpbnN0YW5jZSBvbmx5IGZvciB0aGUgdXNlciB3aG8gc3RhcnRlZCB0aGVtXG4gKlxuICogQHBhcmFtIHRhZyBUaGUgdGFnIG5hbWUsIHdoZXJlIHRoZSB1c2VyIGluZm9ybWF0aW9uIHdpbGwgYmUgc3RvcmVkIC0gZGVmYXVsdDogYE93bmVyYFxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd0VjMkluc3RhbmNlRGVsZXRlQnlPd25lcih0YWc/OiBzdHJpbmcpIHtcbiAgY29uc3QgdGFnTmFtZSA9IHRhZyA/PyAnT3duZXInO1xuICByZXR1cm4gW1xuICAgIG5ldyBTdGF0ZW1lbnQuRWMyKClcbiAgICAgIC5hbGxvdygpXG4gICAgICAudG9TdGFydEluc3RhbmNlcygpXG4gICAgICAuaWZBd3NSZXF1ZXN0VGFnKHRhZ05hbWUsICcke2F3czp1c2VybmFtZX0nKSxcbiAgICBuZXcgU3RhdGVtZW50LkVjMigpXG4gICAgICAuYWxsb3coKVxuICAgICAgLnRvU3RvcEluc3RhbmNlcygpXG4gICAgICAuaWZSZXNvdXJjZVRhZyh0YWdOYW1lLCAnJHthd3M6dXNlcm5hbWV9JyksXG4gIF07XG59XG4iXX0=