integ/lib/ssm-policy-aspect.ts (13 lines of code) (raw):
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
import * as cdk from 'aws-cdk-lib';
import { AutoScalingGroup } from 'aws-cdk-lib/aws-autoscaling';
import { Instance } from 'aws-cdk-lib/aws-ec2';
import { ManagedPolicy } from 'aws-cdk-lib/aws-iam';
import { IConstruct } from 'constructs';
export class SSMInstancePolicyAspect implements cdk.IAspect {
private static readonly SSM_POLICY = ManagedPolicy.fromAwsManagedPolicyName('AmazonSSMManagedInstanceCore');
public visit(node: IConstruct): void {
if (node instanceof Instance || node instanceof AutoScalingGroup) {
node.role.addManagedPolicy(SSMInstancePolicyAspect.SSM_POLICY);
}
}
}