AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要)...

63
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. PCI DSS で疲弊しないための AWS Fargate 活用 コイニー株式会社 江良 巧

Transcript of AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要)...

Page 1: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

PCI DSS で疲弊しないためのAWS Fargate 活用

コイニー株式会社

江良 巧

Page 2: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

自己紹介

● @gushernobindsme

● コイニー株式会社 ⬅ 会計パッケージベンダ

● サーバサイドエンジニア○ AWS/Java/Spring Boot

Page 3: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

今日の話

● FinTech 系のサービスには「信頼」が求められる

● PCI DSS に耐えうるインフラの構築には、マネージドサービスの活用が鍵○ コイニーではこの文脈で AWS Fargate がうまくハマった

● 監査業務を省力化して、プロダクトの価値向上にフォーカスしよう

Page 4: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

アジェンダ

● コイニーと PCI DSS○ コイニーが提供するサービス

○ システム構成

● これまでのセキュリティ対策

● コイニーでの AWS Fargate 導入

● 今後の展望

Page 5: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

コイニーと PCI DSS

Page 6: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

コイニーが提供するサービス

Page 7: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施
Page 8: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

店舗・対面QR決済

Coineyスキャン

オンライン決済

Coineyペイジ

店舗・対面クレジット決済

Coineyターミナル

Page 9: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施
Page 10: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

FinTech 系サービスには「信頼」が求められる

● 会社の信頼:お金を扱う上で、自己資本は一定満たされるか

● 経営チームの信頼:お金を扱う上で、この経営陣は大丈夫か

● プロダクトの信頼:お金を扱う上で、この製品は大丈夫か○ ここの信頼を得るうえで PCI DSS への準拠が重要な意味を持つ

Page 11: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS とは

● クレジットカード会員の情報を保護することを目的に定められた、クレジットカード業

界の情報セキュリティ基準

● 国際カードブランドである American Express、Discover、JCB、MasterCard、VISA

の 5 社によって策定

● カード情報を「保存、処理、伝送」する事業者が対象(カード会社、カード加盟店、銀

行、決済代行サービス企業など)

Page 12: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS で定められている 12 の要件

安全なネットワークの構築と維持

要件 1 カード会員データを保護するために、ファイアウォールをインストールして構成を維持する

要件 2 システムパスワードおよびその他のセキュリティパラメータにベンダ提供のデフォルト値を使用しない

カード会員データの保護

要件 3 保存されたカード会員データを保護する

要件 4 オープンな公共ネットワーク経由でカード会員データを伝送する場合、暗号化する

脆弱性管理プログラムの整備

要件 5 アンチウィルスソフトウェアまたはプログラムを使用し、定期的に更新する

要件 6 安全性の高いシステムとアプリケーションを開発し、保守する

強固なアクセス制御手法の導入

要件 7 カード会員データへのアクセスを、業務上必要な範囲内に制限する

要件 8 コンピュータにアクセスできる各ユーザに一意の ID を割り当てる

要件 9 カード会員データへの物理アクセスを制限する

ネットワークの定期的な監視およびテスト

要件 10 ネットワークリソースおよびカード会員データへのすべてのアクセスを追跡および監視する

要件 11 セキュリティシステムおよびプロセスを定期的にテストする

情報セキュリティポリシーの整備 要件 12 すべての担当者の情報セキュリティポリシーを整備する

Page 13: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

コイニーにおける PCI DSS 対応

● サービス開始当初から継続して準拠

● 現在は最新 Version の 3.2 に準拠

● PCI DSS 認証取得の方法○ PCI SSC によって認定された審査機関(QSA)によるオンサイト

審査を年に一回実施

○ PCI SSC 認定のスキャニングベンダー(ASV)によるネットワーク

スキャンを四半期に一回実施

● クレジットカード情報は通過のみ非保持

Page 14: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

システム構成

Page 15: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

マーチャント側

Coineyアプリ ウェブ管理画面 社内管理画面

社内側

コイニーが提供するサービス・制作物

