Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Transfer for sftp 20181212

255 views

Published on

RecoChoku Tech Night #09

Published in: Engineering
  • Login to see the comments

  • Be the first to like this

Transfer for sftp 20181212

  1. 1. RecoChoku Tech Night #09 AWS Transfer for SFTPについて
  2. 2. 1. 自己紹介 2. 会社紹介 3. AWS Transfer for SFTPについて A g e n d a 2
  3. 3. • 野口 孝昭 @ntakaaki • カスタマーバリュー開発部インフラグループ • SREというかインフラ 兼 情シス • Re:Inventは今回初参加 • AWS歴 • ガッツリ触りだして2年位 • 自 己 紹 介 3
  4. 4. • 2002年1月 創業 • 2013年7月 マザーズ上場 • 2016年11月 非上場 → CCCグループ 株 式 会 社 フ ォ ト ク リ エ イ ト 4
  5. 5. AWS Transfer for SFTP
  6. 6. 6 AW S Tr a n s f e r f o r S F T P と は • S 3 が ス ト レ ー ジ に な って る マ ネ ー ジ ド な S F T P • 冗 長 化 ・ ス ケ ー ラ ビ リ テ ィ は AW S に お ま か せ • 数 ク リ ッ ク で S F T P サ ー バ ー が 立 ち 上 げ 可 能
  7. 7. • 写真の納品手段がFTP • 繁忙期だとひと月で1600万枚位納品されてくる • 5台のFTPサーバーとCIFSでマウントされたスト レージでさばいてる • 積もり積もって3ペタバイト、10億枚の写真 フ ォ ト ク リ エ イ ト と F T P 7
  8. 8. FTP周り結構辛い 8 回線の帯域が。。。 FTPサーバーが突然の死。。。 見込みを越えてくる納品量。。。 ストレージの空き容量がIOPSが。。。
  9. 9. そんな悩みをふっとばしてくれそう! Tr a n s f e r f o r S F T P な ら 9
  10. 10. 10 認 証 周 り •I A M か 独 自 認 証 か を 選 べ る •独 自 認 証 の 場 合 は A P I G a t e w a y •ド キ ュ メ ン ト に C l o u d F o r m a t i o n の テ ン プ レ ー ト が あ る •A P I G a t e w a y と L a m b d a を ディ プ ロ イ して く れ る
  11. 11. A P I G a t e w a y 11
  12. 12. • SFTP構築時に振られるserveridとusernameは API Gatewayのパス変数になる • SFTPクライアントがパスワードを送ってきた場 合はAPI GatewayからLambdaを呼び出す時に Passwordヘッダが追加される • パスワードがなければ 認証になる 12
  13. 13. L a m b d a 13 'use strict'; // GetUserConfig Lambda exports.handler = (event, context, callback) => { console.log("Event:", JSON.stringify(event)); var response; if (event.serverId == 's-myServerId' && event.username == 'MyUserName') { response = { Role: "arn:arn:aws:iam::000000000000:role/UserS3AccessRole", Policy: 'user-scope-down-policy', // Not required HomeDirectory: '/bucket/userHome' // Not required, defaults to '/' }; if (event.password == "") { response['PublicKeys'] = [ "ssh-rsa rsapubkey" ]; } else if (event.password !== 'MySuperSecretPassword') { response = {}; } } else { response = {}; } callback(null, response); };
  14. 14. • 認証に成功した場合は以下のJSONを返す L a m b d a で の 認 証 の 成 功 ・ 失 敗 の 判 定 14 response = { Role:"arn:arn:aws:iam::000000000000:role/UserS3AccessRole", Policy: 'user-scope-down-policy', // Not required HomeDirectory: '/bucket/userHome' // Not required, defaults to '/' }; • 認証に失敗した場合は空のJSONを返す
  15. 15. • 当社のユースケースの場合、ユーザー毎にホームディ レクトリが必要。 • 納品した写真が他ユーザーから見えてはいけない。
 > Scope down policyで設定 ユ ー ザ ー 毎 の デ ィ レ ク ト リ が ほ し い 15 • ${transfer:UserName}
 • ${transfer:HomeBucket}
 • ${transfer:HomeDirectory}
  16. 16. • Transfer for SFTP用のIAMポリシー変数。 • ユーザーごとにポリシーを作らなくても良い。 • Custom認証だとScope down policyが効かない? • Cusotm認証時の設定がドキュメントにあまり記載がない。 • Lambdaのレスポンスに何を入れれば良いのか。 • policyのarnとかpolicyをアタッチしたRoleのarnとか • IAMのユーザーだと問題なし。 • Lambdaで返すJSONからPolicyを外すと認証は通る。
 が、当然どこでも見えてしまう。 S c o p e d o w n p o l i c y 16
  17. 17. • マネージド万歳 • API Gateway経由でlambda叩けば認証周りは好きにできる。 • Scope down policyでユーザー毎の制限もできるはず。 • lambdaでのPolicy指定の仕方が悪い? • グローバルにさらされてるんで、ちょいちょい怪しいアクセスが。 • IP制限は掛けたいですね。。 ま と め 17

×