ElasticBeanstalk

elasticbeanstalk keyを指定すると22番ポートがanyに解放されるのの対策

SSHする必要性

そもそも elasticbeanstalk で立ち上げるのに ssh する必要はないと思いますが、必要な方へ。

SSHキーを指定すると問答無用で22番ポートはanyに解放される

eb create-kパラメータ指定でもeb ssh でも eb deploy 時に .ebextensions で指定されててもanyに解放されてしまう。

eb ssh はセキュリティグループのルールに従うが・・

eb ssh の仕様にあるように「セキュリティグループで22番ポートにルールが指定されていればそのルールに従い、なければanyで解放する」という挙動も create 時にはなさそう。

.ebextensions とセキュリティグループの合わせ技で閉じる

下記ファイルでポートを閉じつつセキュリティグループで開けるという方法を取る。

.ebextentions/010-autoscaling.config
option_settings:
  aws:autoscaling:launchconfiguration:
    EC2KeyName: {key-name}
    # keyを指定すると自動で開かれてしまうインスタンスの22番ポートを閉じる
    SSHSourceRestriction: tcp, 22, 22, 127.0.0.1/32
    # 22番ポートはsecuritygroupで管理する
    SecurityGroups: {security-group-name}

参考

まとめ

sshしなくてもいいように開発しましょう。