Page 16: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

アプリケーション構成(概要)

Backend

Frontend Mobile

新サーバサイドアプリケーション

旧 Web 管理画面 新 Web 管理画面 社内管理画面

コイニーペイジ

旧サーバサイドアプリケーション

旧 iOS アプリ 新 iOS アプリ Android アプリ

マイクロサービスA

マイクロサービスB

マイクロサービスC

マイクロサービスD

マイクロサービスE

マイクロサービスF

Page 17: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

アプリケーション構成(概要)

● Ruby on Rails ➡ Spring Boot に移行中○ 移行作業はストラングラーパターンで段階的に実施

○ 新機能を追加する際は Spring Boot 側に実装

○ 機能の特性に応じたアーキテクチャを採用できるよう、マイクロサービス化も少しずつ推進

● 旧アプリは Amazon EC2 上で稼働

● 新アプリは AWS Elastic Beanstalk 上で稼働○ 2019 年度から Amazon ECS(AWS Fargate)も使うようになりました

■ ☝今回の話の焦点はここ

Page 18: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

インフラ構成(概要)

Page 19: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

インフラ構成(概要)

● VPC を Operation/Test/Payment に分割○ テスト環境と本番環境を物理的に分離し、VPC 間の通信を遮断

● Operation VPC には PCIDSS 要件の遵守に必要な各種サーバ群を配置○ Deep Security Manager

○ Radius OTP

○ SoftEther VPN

○ AD Controll

Page 20: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

普通に作って出すだけでは不足

Page 21: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

セキュリティ要件に耐えられるインフラ構成にする必要がある

Page 22: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS で定められている 12 の要件

安全なネットワークの構築と維持

要件 1 カード会員データを保護するために、ファイアウォールをインストールして構成を維持する

要件 2 システムパスワードおよびその他のセキュリティパラメータにベンダ提供のデフォルト値を使用しない

カード会員データの保護

要件 3 保存されたカード会員データを保護する

要件 4 オープンな公共ネットワーク経由でカード会員データを伝送する場合、暗号化する

脆弱性管理プログラムの整備

要件 5 アンチウィルスソフトウェアまたはプログラムを使用し、定期的に更新する

要件 6 安全性の高いシステムとアプリケーションを開発し、保守する

強固なアクセス制御手法の導入

要件 7 カード会員データへのアクセスを、業務上必要な範囲内に制限する

要件 8 コンピュータにアクセスできる各ユーザに一意の ID を割り当てる

要件 9 カード会員データへの物理アクセスを制限する

ネットワークの定期的な監視およびテスト

要件 10 ネットワークリソースおよびカード会員データへのすべてのアクセスを追跡および監視する

要件 11 セキュリティシステムおよびプロセスを定期的にテストする

情報セキュリティポリシーの整備 要件 12 すべての担当者の情報セキュリティポリシーを整備する

Page 23: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS で定められている 12 の要件

安全なネットワークの構築と維持

要件 1 カード会員データを保護するために、ファイアウォールをインストールして構成を維持する

要件 2 システムパスワードおよびその他のセキュリティパラメータにベンダ提供のデフォルト値を使用しない

カード会員データの保護

要件 3 保存されたカード会員データを保護する

要件 4 オープンな公共ネットワーク経由でカード会員データを伝送する場合、暗号化する

脆弱性管理プログラムの整備

要件 5 アンチウィルスソフトウェアまたはプログラムを使用し、定期的に更新する

要件 6 安全性の高いシステムとアプリケーションを開発し、保守する

強固なアクセス制御手法の導入

要件 7 カード会員データへのアクセスを、業務上必要な範囲内に制限する

要件 8 コンピュータにアクセスできる各ユーザに一意の ID を割り当てる

要件 9 カード会員データへの物理アクセスを制限する

ネットワークの定期的な監視およびテスト

要件 10 ネットワークリソースおよびカード会員データへのすべてのアクセスを追跡および監視する

要件 11 セキュリティシステムおよびプロセスを定期的にテストする

