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.
サーバーレスPCI DSS対応クレジットカード決済
基盤システムを運⽤しながら、みんなでわいわい
DIYの精神で、新しいモバイル決済サービス
6gramをともにつくっている話
Developers Summit 2020
株式会社ミクシィ ID...
おしながき
ID ペイメント事業部 と 私
タイトルのおさらい
PCI DSSとクレジットカード決済
PCI DSS対応 サーバーレス決済システム??
6gramにするために
おわりに
⾃⼰紹介
IDペイメント事業部と私
⽥岡⽂利
株式会社ミクシィ ID・ペイメント事業部 システムグループ マネージャー
2012年4⽉⼊社
→ SNS mixi の ⾃社Framework開発とサービス開発
→グループ会社の⽀援 (開発体制、ガ...
ID ペイメント事業部
IDペイメント事業部と私
社内外でのアカウント、個⼈情報、決済に関して簡単かつ信頼のおける基盤づくり
- アカウント・ログイン (key: パスワードレス / FIDO / OAuth)
‣ SMS / mail / S...
タイトルが⻑すぎますね!!
タイトルのおさらい
サーバーレスPCI DSS対応クレジットカード決済
基盤システムを運⽤しながら、みんなでわいわい
DIYの精神で、新しいモバイル決済サービス
6gramをともにつくっている話
タイトルのおさらい
カード決済システムの構築・運⽤に関して
決済サー...
決済サービスの基礎的な概念
ユーザー 加盟店
アクワイアラ
国際ブランド
クレジットカード決済
カード発⾏業務
(信販会社など)
加盟店管理
VISA / JCBなど
PCI DSSとクレジットカード決済
クレジットカード
イシュア
決済代⾏
PCI DSS とは?
クレジットカード業界のセキュリティ基準
これに厳格に準拠することで、カード番号などの情報を取り扱いできる
12要件、約400項⽬
数年に⼀度、基準が改訂される
PCI DSSとクレジットカード決済
カード情報の取り扱い
ユーザー 加盟店
アクワイアラ
国際ブランド
クレジットカード決済
カード発⾏業務 加盟店管理
VISA / JCBなど
PCI DSSとクレジットカード決済
クレジットカード
イシュア
決済代⾏
保存
所有者は対象外
保...
カード番号が通る経路も対象になる
ユーザー ECサイト
アクワイアラ
国際ブランド
トークン
カード発⾏業務 加盟店管理
VISA / JCBなど
PCI DSSとクレジットカード決済
クレジットカード
イシュア
決済代⾏
前回のカードで決済
...
6gramの場合
ユーザー ECサイト
アクワイアラ
国際ブランド
トークン
カード発⾏業務 加盟店管理
VISA / JCBなど
PCI DSSとクレジットカード決済
クレジットカード
イシュア
決済代⾏
決済システム
カード番号をトークン化...
PCI DSS とは?
クレジットカード業界のセキュリティ基準
これに厳格に準拠することで、カード番号などの情報を取り扱いできる
12要件、約400項⽬
数年に⼀度、基準が改訂される
⼀年に⼀回オンサイト監査の実施
運⽤⼿順のドキュメントやその...
アカウント要件
要件8 コンピュータにアクセスできる各ユーザーに⼀意のIDを割り当てる
‣ 8.2.3 パスワードは以下を満たす必要がある
‣ パスワードに7⽂字以上含まれる
‣ 数字と英⽂字を両⽅含む
‣ 8.2.4 パスワードは少なくとも9...
セキュリティ要件
要件5 すべてのシステムをマルウェアから保護する
⇨ 稼働中のサーバーにウイルスチェックなどが必要
要件11 セキュリティシステムおよびプロセスを定期的にテストする
‣ 11.4 侵⼊検知/侵⼊防⽌システムを使⽤して警告する
...
われわれの⼤⽅針
⇨ 運⽤負荷をできるだけさげたい
PCI DSS対応サーバーレス決済システム
その⽅法に関して⼀部紹介します
‣ 「グループウォレットアプリ、6gramの運⽤をはじめてみた」
‣ https://speakerdeck.com...
インスタンスを使わない
PCI DSS対応サーバーレス決済システム
インスタンスを使わない
PCI DSS対応サーバーレス決済システム
真のサーバーレス
サービスを運⽤しなければ、
インシデントも発⽣しない
冗談です
PCI DSS対応サーバーレス決済システム
コンテナをRead Only で動かす
PCI DSS対応サーバーレス決済システム
インスタンスレス + Read Only で何が嬉しいか
リモートコンソールが存在しないためそもそも侵⼊できない
- 侵⼊検知の仕組みを導⼊する必要がない
Read Only なのでそもそも書き換えができない
- ファイル変更検出ソフトウェアが...
ストレージに関して
RDBは基本user/passwordで接続しにいく…
↓
クレジットカード情報をはじめとするすべてのデータをDynamoDBに保存
AWSのmanagedなシステムによりそうことで
‣ KMSによるテーブルの暗号化 が⽤意...
6gramにするために
まずは5グラムに
6gramにするために
プリペイド(クレジット)カードシステム
6gramにするために
イシュア機能(カード会社)
‣ カード番号の管理 (カード番号や有効期限、セキュリティーコード)
‣ 残⾼の管理
チャージ機能(ポイント機能)
‣ クレカ決済
‣ 銀⾏決済 —> ...
モバイル決済対応の登場⼈物 ⾚いものを作る
ユーザー
アクワイアラ
国際ブランド
クレジットカードによる⼊⾦
VISA / JCBなど
イシュア
決済代行基盤
カード番号
⼝座番号
残⾼
アクワイアラ
国際ブランド
クレジットカードの利⽤
VI...
要件をすべて満たすパッケージは存在しなかった
6gramにするために
⾃分でつくるしかないYO!
みんなでわいわいDIY
6gramにするために
冷静に考えよう
なぜそのような製品がないのか
‣ 可能な限りフルマネージドサービスを利⽤することで少⼈数でも運⽤可能なサー
バーレス PCI DSS 対応構成を採⽤している
‣ コンテナサポート
‣ Readonlyで動く
既製品のランニングコ...
レイヤリングの⼀例
6gramにするために
アクワイアラ
TSP
銀⾏
アクワイアラ
決済プロトコル
変換APP1
銀⾏
⼊⾦
API
決済サービス
カード
銀⾏
決済プロトコル
変換APP2
専用線
特殊プロトコル
SQS
クレカclient...
イシュア側全部作ると(カード・残⾼・トークンを管理)
CM
イシュア
加盟店
TSP オーソリシステム
⻩⾊のカードで100円の買い物
1. ⻩⾊のカードを探す
2. 残⾼をチェックする
3. 残⾼を減らす
4. ヨシ!
残高
1. ⻘⾊のカー...
構築例) Mobileペイメントだけ移譲する
CM
イシュア
加盟店
TSP
オーソリシステム
⻩⾊のカードで100円の買い物
残高
青色のカードをMobileに登録
普通のカード決済は⾃分で処理
カード情報を同期して移譲する
TSPで処理完結...
構築例)残⾼だけ⾃分で管理
CM
加盟店
オーソリシステム
⻩⾊のカードで100円の買い物
残高
イシュア
残高
同期したり
決済時にAPIコールしてもらったりする
このパターンは、カード番号をアプリとかで知らせない限り
PCI DSSと結構無...
結果、今回は全部作りました
6gramにするために
システム構成
‣ 開発⾔語: Elixir
‣ ⼀部 DynamoDB Streams を経由した NodeJS や解析環境で Python など
‣ インフラ: AWS
‣ データベース: DynamoDB
‣ コンピュート: Fargate...
5グラム(普通のプリペイドカード)の
機能が実装されました!!
6gramにするために
1を⾜してサービスを作ってみます
6gramにするために
PR
「6gram」サービス紹介
ひとりでも、グループでも使うことのできるウォレットサービス
グループに⼊れたお⾦をシェアしたり、インスタントに発⾏したプリペイドカードに
残⾼を割り付けたりといろんな使い⽅ができる
‣ JCB プリペイドカードを1ア...
⾃由⾃在にお⾦やカードを動かせる
CM
6gram
加盟店
TSP オーソリシステム
ApplePayで決済
カードをそのまま使う
複数のカードを残⾼に紐づけ
カードとカードをつなげる
⾃由度がいっぱい
自分たちでシステムを作ったので、カードの...
今⽇はいくつか招待コードのステッカー持ってきてます!
Ask the speaker の時にお渡しできます
社内ではお菓⼦を買う共有ウォレットとして使ったりしてます
招待コードは⼀回使い切りですが、
アプリ内で何度でも招待コードを作れます
仲の...
おわりに
PCI DSSでは様々な運⽤フローの策定や証跡管理が必要
運⽤負荷をへらしていくことが重要です
⾃分たちでルールや仕組みを作り上げて、実践
チームビルディングやチーム⼒の底上げにつながる
PCI DSSだけではシステムやサービスを守れ...
おわりに
必ずしも⾃分たちで全てを構築するのが正解とは限りません
ただの⾞輪の再発明かもしれません
ただ⾃分たちでやってみることで⾒えてくる世界もあります。
みんなでわいわいDIY
サーバーレスなPCI DSS対応クレジットカード決済基盤システムを運用しながら、みんなでわいわいDIYの精神で、新しいモバイル決済サービス6gramを作っている話
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
What to Upload to SlideShare
Next
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

