18. AWS上に構築した典型的な3層Webシステム
Web Web Web Web
Private
Segment
(Web)
Public
Segment
Lo
g
Private
Segment
(DB)
Public Subnet (DMZ) Public Subnet (DMZ)
Private Subnet Private Subnet
Private Subnet Private Subnet
NAT NAT
操作ログ
リソース監視
通知
データ暗号化
権限管理
Availability Zone Availability Zone
18
42. 複数のサブネットでVPC内をセグメント化
Availability Zone Availability Zone
VPC A - 10.0.0.0/16
10.0.1.0/24 10.0.2.0/24
10.0.3.0/24 10.0.4.0/24
10.0.5.0/24 10.0.6.0/24
作成したVPCの内部に自由にサブ
ネットを作成可能
• アドレスレンジは設定後は変更
不可能
• VPCと同じように、将来の拡張
も考慮して設定する必要あり
42
43. EC2やAWSサービスの配置
Web Web Web Web
Lo
g
NAT NAT
Availability Zone Availability Zone
VPC A - 10.0.0.0/16
10.0.1.0/24 10.0.2.0/24
10.0.3.0/24 10.0.4.0/24
10.0.5.0/24 10.0.6.0/24
ELB
• ロードバランサー
• Internetからのリクエストを
Webサーバーに分散
NATサーバー
• WebサーバーがInternetに出
る際に経由するサーバー
Webサーバー
• ELB配下のWebサーバー
• アクセスリクエストはELBを経
由するため直接Internetからア
クセスできる必要はない
RDS
• DBサービス
• 直接インターネットからはアク
セスされない
43
44. ルーティングによるセグメント化
Web Web Web Web
Lo
g
NAT NAT
Availability Zone Availability Zone
VPC A - 10.0.0.0/16
Destination Target
10.0.0.0/16 local
0.0.0.0 Internet
Gateway
Route Table A
Internet Gateway
Destination Target
10.0.0.0/16 local
Route Table C
Destination Target
10.0.0.0/16 local
0.0.0.0 i-XXXXXX
(NAT)
Route Table B
ルーティングの設定
• トラフィックをコントロール
するためのルーティングテー
ブルをサブネットに追加
• Internet Gatewayにルーティ
ングされるものはPublic
Subnetに
• デフォルトゲートウェイに
NATを指定することで、
Private SubnetもNAT経由で
Internetにアクセス可能
• インターネットゲートウェイ
によるルーティングには
Elastic IPかPublic IPがインス
タンスにつけられている必要
がある
Public Subnet (DMZ) Public Subnet (DMZ)
Private Subnet Private Subnet
Private Subnet Private Subnet
44
45. セキュリティグループでサーバーを保護
Web Web Web Web
Private
Segment
(Web)
Public
Segment
Lo
g
Private
Segment
(DB)
Public Subnet (DMZ) Public Subnet (DMZ)
Private Subnet Private Subnet
Private Subnet Private Subnet
NAT NAT
Availability Zone Availability Zone
WebサーバーはELBからの
port80/443のみ接続可能
NATサーバーはWebサー
バーからのみ利用可能
DBにはWebサーバーからの
み接続可能
VPC A - 10.0.0.0/16 Internet Gateway
セキュリティグループ
• インスタントレベルでの操作
• ALLOWルールのみのサポート
• ステートフル
• 各セキュリティグループで最
大50ルールまで
• 必要なトラフィックのみ許可
し、極力どこからでもアクセ
スできるというルールは使わ
ない
45
46. ネットワークACLによるVPC内の制御
Web Web Web Web
Public Subnet (DMZ) Public Subnet (DMZ)
Private Subnet Private Subnet
Private Subnet Private Subnet
NAT NAT
Availability Zone Availability Zone
NACLはオプション的な利用
• サブネットレベルでの適用
• ALLOW および DENY
• ステートレス
• サブネット内の全てのインス
タンスに適用
• セカンドラインでの防御とし
て利用
Publicサブネット
からの直接的な
DBサブネットへ
のアクセスの拒否
VPC A - 10.0.0.0/16 Internet Gateway
46
47. ネットワークのセグメンテーションとアクセス制御の例
Web Web Web Web
Private
Segment
(Web)
Public
Segment
Lo
g
Private
Segment
(DB)
Public Subnet (DMZ) Public Subnet (DMZ)
Private Subnet Private Subnet
Private Subnet Private Subnet
NAT NAT
Availability Zone Availability Zone
47
56. 強度の強いパスワードポリシーの利用
AWSの管理コンソールにログインするために必要となるIAMユーザーのパスワードには以下のような
パスワードポリシーを持たせることが可能です。
• Minimum password length(パスワードの最小文字数)
• Require at least one uppercase letter(大文字英字の要求)
• Require at least one lowercase letter (小文字英字の要求)
• Require at least one number(数字を含めることの要求)
• Require at least one non-alphanumeric character (特殊文字の要求)
• Allow users to change their own password
(ユーザー自身によるパスワード変更の許可)
• Enable password expiration (パスワードの有効期限の設定)
• Password expiration period (in days)
• Prevent password reuse (パスワードの再利用の制限)
• Number of passwords to remember
• Password expiration requires administrator reset
(パスワードが期限切れになった場合管理者によるリセットの有無)
本ポリシーはAWSルートアカウントには適用されないので注意が必要です。
56
67. AWSのサーバーサイド暗号化(SSE)
AWS Storage Services
S3 Glacier Redshift RDS for
Oracle
RDS for
MS-SQL
HTTPS
アプリケーション アプリケーション
• S3, EBS and Redshift・・・サーバーサイド暗号化のオプションあり
• Glacier・・・全てのデータが標準で暗号化
• RDS for Oracle and Microsoft SQL・・・TDE(Transparent Data Encryption)機能で暗号化
EBS
67
88. 参考:AWS Configの利用
• AWSリソースのレポジトリ情報を取得し、リソースの設定履歴を監査、リ
ソース構成の変更を通知することができるフルマネージドサービス
• サポートリージョン:
• US West (Oregon), US West (Northern California) , US East (N.Virginia), EU
(Ireland), EU (Frankfurt), Asia Pacific (Sydney) ,Asia Pacific (Tokyo), Asia
Pacific (Singapore) , South America (Brazil)
• 対象サービス、2015年4月時点
• 作成・変更・削除オペレーション情報の取得
Amazon EC2
Instance, ENI...
Amazon EBS
Volumes
AWS CloudTrailAmazon VPC
VPC, Subnet...
88
89. AWSでは他にも様々なサービスのログが取得できます
Service Data Method
CloudTrail API Call Log S3
ELB Access Log S3
S3 Object access S3
Auto Scaling Event Logs CLI, Console, API
CloudFront Access logs, cookies S3
Glacier Retrieval jobs only SNS notifications
Redshift Connections/Event logs/status S3, CLI
RDS Service Events
Database log
CLI, Console, API, SNS
Console, CLI
ElastiCache Events SNS
OpsWorks Chef logs CLI
CloudFormation Event logs/status CLI, Console, API
Elastic Beanstalk Event logs/status CLI, Console, API
Data Pipeline Pipeline events
Task runner log
S3
SES Feedback Notification SNS notifications
SNS Messages sent SNS notifications
EMR Hadoop logs S3, Console, Master Node
89