情報セキュリティポリシーの整備 要件 12 すべての担当者の情報セキュリティポリシーを整備する

この部分に フォーカスして

説明します

Page 24: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

これまでのセキュリティ対策

Page 25: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

まずは PCI DSS 要件の詳細を説明

● 要件 5:ウイルス対策についての要件

● 要件 6:ミドルウェアの脆弱性についての要件

● 要件 11:侵入検知・変更検出についての要件

Page 26: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 5 の概要

● ウイルス対策についての要件

※ 5.4 の文書化要求に関する要件はここでは省略します。

要件 No 要求事項

5.1 悪意のあるソフトウェアの影響を受けやすいすべてのシステム(特にパーソナルコンピュータとサーバ)に、ウィルス対策ソフトウェアを導入する

5.2 すべてのウィルス対策メカニズムが以下のように維持されていることを、確実にする ・最新の状態である ・定期的にスキャンを行う ・PCI DSS 要件 10.7 に従って監査ログを生成・保持する

5.3 ウィルス対策メカニズムがアクティブに実行されており、経営陣からケースバイケースで期間を限って特別に許可されない限り、ユーザが無効にしたり、変更できないことを確実にする

Page 27: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 の概要

● ミドルウェアの脆弱性についての要件

※ 6.3〜6.7 のアプリケーション開発プロセス等に関する要件はここでは省略します。

要件 No 要求事項

6.1 セキュリティ脆弱性情報の信頼できる社外提供元を使ってセキュリティの脆弱性を識別し、新たに発見されたセキュリティの脆弱性にリスクのランク(「高」、「中」、「低」など)を割り当てるプロセスを確立する

6.2 すべてのシステムコンポーネントとソフトウェアに、ベンダ提供のセキュリティパッチがインストールされ、既知の脆弱性から保護されている事を確実にする。「高」リスクと「緊急」のセキュリティパッチは、リリース後 1 カ月以内にインストールする

Page 28: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 11 の概要

● 侵入検知・変更検出についての要件

※ 11.1〜11.3 の ASV スキャン、ペネトレーションテスト等に関する要件はここでは省略します。

要件 No 要求事項

11.4 侵入検知システムおよび/または侵入防止手法を使用して、ネットワークへの侵入を検知および/または防止する。カード会員データ環境との境界およびカード会員データ環境内の重要なポイントを通過するすべてのトラフィックを監視し、侵害の疑いがある場合は担当者に警告する ・すべての侵入検知および防止エンジン、ベースライン、シグネチャを最新状態に保つ

11.5 変更検出メカニズム(ファイル整合性監視ツールなど)を導入して重要なシステムファイル、設定ファイル、またはコンテンツファイルの不正な変更(変更、追加、削除を含む)を担当者に警告し、重要なファイルの比較を少なくとも週に一度実行するようにソフトウェアを設定する

Page 29: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 対策としてやっていること

● 要件 5:ウイルス対策についての要件○ ClamAV で日次スキャン

○ 新バージョンがリリースされたらソフトウェアを更新

● 要件 6:ミドルウェアの脆弱性についての要件○ Amazon Inspector で週次スキャン

○ 脆弱性が見つかったらミドルウェアを更新

● 要件 11:侵入検知・変更検出についての要件○ Deep Security でリアルタイム監視

○ (運用は自動化できるが、ライセンス料が高額)

EC2

Page 30: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 5 でやっていること

● ClamAV によるウイルススキャンを cron で日次で実行

● スキャンの実施ログは Amazon CloudWatch Logs に転送

● 問題を検知したら、管理者宛にメールで通知

EC2

Page 31: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 5 の課題

● 運用上の負荷が高い○ ウイルス定義ファイルの更新は自動で行える

○ ClamAV のソフトウェア自体の更新作業は別途行う必要がある

○ 運用していると、結構な頻度でアップデートがある

● 監査証跡の提出が手間○ 下記の作業が漏れなく行えていることを QSA に対して証明する必要がある