Share

サーバーレスなPCI DSS対応クレジットカード決済基盤システムを運用しながら、みんなでわいわいDIYの精神で、新しいモバイル決済サービス6gramを作っている話

Download to read offline

mixiのカードイシュイングシステムに関して、我々のチームのPCI DSS対応方針をベースに作成したシステムに関してごく簡単に一部を紹介しました。

Related Books

Free with a 30 day trial from Scribd

See all

サーバーレスなPCI DSS対応クレジットカード決済基盤システムを運用しながら、みんなでわいわいDIYの精神で、新しいモバイル決済サービス6gramを作っている話

  1. 1. サーバーレスPCI DSS対応クレジットカード決済 基盤システムを運⽤しながら、みんなでわいわい DIYの精神で、新しいモバイル決済サービス 6gramをともにつくっている話 Developers Summit 2020 株式会社ミクシィ ID・ペイメント事業部 システムグループ マネージャー ⽥岡 ⽂利 2020/02/13
  2. 2. おしながき ID ペイメント事業部 と 私 タイトルのおさらい PCI DSSとクレジットカード決済 PCI DSS対応 サーバーレス決済システム?? 6gramにするために おわりに
  3. 3. ⾃⼰紹介 IDペイメント事業部と私 ⽥岡⽂利 株式会社ミクシィ ID・ペイメント事業部 システムグループ マネージャー 2012年4⽉⼊社 → SNS mixi の ⾃社Framework開発とサービス開発 →グループ会社の⽀援 (開発体制、ガツガツ開発、SREぽい事)
 → XFLAG アプリ・XFLAG ID の開発・運⽤
 → 新サービス開発熟考期 (ビデオ・ライブ配信 / WebRTC / BLE) → 決済基盤の開発・運⽤や、新規決済系サービス「6gram」の開発を⾏っている
  4. 4. ID ペイメント事業部 IDペイメント事業部と私 社内外でのアカウント、個⼈情報、決済に関して簡単かつ信頼のおける基盤づくり - アカウント・ログイン (key: パスワードレス / FIDO / OAuth) ‣ SMS / mail / SNS / etc - 個⼈情報の管理・本⼈確認 (⽣年⽉⽇・住所・⾝分証・犯収法対の本⼈確認) - 決済(クレジットカード・銀⾏・ATM・ID決済) チーム構成 エンジニアリングマネージャ 1名 サーバーサイドエンジニア 5 (6)名 クライアントエンジニア 2名 全員で開発、運⽤を⾏っている 💪
  5. 5. タイトルが⻑すぎますね!! タイトルのおさらい
  6. 6. サーバーレスPCI DSS対応クレジットカード決済 基盤システムを運⽤しながら、みんなでわいわい DIYの精神で、新しいモバイル決済サービス 6gramをともにつくっている話 タイトルのおさらい カード決済システムの構築・運⽤に関して 決済サービス開発に関して
  7. 7. 決済サービスの基礎的な概念 ユーザー 加盟店 アクワイアラ 国際ブランド クレジットカード決済 カード発⾏業務 (信販会社など) 加盟店管理 VISA / JCBなど PCI DSSとクレジットカード決済 クレジットカード イシュア 決済代⾏
  8. 8. PCI DSS とは? クレジットカード業界のセキュリティ基準 これに厳格に準拠することで、カード番号などの情報を取り扱いできる 12要件、約400項⽬ 数年に⼀度、基準が改訂される PCI DSSとクレジットカード決済
  9. 9. カード情報の取り扱い ユーザー 加盟店 アクワイアラ 国際ブランド クレジットカード決済 カード発⾏業務 加盟店管理 VISA / JCBなど PCI DSSとクレジットカード決済 クレジットカード イシュア 決済代⾏ 保存 所有者は対象外 保存している 前回のカードで決済 PCI DSS対応必須 PCI DSS対応必須
  10. 10. カード番号が通る経路も対象になる ユーザー ECサイト アクワイアラ 国際ブランド トークン カード発⾏業務 加盟店管理 VISA / JCBなど PCI DSSとクレジットカード決済 クレジットカード イシュア 決済代⾏ 前回のカードで決済 カード番号をトークン化 ECサイトなどではカード番号を直接取り扱わないことで回避 カード番号 カードのID PCI DSS対応必須 PCI DSS対応必須 PCI DSS対応必須 PCI DSS対応不要
  11. 11. 6gramの場合 ユーザー ECサイト アクワイアラ 国際ブランド トークン カード発⾏業務 加盟店管理 VISA / JCBなど PCI DSSとクレジットカード決済 クレジットカード イシュア 決済代⾏ 決済システム カード番号をトークン化 今回つくる決済システムは イシュアと決済代行両方の機能 決済システム PCI DSS対応必須
  12. 12. PCI DSS とは? クレジットカード業界のセキュリティ基準 これに厳格に準拠することで、カード番号などの情報を取り扱いできる 12要件、約400項⽬ 数年に⼀度、基準が改訂される ⼀年に⼀回オンサイト監査の実施 運⽤⼿順のドキュメントやその実施証跡 PCI DSSとクレジットカード決済
  13. 13. アカウント要件 要件8 コンピュータにアクセスできる各ユーザーに⼀意のIDを割り当てる ‣ 8.2.3 パスワードは以下を満たす必要がある ‣ パスワードに7⽂字以上含まれる ‣ 数字と英⽂字を両⽅含む ‣ 8.2.4 パスワードは少なくとも90⽇ごとに変更する ‣ 8.2.5 これまで使⽤した最後の4つのパスワードのいずれかで同じである新しいパス ワードを許可しない PCI DSS対応サーバーレス決済システム ID基盤としてはパスワードレスとかキーワードにしてるのに.. パスワード要件
  14. 14. セキュリティ要件 要件5 すべてのシステムをマルウェアから保護する ⇨ 稼働中のサーバーにウイルスチェックなどが必要 要件11 セキュリティシステムおよびプロセスを定期的にテストする ‣ 11.4 侵⼊検知/侵⼊防⽌システムを使⽤して警告する ‣ 11.5 変更検出メカニズムを導⼊してファイル変更を監視、警告する PCI DSS対応サーバーレス決済システム IDS/IPS 要件
  15. 15. われわれの⼤⽅針 ⇨ 運⽤負荷をできるだけさげたい PCI DSS対応サーバーレス決済システム その⽅法に関して⼀部紹介します ‣ 「グループウォレットアプリ、6gramの運⽤をはじめてみた」 ‣ https://speakerdeck.com/ryosan470/6gram-sre-next-2020
  16. 16. インスタンスを使わない PCI DSS対応サーバーレス決済システム
  17. 17. インスタンスを使わない PCI DSS対応サーバーレス決済システム
  18. 18. 真のサーバーレス サービスを運⽤しなければ、 インシデントも発⽣しない 冗談です PCI DSS対応サーバーレス決済システム
  19. 19. コンテナをRead Only で動かす PCI DSS対応サーバーレス決済システム
  20. 20. インスタンスレス + Read Only で何が嬉しいか リモートコンソールが存在しないためそもそも侵⼊できない - 侵⼊検知の仕組みを導⼊する必要がない Read Only なのでそもそも書き換えができない - ファイル変更検出ソフトウェアが不要になる ログインできないのでID・パスワードもいらない 管理するコンポーネントが減るということは素直に運用コストが軽減 証跡管理コストも軽減 PCI DSS対応サーバーレス決済システム IDS/IPS 要件 パスワード要件
  21. 21. ストレージに関して RDBは基本user/passwordで接続しにいく… ↓ クレジットカード情報をはじめとするすべてのデータをDynamoDBに保存 AWSのmanagedなシステムによりそうことで ‣ KMSによるテーブルの暗号化 が⽤意(様々なコンポーネントで標準で暗号化がサポートされる) ‣ IAMをベースとした細かいアクセス制御(サービスのロールで管理できる) ‣ 開発者のユーザーではデータを⾒ることができません。 ‣ アプリケーションロールのみが、DynamoDBやその暗号化に使う鍵情報にアクセスができます。 PCI DSS対応サーバーレス決済システム
  22. 22. 6gramにするために
  23. 23. まずは5グラムに 6gramにするために
  24. 24. プリペイド(クレジット)カードシステム 6gramにするために イシュア機能(カード会社) ‣ カード番号の管理 (カード番号や有効期限、セキュリティーコード) ‣ 残⾼の管理 チャージ機能(ポイント機能) ‣ クレカ決済 ‣ 銀⾏決済 —> (銀⾏登録 + 即時決済) or netBank振込対応 ‣ ATM⼊⾦(セブンバンク) モバイル決済への対応 (TSP連携) ‣ ApplePay / GooglePay
  25. 25. モバイル決済対応の登場⼈物 ⾚いものを作る ユーザー アクワイアラ 国際ブランド クレジットカードによる⼊⾦ VISA / JCBなど イシュア 決済代行基盤 カード番号 ⼝座番号 残⾼ アクワイアラ 国際ブランド クレジットカードの利⽤ VISA / JCBなどTSP TR ApplePay/GooglePay対応 Apple/Google 加盟店 カード番号 Token管理 残⾼ Issuer基盤 APPサーバ 銀⾏ 6gramにするために
  26. 26. 要件をすべて満たすパッケージは存在しなかった 6gramにするために
  27. 27. ⾃分でつくるしかないYO! みんなでわいわいDIY 6gramにするために
  28. 28. 冷静に考えよう なぜそのような製品がないのか ‣ 可能な限りフルマネージドサービスを利⽤することで少⼈数でも運⽤可能なサー バーレス PCI DSS 対応構成を採⽤している ‣ コンテナサポート ‣ Readonlyで動く 既製品のランニングコストや PCI DSS 対応も含めたコスト vs 最初ちょっと頑張って今のままのローコストな運⽤で使える様に内製 6gramにするために 無理ならば、パッケージを買って間に挟んで運用、特殊な対応が発生しても そのときにそのコンポーネントだけに影響が出るようにしよう
  29. 29. レイヤリングの⼀例 6gramにするために アクワイアラ TSP 銀⾏ アクワイアラ 決済プロトコル 変換APP1 銀⾏ ⼊⾦ API 決済サービス カード 銀⾏ 決済プロトコル 変換APP2 専用線 特殊プロトコル SQS クレカclient Internet 1 専⽤線 1 銀⾏client 専⽤線 1 Internet 1 Internet 2 銀⾏ 残⾼サービス 特殊プロトコルでもここだけで対応できる APP ←
  30. 30. イシュア側全部作ると(カード・残⾼・トークンを管理) CM イシュア 加盟店 TSP オーソリシステム ⻩⾊のカードで100円の買い物 1. ⻩⾊のカードを探す 2. 残⾼をチェックする 3. 残⾼を減らす 4. ヨシ! 残高 1. ⻘⾊のカードを探す 2. 残⾼をチェックする 3. トークン情報をもらう 4. ヨシ! ⻘⾊のカードをMobileに登録 ApplePayで決済 1. のカードを探す 2. 残⾼をチェックする 3. 残⾼を減らす 4. ヨシ!
  31. 31. 構築例) Mobileペイメントだけ移譲する CM イシュア 加盟店 TSP オーソリシステム ⻩⾊のカードで100円の買い物 残高 青色のカードをMobileに登録 普通のカード決済は⾃分で処理 カード情報を同期して移譲する TSPで処理完結 GPayで決済 1. GPayの情報はわからない ので、TSPに問い合わせ 2. ⻘いカードとわかる 3. 通常の処理 プリペイドだと ちょっと決済に時間かかる 実測:加盟店としてチャージの決済をした場合に、全体として通常のカード決済よりもToken決済のほうが 決済ネットワークの応答が平均で遅いのが観測されています
  32. 32. 構築例)残⾼だけ⾃分で管理 CM 加盟店 オーソリシステム ⻩⾊のカードで100円の買い物 残高 イシュア 残高 同期したり 決済時にAPIコールしてもらったりする このパターンは、カード番号をアプリとかで知らせない限り PCI DSSと結構無縁で作れる システム借りる 決済時にAPIコー ルされるのであれ ば送⾦の実現は 割とすぐにできる
  33. 33. 結果、今回は全部作りました 6gramにするために
  34. 34. システム構成 ‣ 開発⾔語: Elixir ‣ ⼀部 DynamoDB Streams を経由した NodeJS や解析環境で Python など ‣ インフラ: AWS ‣ データベース: DynamoDB ‣ コンピュート: Fargate ‣ 監視: CloudWatch、Rollbar ほぼすべてのコンポーネント (⼊出⾦処理、カード会社とのやりとり) は内製 ‣ Elixir採⽤理由などは、Developer Boost 2019の「Elixirで決済サービスを作ってみた」 を! https://speakerdeck.com/enerick/elixir-dejue-ji-sabisuwotukututemita
  35. 35. 5グラム(普通のプリペイドカード)の 機能が実装されました!! 6gramにするために
  36. 36. 1を⾜してサービスを作ってみます 6gramにするために
  37. 37. PR
  38. 38. 「6gram」サービス紹介 ひとりでも、グループでも使うことのできるウォレットサービス グループに⼊れたお⾦をシェアしたり、インスタントに発⾏したプリペイドカードに 残⾼を割り付けたりといろんな使い⽅ができる ‣ JCB プリペイドカードを1アカウントで複数枚発⾏できる ‣ ApplePay / GooglePay と連携して QUICPay+ 決済 ‣ iOS では コンタクトレス決済にも対応 ‣ リアルカードも発⾏予定 ‣ 現在は完全招待制 PR
  39. 39. ⾃由⾃在にお⾦やカードを動かせる CM 6gram 加盟店 TSP オーソリシステム ApplePayで決済 カードをそのまま使う 複数のカードを残⾼に紐づけ カードとカードをつなげる ⾃由度がいっぱい 自分たちでシステムを作ったので、カードの同期や残高の数などに制限が生まれない 共同 スイッチ グループウォレット
  40. 40. 今⽇はいくつか招待コードのステッカー持ってきてます! Ask the speaker の時にお渡しできます 社内ではお菓⼦を買う共有ウォレットとして使ったりしてます 招待コードは⼀回使い切りですが、 アプリ内で何度でも招待コードを作れます 仲のいい⼈たちを招待して使ってみてください。 CM
  41. 41. おわりに PCI DSSでは様々な運⽤フローの策定や証跡管理が必要 運⽤負荷をへらしていくことが重要です ⾃分たちでルールや仕組みを作り上げて、実践 チームビルディングやチーム⼒の底上げにつながる PCI DSSだけではシステムやサービスを守れない PCI DSS管理外のコンポーネントでも、セキュリティを担保しつつ運⽤コストを減らす⾏動 ⽇頃から最新のセキュリティ情報を⼿に⼊れ続ける 監査がなくても、安全なシステム開発・運⽤が保たれるような組織づくり
  42. 42. おわりに 必ずしも⾃分たちで全てを構築するのが正解とは限りません ただの⾞輪の再発明かもしれません ただ⾃分たちでやってみることで⾒えてくる世界もあります。 みんなでわいわいDIY
  • fghanawa

    Feb. 19, 2020

mixiのカードイシュイングシステムに関して、我々のチームのPCI DSS対応方針をベースに作成したシステムに関してごく簡単に一部を紹介しました。

Views

Total views

1,122

On Slideshare

0

From embeds

0

Number of embeds

617

Actions

Downloads

2

Shares

0

Comments

0

Likes

1

×