JSPM

@alma-cdk/aws-interface-endpoints

0.0.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 9
  • Score
    100M100P100Q53439F
  • License Apache-2.0

aws-interface-endpoints

Package Exports

  • @alma-cdk/aws-interface-endpoints
  • @alma-cdk/aws-interface-endpoints/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@alma-cdk/aws-interface-endpoints) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme



Alma CDK Domain

npm i -D @alma-cdk/aws-interface-endpoints

L3 construct helping with PrivateLink-powered VPC Interface Endpoints for AWS Services.



🚧   Project Stability

experimental

This construct is still versioned with v0 major version and breaking changes might be introduced if necessary (without a major version bump), though we aim to keep the API as stable as possible (even within v0 development). We aim to publish v1.0.0 soon and after that breaking changes will be introduced via major version bumps.


Getting Started

Endpoint open to whole isolated subnet

import { AwsInterfaceEndpoints } from '@alma-cdk/aws-interface-endpoints';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
const vpc = new ec2.Vpc();

new AwsInterfaceEndpoints(this, 'EcrInterfaceEndpoint', {
  vpc,
  services: [
    { id: 'EcrDocker', ec2.InterfaceVpcEndpointAwsService.ECR_DOCKER },
  ],
});

Session Manager connection endpoints

import { AwsInterfaceEndpoints } from '@alma-cdk/aws-interface-endpoints';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
const vpc = new ec2.Vpc();

new AwsInterfaceEndpoints(this, 'SessionManagerInterfaceEndpoint', {
  vpc,
  services: AwsInterfaceEndpoints.SessionManagerConnect,
});

Explictly opened endpoints

  1. In your VPC creation stack
import { AwsInterfaceEndpoints } from '@alma-cdk/aws-interface-endpoints';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
const vpc = new ec2.Vpc();

new AwsInterfaceEndpoints(this, 'EcrInterfaceEndpoint', {
  vpc,
  open: false,
  services: [
    { id: 'EcrDocker', ec2.InterfaceVpcEndpointAwsService.ECR_DOCKER },
  ],
});
  1. In some other stack (maybe on a completely different CDK application):
import { AwsInterfaceEndpoints } from '@alma-cdk/aws-interface-endpoints';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
define instance: ec2.Instance;

const endpoints = AwsInterfaceEndpoints.fromAttributes(this, 'EcrInterfaceEndpoint', {
  services: [
    { id: 'EcrDocker', ec2.InterfaceVpcEndpointAwsService.ECR_DOCKER },
  ],
});

endpoints.allowDefaultPromFrom(instance);

https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html

https://aws.amazon.com/privatelink/pricing/

https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html