■ ウイルススキャンの実施

■ 定義ファイルの更新

○ 各ロググループから 一生懸命ログを集めて回るのが一苦労 ……

EC2

Page 32: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 でやっていること

● Amazon Inspector を使った脆弱性スキャンを週次で実行○ Amazon Inspector エージェントを各サーバにインストール

● スキャン結果を slack に通知

● 脆弱性が見つかったら一ヶ月以内に対応

EC2

Page 33: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 でやっていること

EC2

Page 34: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 でやっていること

EC2

Page 35: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 の課題

● 運用上の負荷が高い○ Amazon Inspector がやってくれるのは「検知」まで

○ サーバに一つ一つ ssh ログインして yum update をかける必要がある

○ 運用していると、ほぼ毎月、何らかの脆弱性が見つかる

● リスクの高い作業が必要になる○ 脆弱性が見つかった場合、以下のような手順を実施している

■ メンテ対象のインスタンスをロードバランサから外す

■ yum update 実行

■ インスタンスを再起動

■ 古い kernel を削除(Amazon Inspector の誤検知を防ぐため)

■ メンテが終わったインスタンスをロードバランサに戻す

○ 手順を誤るとサービスが停止するリスクがある

EC2

Page 36: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 11 でやっていること

● Trend Micro Deep Security を導入し、侵入・変更のイベントをリアルタイム検知○ Deep Security の管理サーバを EC2 上に構築

○ 検知対象のサーバには Deep Security Agent をインストール

● 不正な動きを検知したら、管理者宛にメールで通知

EC2

Page 37: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 11 の課題

● ライセンス料が高い○ 新たにサーバを立てる場合、DeepSecurity エージェントのインストールが必要になる

○ DeepSecurity で管理する対象のサーバが増えると、その分ライセンス料がかさむ

○ セキュリティのための投資が 事業の足枷になってしまう

EC2

Page 38: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

監査は準拠するまでだけでなく準拠した後も大変

Page 39: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

…でもこの作業ってユーザの役に立ってるんだっけ?

Page 40: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

「差別化に繋がらない重労働」

Page 41: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

コイニーでの AWS Fargate 導入

Page 42: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

Amazon ECS

● Docker コンテナを簡単に実行、停止、管理できるコンテナ管理サービス

● ローカルで作ったコンテナを簡単に AWS 環境でデプロイできる

● AWS 上の各種サービスとの連携がスムーズに行えて便利

Page 43: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

AWS Fargate

● AWS Fargate は ECS の起動タイプの一つ○ Fargate 起動タイプ

○ EC2 起動タイプ

● AWS Fargate を使うことで、コンテナを動かすためのインフラストラクチャを抽象化

できる○ 以下のような悩みから解放される

■ 「EC2 のインスタンスタイプどれくらいにしよう」とか

■ 「EBS のサイズはこれくらいかな」とか

Page 44: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

EC2 VS Fargate

● EC2 起動タイプだと、足元で動いている EC2 を意識する必要がある

● Fargate 起動タイプだと、EC2 を意識する必要がなくなる○ つまり、コンテナ上で動くアプリケーションの開発に集中できる

Page 45: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

どうやって始める?

● まずは小さく始めてみる○ ちょうど 2019 年に大きめの開発プロジェクトがあった

○ 要件的に、別サービスに切り出せそうなサービスが出てきそう

○ まずはこのサービスで試してみて、それから全体に適用するか判断しよう

● 事前に Responsibility Summary をよく確認しておく○ AWS のサービスも PCI DSS の監査を受けている

○ Responsibility Summary を参照して、自分たちで担保が必要なラインを見極めておこう

Page 46: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

インフラ構成 - ビルド環境

Code Build

1.PullRequest の作成、更新 を Webhook で検知

1.マネジメントコンソール から直接実行

ECR

2.アプリケーションのbuild docker push

Code BuildCode Pipeline

ECS

4.docker pull 脆弱性スキャン

