- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是拥有一个 Cloud Formation 模板,它不仅可以自动创建具有 NAT 主机和堡垒主机的 VPC,而且可以将从 S3 拉取的 .NET 应用程序部署到 Elastic Beanstalk 中,该应用程序是负载均衡的,更重要的是只允许从我的办公室访问该应用程序,而不是整个互联网。看来,即使应用程序可能位于私有(private)子网中的 VPC 中,并且 ELB 位于公共(public)子网中,公共(public)子网上的网络 ACL 也无关紧要。如果我将公共(public)子网仅锁定到我的办公室,来自办公室外部的连接仍然可以进入 ELB 并访问应用程序。
似乎有效的方法是将安全组应用于 ELB,但我没有看到任何方法可以强制在“AWS::ElasticBeanstalk::Environment”对象内创建具有特定 SG 的特定 ELB。 ELB 和 ELB SG 由 beanstalk 自动创建,并且必须在 CF 运行后手动更改。我不想那样。我想要一种方法以自动方式在 CF 中创建所有内容,而无需事后手动步骤。是的,我已经在手动创建的 stakc 上尝试过 CloudFormer。不,它没有给我我想要的东西。
以下是我的 CF 模板的摘录:
"MyWebApp": {
"Type": "AWS::ElasticBeanstalk::Application",
"Properties": {
"ApplicationName" : "AlmDemoWebApp",
"Description": "MyWebapp"
}
},
"MyWebAppVersion": {
"Type": "AWS::ElasticBeanstalk::ApplicationVersion",
"Properties": {
"ApplicationName": {"Ref": "MyWebApp"},
"SourceBundle": {
"S3Bucket": "mywebapp",
"S3Key": {"Fn::Join" : ["", ["MyWebApp.", {"Ref":"Version"}, ".zip"]]}
}
}
},
"MyWebAppEnvironment" : {
"DependsOn" : ["MyWebApp", "MyWebAppVersion", "BastionSecurityGroup", "BeanstalkSecurityGroup", "VPC", "EBLoadBalancer", "EBLoadBalancerSecurityGroup", "PrivateSubnet", "PublicSubnet"],
"Type" : "AWS::ElasticBeanstalk::Environment",
"Properties" : {
"ApplicationName" : { "Ref" : "MyWebApp" },
"Description" : "MyWebApp Target Environment",
"SolutionStackName": "64bit Windows Server 2012 R2 running IIS 8.5",
"OptionSettings" : [
{"Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "SecurityGroups", "Value" : { "Ref" : "BeanstalkSecurityGroup" }},
{"Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "EC2KeyName", "Value" : { "Ref" : "InstanceKeyName" }},
{"Namespace" : "aws:ec2:vpc", "OptionName" : "VPCId", "Value" : { "Ref" : "VPC" }},
{"Namespace" : "aws:ec2:vpc", "OptionName" : "Subnets", "Value" : { "Ref" : "PrivateSubnet" }},
{"Namespace" : "aws:ec2:vpc", "OptionName" : "ELBSubnets", "Value" : { "Ref" : "PublicSubnet" }}],
"VersionLabel": {"Ref": "MyWebAppVersion"}
}
}
是否有一些神秘且记录不足的选项可以放入 AWS::ElasticBeanstalk::Environment -> Properties -> OptionSettings 中,该选项将强制 Elastic Beanstalk 使用先前在 CF 模板中配置的特定 ELB(“EBLoadBalancer”) ") 而不是自动创建一个随机名称?将入口规则应用于“BeanstalkSecurityGroup”似乎没有帮助。显然,SG 规则必须在 ELB 上才能真正发挥作用。
最佳答案
听起来您需要为 Elastic Beanstalk 堆栈创建一个内部 ELB。为此,请创建如下属性。
"ELBScheme":{
"Type":"String",
"AllowedValues":[
"internal"
],
"Default":"internal",
"Description":"Internal load balancer in VPC so that your Elastic Beanstalk application cannot be accessed from outside your VPC."
}
并将其引用为 AWS::ElasticBeanstalk::Environment“MyWebAppEnvironment”中的命名空间
{
"Namespace":"aws:ec2:vpc",
"OptionName":"ELBScheme",
"Value":"internal"
}
关于amazon-web-services - 如何在 Elastic Beanstalk Cloud Formation 脚本中强制进行 ELB 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764985/
我是一名优秀的程序员,十分优秀!