LoginSignup
6
5

More than 5 years have passed since last update.

ElasticBeanstalkでELBセキュリティグループをカスタマイズする

Posted at

AWSのElasticBeanstalkで以下のような構成にしたかったのでebextensionsでやってみた。
ELBで80番と10051番ポートを転送するとデフォルトではELBのセキュリティグループ設定が全オープンになるので制限したかった。

eb_elb_custom.png

参照サイト

やってみたこと

.ebextensionsの設定

以下のように.ebextensionsを書いてできた。

  • .ebextensions/00_options.config
    • sg-XXX部分は任意のセキュリティグループのIDを指定
option_settings:                       
  aws:elb:listener:10051:
    ListenerProtocol: TCP
    InstanceProtocol: TCP
    InstancePort: 10051
  aws:elb:loadbalancer:
    SecurityGroups: 
      - sg-XXX
      - '`{ "Ref" : "loadbalancersg" }`'
    ManagedSecurityGroup: '`{ "Ref" : "loadbalancersg" }`'
  • .ebextensions/01_resources.config
    • vpc-XXX部分は任意のVPCのIDを指定
Resources:
  port10051SecurityGroupIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 10051
      FromPort: 10051
      SourceSecurityGroupName: { "Fn::GetAtt": ["AWSEBLoadBalancer", "SourceSecurityGroup.GroupName"] }
  loadbalancersg:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: custom ELB security group
      VpcId: vpc-XXX
      SecurityGroupIngress: []
      SecurityGroupEgress: []
  port10051ELBSecurityGroupIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]}
      IpProtocol: tcp
      ToPort: 10051
      FromPort: 10051
      SourceSecurityGroupName: default

ポイント

デフォルトでELBに紐づけられるAWSEBLoadBalancerSecurityGroupにSecurityGroupIngress : []などとして設定してもlistenしたポートが自動的に全オープンされてしまうので別のセキュリティグループを作って紐付ける。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5