沢山のスマホサービス環境を カジュアルにセキュアに運用する

41
沢山のスマホサービス環境を カジュアルにセキュアに運用する Dec. 21, 2012 大井宏友 株式会社リクルートホールディングス メディアテクノロジーラボ
  • Upload

    -
  • Category

    Documents

  • view

    1.606
  • download

    5

Transcript of 沢山のスマホサービス環境を カジュアルにセキュアに運用する

Page 1: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

沢山のスマホサービス環境をカジュアルにセキュアに運用する

Dec. 21, 2012大井宏友

株式会社リクルートホールディングス メディアテクノロジーラボ

Page 2: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

大井宏友 Hirotomo OiTwitter: @hiroohi

株式会社リクルートホールディングスメディアテクノロジーラボ

チーフアーキテクト/ Ambrotype プロデューサー

2007~メディアテクノロジーラボにて、サービス企画開発運営(Recruit Web Services/演劇ライフ)、インフラ環境に携わる。

好きなAWSは、RDS。

自己紹介

Page 3: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

リクルートGの実証実験機関http://mtl.recruit.co.jp

Page 4: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

R&D

新規事業開発事業化

Page 5: 沢山のスマホサービス環境を カジュアルにセキュアに運用する
Page 6: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

MTLのスマートフォンアプリ

Page 7: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

cameran.in

Page 8: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

ambrotype.com

Page 9: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

(C)toC向けの、

スマートフォン向け

ソーシャルなんとか

グローバルな

サービスを

速く沢山生み出し改善しながら

提供しています。

Page 10: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

各サービス毎にそれぞれ数名のチーム

Page 11: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

各サービス毎にそれぞれ数名のチーム

Page 12: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

カジュアルにセキュアに運用するために

Page 13: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

カジュアルにセキュア=

アプリエンジニアでも安全に

Page 14: 沢山のスマホサービス環境を カジュアルにセキュアに運用する
Page 15: 沢山のスマホサービス環境を カジュアルにセキュアに運用する
Page 16: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

全て一つのアカウントは厳しい×

Page 17: 沢山のスマホサービス環境を カジュアルにセキュアに運用する
Page 18: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

各サービス毎にAWSアカウント独自運用

Page 19: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

basic archtecture

http/https

ssh

Availability Zone

Availability Zone

Page 20: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

basic archtecture

http/https

ssh

Availability Zone

Availability Zone

EC2(web) ≧1sshはACLからのみAutoScale

Page 21: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

basic archtecture

http/https

ssh

Availability Zone

Availability Zone

EC2(web) ≧1sshはACLからのみAutoScale

ELBhttp/httpsのみ1台でも設置

Page 22: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

basic archtecture

http/https

ssh

Availability Zone

Availability Zone

EC2(web) ≧1sshはACLからのみAutoScale

EC2(ACL)sshの踏み台操作ログ取得

ELBhttp/httpsのみ1台でも設置

Page 23: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

各サービス毎にAWSアカウント独自運用

Page 24: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

アプリエンジニアはNW苦手

Page 25: 沢山のスマホサービス環境を カジュアルにセキュアに運用する
Page 26: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

やりがち…

Page 27: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

ACLサーバで制限•一日一回、SecurityGroupのsshを消去するスクリプトを実行

•自分の接続元IPを簡単にSecurityGroupに登録する画面を設置

•この画面はSSLクライアント証明書でアクセス制限

Page 28: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

IP登録画面(スマホOK)

Page 29: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

スマホでカジュアルにメンテ

Page 30: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

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), ) ) ) )); } } }}

Page 31: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

WEB用AMIの制限•iptablesやhosts.allow/denyでインターネットからのsshを拒否。

•Security Groupを設定されちゃっても大丈夫•sshはACLサーバからのみ許可

Page 32: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

WEB用AMIの制限•iptablesやhosts.allow/denyでインターネットからのsshを拒否。

•Security Groupを設定されちゃっても大丈夫•sshはACLサーバからのみ許可×

Page 33: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

共通AMIを各アカウントに配布

Page 34: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

共通AMIを各アカウントに配布

Page 35: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

basic archtecture

http/https

ssh

Availability Zone

Availability Zone

EC2(web) ≧1sshはACLからのみAutoScale

EC2(ACL)sshの踏み台操作ログ取得

ELBhttp/httpsのみ1台でも設置

Page 36: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

各サービス毎に自由に構成

Page 37: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

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

Page 38: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

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

Page 39: 沢山のスマホサービス環境を カジュアルにセキュアに運用する
Page 40: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

現在60アカウント位カジュアルに稼働中

Page 41: 沢山のスマホサービス環境を カジュアルにセキュアに運用する

ありがとうございました

[PR]