3.DockerImageの脆弱性 サーバーへリクエスト

Page 47: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

Container Cluster(ECS Fargate)

インフラ構成 - デプロイ環境

Code Pipeline

Code Deploy

Target Group

Container

ALB

1.CodePipelineを起動する  トリガーを作成

2.CodeDeploy起動

3.デプロイ

BFF から API 呼び出し

Page 48: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 対策としてやったこと

● 要件 5:ウイルス対策についての要件○ 追加作業なし

● 要件 6:ミドルウェアの脆弱性についての要件○ Amazon ECR イメージスキャンで週次スキャン

○ 脆弱性が見つかったらコンテナイメージを更新

● 要件 11:侵入検知・変更検出についての要件○ 追加作業なし

Fargate

Page 49: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 5 の考え方

● Responsibility Summary を参照

● Fargate を使う場合、コンテナを動かすためのインフラストラクチャを抽象化できるた

め、サーバに対するウイルス対策は不要と判断○ ClamAV を運用する手間がなくせる、と判断

Fargate

Page 50: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 の考え方

● Responsibility Summary を参照

● Fargate を使う場合、コンテナを動かすためのインフラストラクチャを抽象化できるた

め、サーバ自体の OS・ミドルウェアの脆弱性対策は不要と判断○ Amazon Inspector を運用する手間がなくせる、と判断

● ただし、コンテナイメージの管理については利用者の責任範囲○ 定期的にスキャンする仕組みが必要

○ 高レベルの脆弱性が検知されたら一ヶ月以内に対策できていることが必要

Fargate

Page 51: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 でやったこと(コンテナ編)

● Amazon ECR の API を使ったコンテナイメージのスキャンを週次で実行

● スキャン結果を slack に通知

● 脆弱性が見つかったら一ヶ月以内に対応

ECRLambda EventBridge

EventBridge

Lambda

Fargate

Page 52: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 6 でやったこと(コンテナ編)

Fargate

Page 53: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

PCI DSS 要件 11 の考え方

● Responsibility Summary を参照

● Fargate を使う場合、コンテナを動かすためのインフラストラクチャを抽象化できるた

め、サーバ自体の侵入検知・変更検出についての対策は不要と判断○ Deep Security を導入するコストが減らせる、と判断

Fargate

Page 54: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

EC2 運用との比較

要件 No EC2 ECS(Fargate)

要件 5ClamAV で日次スキャン新バージョンがリリースされたらソフトウェアを更新

追加作業なし

要件 6Amazon Inspector で週次スキャン脆弱性が見つかったらミドルウェアを更新

Amazon ECR イメージスキャンで週次スキャン脆弱性が見つかったらコンテナイメージを更新

要件 11Deep Security でリアルタイム監視(運用は自動化できるが、ライセンス料が高額)

追加作業なし

Page 55: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

結果…

Page 56: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

2019年度も無事PCI DSS に準拠できました🎉

Page 57: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

今後の展望

Page 58: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施
Page 59: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施
Page 60: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施
Page 61: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

今後の展望

● 事業として、まだまだやることは盛りだくさん

● サービスの「信頼」を守るため PCI DSS 4.0 への対応も必要

● より、プロダクト開発に集中できる状況を作りたい💪○ まだサービスの大部分は EC2 or Elastic Beanstalk で稼働している

○ Fargate に移行することで、監査対応をより効率化していきたい

○ 他の管理系サーバも EC2 からマネージドサービスに移行したい

Page 62: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

まとめ

● FinTech 系のサービスには「信頼」が求められる

● PCI DSS に耐えうるインフラの構築には、マネージドサービスの活用が鍵○ コイニーではこの文脈で AWS Fargate がうまくハマった

● 監査業務を省力化して、プロダクトの価値向上にフォーカスしよう

Page 63: AWS Fargate 活用 PCI DSS で疲弊しないための...アプリケーション構成(概要) Ruby on Rails Spring Boot に移行中 移行作業はストラングラーパターンで段階的に実施

Thank you!

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.