有什么方法可以使用 AWS CDK 代码将安全组和 VPC 分配给我在 Elastic Beanstalk 中托管的 Web 应用程序
Is there any way that I can assign Security Group and VPC to my web application hosted in Elastic Beanstalk using AWS CDK code
我是 AWS CDK 的新手。
我使用 aws cdk (Typescript) 创建了 aws 代码管道,它创建了整个管道并将我的应用程序部署到 Elastic beanstalk,但问题是它没有为其分配任何 VPC 或安全组,因此使我的应用程序 public默认。
我希望我的应用程序只能通过我的公司网络访问,使用我们的 aws 帐户中已经可用的 VPC(假设 VPC 的名称是 "InternalPrivateVPC"),而不是 publicly。
所以我试图找到一种方法,使用 aws cdk 代码将已经可用的 VPC 和 SG 分配给我的应用程序,但找不到任何与 Elastic beanstalk 属性 或 class 相关的方法 class 这将允许我在代码中将 VPC 和 SG 分配给应用程序。
const appName = "SampleDotNetMVCWebApp";
const app = new elasticbeanstalk.CfnApplication(this, "EBApplication", {
applicationName: appName
});
const elbEnv = new elasticbeanstalk.CfnEnvironment(this, "Environment", {
environmentName: "SampleMVCEBEnvironment",
applicationName: appName,
solutionStackName: "64bit Windows Server 2012 R2 v2.5.0 running IIS 8.5"
});
这是整个代码库 - https://github.com/dhirajkhodade/CDKDotNetWebAppEbPipeline
和
这是创建 Elastic beanstalk 应用程序和环境的特定文件 - https://github.com/dhirajkhodade/CDKDotNetWebAppEbPipeline/blob/master/lib/cdk_dot_net_web_app_eb_pipeline-stack.ts
我相信您在创建CfnEnvironment
. Also refer this page时必须使用optionSettings
来提供VPC和子网ID,至于如何提供option_settings
。 CDK 在必要时遵从 CFN 属性。
你需要ec2vpc
general option setting
像这样的东西会起作用:
const elbEnv = new elasticbeanstalk.CfnEnvironment(this, "Environment", {
environmentName: "SampleMVCEBEnvironment",
applicationName: appName,
solutionStackName: "64bit Windows Server 2012 R2 v2.5.0 running IIS 8.5",
optionSettings: [
{
namespace: 'aws:ec2:vpc',
optionName: 'VPCId',
value: 'vpc-1234c'
},
{
namespace: 'aws:ec2:vpc',
optionName: 'Subnets',
value: 'subnet-1f234567'
},
{
namespace: 'aws:autoscaling:launchconfiguration',
optionName: 'SecurityGroups',
value: 'sg-7f12e34gd'
},
]
});
我是 AWS CDK 的新手。
我使用 aws cdk (Typescript) 创建了 aws 代码管道,它创建了整个管道并将我的应用程序部署到 Elastic beanstalk,但问题是它没有为其分配任何 VPC 或安全组,因此使我的应用程序 public默认。
我希望我的应用程序只能通过我的公司网络访问,使用我们的 aws 帐户中已经可用的 VPC(假设 VPC 的名称是 "InternalPrivateVPC"),而不是 publicly。
所以我试图找到一种方法,使用 aws cdk 代码将已经可用的 VPC 和 SG 分配给我的应用程序,但找不到任何与 Elastic beanstalk 属性 或 class 相关的方法 class 这将允许我在代码中将 VPC 和 SG 分配给应用程序。
const appName = "SampleDotNetMVCWebApp";
const app = new elasticbeanstalk.CfnApplication(this, "EBApplication", {
applicationName: appName
});
const elbEnv = new elasticbeanstalk.CfnEnvironment(this, "Environment", {
environmentName: "SampleMVCEBEnvironment",
applicationName: appName,
solutionStackName: "64bit Windows Server 2012 R2 v2.5.0 running IIS 8.5"
});
这是整个代码库 - https://github.com/dhirajkhodade/CDKDotNetWebAppEbPipeline 和 这是创建 Elastic beanstalk 应用程序和环境的特定文件 - https://github.com/dhirajkhodade/CDKDotNetWebAppEbPipeline/blob/master/lib/cdk_dot_net_web_app_eb_pipeline-stack.ts
我相信您在创建CfnEnvironment
. Also refer this page时必须使用optionSettings
来提供VPC和子网ID,至于如何提供option_settings
。 CDK 在必要时遵从 CFN 属性。
你需要ec2vpc
general option setting
像这样的东西会起作用:
const elbEnv = new elasticbeanstalk.CfnEnvironment(this, "Environment", {
environmentName: "SampleMVCEBEnvironment",
applicationName: appName,
solutionStackName: "64bit Windows Server 2012 R2 v2.5.0 running IIS 8.5",
optionSettings: [
{
namespace: 'aws:ec2:vpc',
optionName: 'VPCId',
value: 'vpc-1234c'
},
{
namespace: 'aws:ec2:vpc',
optionName: 'Subnets',
value: 'subnet-1f234567'
},
{
namespace: 'aws:autoscaling:launchconfiguration',
optionName: 'SecurityGroups',
value: 'sg-7f12e34gd'
},
]
});