Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@ryokwkm

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

More than 1 year has passed since last update.

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

3
Help us understand the problem. What is going on with this article?
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
ryokwkm
エンジニアをやめて俳優として生きていこうとしているダメ人間 ちょっと中二っぽいのが特徴

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?