UNPKG

cdk-emrserverless-with-delta-lake

Version:
63 lines (62 loc) 3.33 kB
import * as ec2 from 'aws-cdk-lib/aws-ec2'; import { Construct } from 'constructs'; /** * Interface for engine security group of EMR Studio */ export interface EmrStudioEngineSecurityGroupProps { /** * The VPC in which to create the engine security group for EMR Studio. * * @default - default VPC in an AWS account. */ readonly vpc: ec2.IVpc; } /** * Created an engine security group for EMR notebooks. * * For detail, plrease refer to [Engine security group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-security-groups.html#emr-studio-security-group-instructions). * * ```ts * const workSpaceSecurityGroup = new EmrStudioWorkspaceSecurityGroup(this, 'Workspace', { vpc: baseVpc }); * const engineSecurityGroup = new EmrStudioEngineSecurityGroup(this, 'Engine', { vpc: baseVpc }); * workSpaceSecurityGroup.entity.connections.allowTo(engineSecurityGroup.entity, ec2.Port.tcp(18888), 'Allow traffic to any resources in the Engine security group for EMR Studio.'); * workSpaceSecurityGroup.entity.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443), 'Allow traffic to the internet to link publicly hosted Git repositories to Workspaces.'); * ``` */ export declare class EmrStudioEngineSecurityGroup extends Construct { /** * The representative of the security group as the EMR Studio engine security group. */ readonly entity: ec2.SecurityGroup; constructor(scope: Construct, name: string, props: EmrStudioEngineSecurityGroupProps); } /** * Interface for workspace security group of EMR Studio */ export interface EmrStudioWorkspaceSecurityGroupProps { /** * The VPC in which to create workspace security group for EMR Studio. * * @default - default VPC in an AWS account. */ readonly vpc: ec2.IVpc; } /** * Created a workspace security group for EMR Studio. * * For detail, plrease refer to [Workspace security group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-security-groups.html#emr-studio-security-group-instructions). * * ```ts * const workSpaceSecurityGroup = new EmrStudioWorkspaceSecurityGroup(this, 'Workspace', { vpc: baseVpc }); * const engineSecurityGroup = new EmrStudioEngineSecurityGroup(this, 'Engine', { vpc: baseVpc }); * workSpaceSecurityGroup.entity.connections.allowTo(engineSecurityGroup.entity, ec2.Port.tcp(18888), 'Allow traffic to any resources in the Engine security group for EMR Studio.'); * workSpaceSecurityGroup.entity.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443), 'Allow traffic to the internet to link publicly hosted Git repositories to Workspaces.'); * ``` */ export declare class EmrStudioWorkspaceSecurityGroup extends Construct { /** * The representative of the security group as the EMR Studio workspace security group. */ readonly entity: ec2.SecurityGroup; constructor(scope: Construct, name: string, props: EmrStudioWorkspaceSecurityGroupProps); }