沢山のスマホサービス環境を カジュアルにセキュアに運用する
Transcript of 沢山のスマホサービス環境を カジュアルにセキュアに運用する
沢山のスマホサービス環境をカジュアルにセキュアに運用する
Dec. 21, 2012大井宏友
株式会社リクルートホールディングス メディアテクノロジーラボ
大井宏友 Hirotomo OiTwitter: @hiroohi
株式会社リクルートホールディングスメディアテクノロジーラボ
チーフアーキテクト/ Ambrotype プロデューサー
2007~メディアテクノロジーラボにて、サービス企画開発運営(Recruit Web Services/演劇ライフ)、インフラ環境に携わる。
好きなAWSは、RDS。
自己紹介
R&D
新規事業開発事業化
MTLのスマートフォンアプリ
cameran.in
ambrotype.com
(C)toC向けの、
スマートフォン向け
ソーシャルなんとか
グローバルな
サービスを
速く沢山生み出し改善しながら
提供しています。
各サービス毎にそれぞれ数名のチーム
各サービス毎にそれぞれ数名のチーム
カジュアルにセキュアに運用するために
カジュアルにセキュア=
アプリエンジニアでも安全に
全て一つのアカウントは厳しい×
各サービス毎にAWSアカウント独自運用
basic archtecture
http/https
ssh
Availability Zone
Availability Zone
basic archtecture
http/https
ssh
Availability Zone
Availability Zone
EC2(web) ≧1sshはACLからのみAutoScale
basic archtecture
http/https
ssh
Availability Zone
Availability Zone
EC2(web) ≧1sshはACLからのみAutoScale
ELBhttp/httpsのみ1台でも設置
basic archtecture
http/https
ssh
Availability Zone
Availability Zone
EC2(web) ≧1sshはACLからのみAutoScale
EC2(ACL)sshの踏み台操作ログ取得
ELBhttp/httpsのみ1台でも設置
各サービス毎にAWSアカウント独自運用
アプリエンジニアはNW苦手
やりがち…
ACLサーバで制限•一日一回、SecurityGroupのsshを消去するスクリプトを実行
•自分の接続元IPを簡単にSecurityGroupに登録する画面を設置
•この画面はSSLクライアント証明書でアクセス制限
IP登録画面(スマホOK)
スマホでカジュアルにメンテ
Remove from Security Group$ec2 = new AmazonEC2();$ec2->set_region($AWS_REGION);$response = $ec2->describe_security_groups(array('GroupName' => $groupName));$ip_rows = $response->body->securityGroupInfo->item->ipPermissions->to_array();$ipranges = array();foreach($ip_rows as $ip_row){ foreach($ip_row as $row){ if(!($row["ipProtocol"] == "tcp" && $row["fromPort"] == "22")){continue;} foreach($row["ipRanges"] as $iprange){ foreach($iprange as $range){ if(is_array($range)){ $ipvalue = $range['cidrIp']; }else{ $ipvalue = $range; } $response = $ec2->revoke_security_group_ingress(array( 'GroupName' => $groupName, 'IpPermissions' => array( array( 'IpProtocol' => 'tcp', 'FromPort' => '22', 'ToPort' => '22', 'IpRanges' => array( array('CidrIp' => $ipvalue), ) ) ) )); } } }}
WEB用AMIの制限•iptablesやhosts.allow/denyでインターネットからのsshを拒否。
•Security Groupを設定されちゃっても大丈夫•sshはACLサーバからのみ許可
WEB用AMIの制限•iptablesやhosts.allow/denyでインターネットからのsshを拒否。
•Security Groupを設定されちゃっても大丈夫•sshはACLサーバからのみ許可×
共通AMIを各アカウントに配布
共通AMIを各アカウントに配布
basic archtecture
http/https
ssh
Availability Zone
Availability Zone
EC2(web) ≧1sshはACLからのみAutoScale
EC2(ACL)sshの踏み台操作ログ取得
ELBhttp/httpsのみ1台でも設置
各サービス毎に自由に構成
ex)Ambrotype(2012.6)
EC2
Route 53
ELB
RDS RDS Standby
App
EC2EC2Auto scaling Group
AZ1 AZ2
ap-northeast-1
Web/App/Crawler
Web/App/Crawler
Crawler
ex)Ambrotype(2012.12)
EC2
Route 53
ELB
RDS RDS Standby
App
EC2EC2Auto scaling Group
AZ1 AZ2
ap-northeast-1
Web/App/Crawler
Web/App/Crawler
Crawler
EC2
Face
S3
CloudFront
現在60アカウント位カジュアルに稼働中
ありがとうございました
[PR]