LoginSignup
1
3

More than 3 years have passed since last update.

AWS移行 - ネットワーク関連でやったこと

Posted at

ネットワーク関連の設定メモ。
AWSになったことによる影響等を書いていきます。

セキュリティグループ設計

セキュリティグループはサーバー、ELB、RDS..ごとに設定し、そのセキュリティグループを許可するような設計になっています。
直接IPアドレスを記述するのは最小限になります。

※下記はイメージ
列が各リソース
行がセキュリティグループ名です
○が付いているところには、そのセキュリティグループの許可(インバウンド許可設定)されていることになります。
そのセキュリティグループに所属しているものも許可します。
たとえば下記の「prd-web01」というEC2は、「prd-app-web-sg」というセキュリティグループを許可していますが、
「prd-app-web-sg」の中身は「prd-front-main-sg」の80番を許可しています。
これは「prd-front-main-sg」が設定されている「prd-main-alb」からの80番アクセスを許可するという意味になります。

ELB prd-main-alb prd-admin-alb prd-jenkins-alb
prd-myoffice-maintenance-sg
prd-monitoring-sg
prd-front-main-sg
prd-front-admin-sg
prd-front-jenkins-sg
EC2 prd-web01 prd-admin01 prd-rent01 jenkins
prd-myoffice-maintenance-sg
prd-app-web-sg
prd-app-admin-sg
prd-app-rent-sg
prd-app-batch-sg
prd-app-jenkins-sg
RDS prd-rent-db prd-web-db
prd-data-rent-sg
prd-data-web-sg

次に各セキュリティグループで許可している内容です。
IPの記述は最小限になっています。

ELB
prd-myoffice-maintenance-sg 自社のIP
prd-monitoring-sg 監視サービスのIP
prd-front-main-sg 0.0.0.0/0 80/443番
::/0 80/443番
prd-front-admin-sg 0.0.0.0/0 80/443番
::/0 80/443番
prd-front-jenkins-sg 自社のIP 80/443番
EC2
prd-myoffice-maintenance-sg 同上
prd-app-web-sg prd-front-main-sg 80番
prd-app-admin-sg prd-front-admin-sg 80番
prd-app-rent-sg prd-front-main-sg 80番
prd-app-batch-sg prd-app-admin-sg 22番
prd-app-jenkins-sg prd-front-jenkins-sg 80番
RDS
prd-data-rent-sg (postgresql)
prd-app-rent-sg 5432番
prd-app-admin-sg 5432番
prd-data-web-sg (mysql)
prd-app-web-sg 3306番
prd-app-rent-sg 3306番
prd-app-admin-sg 3306番
prd-app-jenkins-sg 3306番

ELBが挟まったことによる影響

今までのロードバランサーではアクセス元IPが取得できていたが、ELBでは直接判別はできず、
headerのX-Forwarded-Forに格納される。
これによりアプリの改修や、Apache, Nginxに影響が出る。

Apache, Nginxでip制限をしている場合

Apacheでは以下のように設定

ApacheでIPを許可する場合,,X-Forwarded-Forを取得
    Order deny,Allow
    Deny from All
    Allow from env=allow_ip

    SetEnvIf X-Forwarded-For "xxx\.xxx\.xxx\.xxx" allow_ip
    SetEnvIf X-Forwarded-For "xxx\.xxx\.xxx\.xxx" allow_ip

Nginxの設定では以下の設定を追記する。

/nginx/nginx.conf,X-Forwarded-Forを取得
    set_real_ip_from xxx.xxx.xxx.xxx/xx; #許可したいip
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;

IAMの設計。スイッチロール

開発、ステージ、本番の3つのアカウントがあるが、
3つのアカウントそれぞれでIAMユーザを作成するのではなく、
一つのアカウントでIAMユーザを作成し、それぞれのアカウントではSwitchロールして使用。

1
3
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
1
3