Help us understand the problem. What is going on with this article?

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

ネットワーク関連の設定メモ。
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ロールして使用。

ryokwkm
エンジニアをやめて俳優として生きていこうとしているダメ人間 ちょっと中二っぽいのが特徴
http://ryokwkm.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした