Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
金融機関の(システムの)作り方
Search
free_world21
December 13, 2019
Technology
0
1.8k
金融機関の(システムの)作り方
https://ginza-rails.connpass.com/event/155467/
銀座Rails#16 @リンクアンドモチベーション
で発表したスライドです。
free_world21
December 13, 2019
Tweet
Share
More Decks by free_world21
See All by free_world21
DjangoとRailsを使って趣味として政治資金を透明化するプロダクトを作ってる話
free_world21
0
67
Ruby on Rails on Kubernetesってどうなの?
free_world21
0
16
大事なデータを守りたい!ActiveRecord Encryptionと、より安全かつ検索可能な暗号化手法の実装例の紹介
free_world21
0
28
Ruby on Rails と Django を比較してみる
free_world21
1
260
Shinjuku.rb#95:心の技術書紹介
free_world21
1
280
Rails engineを用いたゆるふわモジュラーモノリス のご紹介
free_world21
1
430
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
3
1.4k
東証障害報告書を読み解く
free_world21
0
280
Ruby/Railsの勉強会のおかげでブルーモ証券起業した
free_world21
2
500
Other Decks in Technology
See All in Technology
[CMU-DB-2025FALL] Apache Fluss - A Streaming Storage for Real-Time Lakehouse
jark
0
110
“決まらない”NSM設計への処方箋 〜ビットキーにおける現実的な指標デザイン事例〜 / A Prescription for "Stuck" NSM Design: Bitkey’s Practical Case Study
bitkey
PRO
1
580
Overture Maps Foundationの3年を振り返る
moritoru
0
150
AWS Bedrock AgentCoreで作る 1on1支援AIエージェント 〜Memory × Evaluationsによる実践開発〜
yusukeshimizu
6
360
計算機科学をRubyと歩む 〜DFA型正規表現エンジンをつくる~
ydah
3
190
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
210
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
120
生成AI・AIエージェント時代、データサイエンティストは何をする人なのか?そして、今学生であるあなたは何を学ぶべきか?
kuri8ive
2
2.1k
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
170
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
4.7k
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
4
460
Ruby で作る大規模イベントネットワーク構築・運用支援システム TTDB
taketo1113
1
190
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
92
Documentation Writing (for coders)
carmenintech
76
5.2k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Bash Introduction
62gerente
615
210k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Embracing the Ebb and Flow
colly
88
4.9k
The Invisible Side of Design
smashingmag
302
51k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Being A Developer After 40
akosma
91
590k
Transcript
׺¡3 TV]n3 ìA 2019.12.13 ÁőRails#16 @free_world21
▪ ±ľ cLv 35 ▪ : ƇĪ ½2lIz_ĿŇàÐ ▪ Œ:
jxOtm – RVGMLP?8P>E3 – ÎVQYi ▪ 2008: hu tzVLzUaG/"-ᢠ– flash/C#/rails/iOS/Android ▪ 2009: |¸ëŅŧ çÔ²é¸ŅĈ ▪ 2009: IPAŐœ2ōŬ!CB ▪ 2016: LotZòă~2Čÿ ▪ 2018: űĔ© ▪ 2019: hu tzV~©/"-÷¹ @free_world21
LotZòă~ ▪ 2016}Ũ ▪ ×.3Ĺ3ńİD"1Ĺ4Ń – 2017: EMERADA EQUITY ▪
ÑĹĊûàŪć»Ů ×ēþ»Ë – 2018: EMERADA BANK ▪ ş – 2019: EMERADA MARKETPLACE ▪ à£ÚŖ· 2Ŕ
None
None
Ő3VY _G[j3ò òÝ¶È DNtJ`hFz^HzOD¤#- ĭÏ$BR gVDğŤ 2017}11R gVuu V 2019}10ŭķðĘDŃ
×4čÀ ▪ ūŕÀ – hÙÒ - ,z0Æ%w¦¬!W] , – }WV}Wh
– o©Vo©Vh ▪ ńİÀ – hÙÒ - ,z0Æ**W]!ÇÁ0¤ ! – ³VX®£vh – ×XV×XVh – dfÒtWV}Wh – à¾gËÈVmXfh
r S3 a W @3 ¿Ķ
r S3 a W @3 ¿Ķ
ðĘDĬ2Ĥ¦"8$ ▪ ×ēþ»Ë§ ▪ ×ēþ»Ë§üť ▪ ×ēþ»Ë§üčŘ ▪ ▪
Ø~čŘ ĥ ý Ō « https://www.fsa.go.jp/common/law/guide/kinyushoh in/index.html
;3$ ů28/:8$ ▪ ºó¿æ1Ð – §a Þ'0[-,S0ç+#( µ¸q – §z'ÞÀ¹S
ëè0,` ▪ ĵijŢè3?1jxXVDğŤ"8"> ▪ '3ƀš;*<E/ę"8"> – z!æÑn00ì ¸q0ßÖ#( ▪ çÔ/#Ä2*<ž¬ – ÝÅ zÞ0,`!ID/Pass %#( OTP ▪ Ŋºó¿æ1Ð – U`G25N ´Ä0ßÖ#( – Ï.O:0 #( – ^ ceT _ Õ²Ðá0#( – OS'IDN673 ïÛº~#( – u 39@? ã^Ì$#( – Ͱ⠫ ) #( ▪ '3Ŏ – j\B?Cr¥0 +Ók|0Yc&1·Ø#( – ½ # ¶*éÃÝÅ'x±pÜ#( – j\eÊ!¢eÊ),Zybª0#( – ;PB4P>7P=HLP0aåÓ0#(
None
řĬ
Izht
Izht ¨1ŏŲ1ʼnļ3ƄĒ DOSʼnļ XXIzUKNTsz wordpress3ƊũÃD,(ʼnļ v v4ſ 2¨¯!&-í
Izht assetsłhFIv3Mp[Tq¯2?BĕųņÞ ĎŀIJ¨Î2?Br Sgu]H3Î LBÍ¥.ÌÍ3500Ĩï"(@ CF@Lt k UDġÉ
Izht ċAZ63x `etzTzO SSLāţĐ²
Izht Autoscale2?BĞ2XïÍ ĕų24Yï8.VP v IzVYzVŚ1A2 1+(/;¹īŋ EC2IzVYzV.4 docker container/"-rails(puma) ¹
Izht Aurora2?BƆ ğÅ ã4master63Ŧ9ô. masterėŚ4slave¹ŗø
Izht G[jx `!C(hFIvDĀ Û¿1;34ŸŔ¯"-
Izht ŸŔƃ4KMS.äģ²
4,3RailsjxUKN_ userrails adminrails DB common_models common_models useröcontrollers admin_models useröviews adminöcontrollers
adminöviews rails Žł_models Žłcontrollers ŽłDB ▪ user³railsGju ▪ admin³railsGju ▪ common engine ▪ ŽłrailsGju database - common_comments - common_posts - common_users - ads - admin_users - payments
ŸŔ¯2,- AWS KMS ▪ Customer Master KeyCMKDÜ"-data key "ŸŔƃ D¿ê$
B – A ▪ Í¥3;3KMS@Ģ+-B – A: ¡ æÑì – B: A æÑn-% ▪ A.ŸŔ¯"-'C4ĚĺBDDB102°Ľ"- ▪ BDKMS2Ó,B/īŔ¯"-Ģ"-CB ADå@CB 3.^ Y «DA.īŔ¯$B CMK has_many :data_keys
Űą2Ů( ▪ attr_encrypted /gemŠÒ)+( ▪ ċmodel3attributeDŰą2ŮB personal_info.first_name = ”cLv” personal_info.last_name
= “±ľ” personal_info.save! personal_info = PersonalInfo.find(1) puts personal_info.first_name # => “cLv” puts personal_info.last_name # => “±ľ”
áŶ³d[Tq ▪ ŸŔ¯"( && áŶ;"( => áŶ³2Hash¯"(ıDý] iv.°Ľ ▪ ŸŔ¸Hash¡Ì4/A%BCrypt,+/.
▪ after_save /.PersonalInfo3wQ `/Ŵ2ìB3ě/ñ Class PersonalInfo has_many :personal_info_hashes after_save :save_hashes def save_hashes save_name_hash save_tel_hash save_address_hash …… end def save_name_hash raw_value = last_name + first_name pi_hash = personal_info_hashes.find_or_initialize_by(field_name: 'last_name_and_first_name') pi_hash.hash_value = BCrypt::Engine.hash_secret(raw_value, ENV['HASH_SALT']) pi_hash.save! end
Ş 3 ŀ ▪ ºó¿æ1Ð – §a Þ'0[-,S0ç+#( µ¸q –
§z'ÞÀ¹S ëè0,` ▪ ĵijŢè3?1jxXVDğŤ"8"> ▪ '3ƀš;*<E/ę"8"> – z!æÑn00ì ¸q0ßÖ#( ▪ çÔ/#Ä2*<ž¬ – ÝÅ zÞ0,`!ID/Pass %#( OTP ▪ Ŋºó¿æ1Ð – U`G25N ´Ä0ßÖ#( – Ï.O:0 #( – ^ ceT _ Õ²Ðá0#( – OS'IDN673 ïÛº~#( – u 39@? ã^Ì$#( – Ͱ⠫ ) #( ▪ '3Ŏ – j\B?Cr¥0 +Ók|0Yc&1·Ø#( – ½ # ¶*éÃÝÅ'x±pÜ#( – j\eÊ!¢eÊ),Zybª0#( – ;PB4P>7P=HLP0aåÓ0#( ▪ ºó¿æ1Ð – Rails.roleºóDř – ĵijèðºóDř ▪ ĵij/Ţè.B34ý3role ▪ Ɓ,0²ĉ.Ţèŕđ"(;°Ľ – AWS KMS/attr_encrypted gem.ŸŔ¯"-DB2°Ľ – =Ó®3»ËfVy `ºóDř ▪ Ŋºó¿æ1Ð – tmpfsDõ+-carrierwave gem2hFIvDĀÄ4tmpfs/$B – AWS3ċQzl bz_3xOD°Ľ – WAF=security groupcontainer¯DB3CB] ivDŹB – ¼2IzVYzV /Ł$ ('-')╮ =͟͟͞͞!⸉ – WAF.ňÇ2E5A8$" – Autoscaling ▪ '3Ŏ – ċĹª\ vDżħ+-õ – Lt k UDCDN.ġÉ"-ĩ;C1/Ĝ4 Ŝ – """ – Terraform2?BIzht3Q `¯ŷś4"""
ƅÐĠ2)"-ƈ9(ùŵ ▪ B{ďĻĂ ÷¾´Ė 3â3¥Í¥3?1ƂùôċÖÙÕÊď Ɖ 2ĝ@CB ▪ 3. ĸĦ3ßĒãĄ –
1¼Ú îÒ – 5äíÒ https://www.npa.go.jp/laws/notification/seian/ hoan/hoan20180921-1.pdf
8/:Ćý1/4ĩ;"-1 ▪ čÀÂ¥2BR gV3ú: ▪ §¿æ3µ7Ŧ9 ▪ 'C2$B ŀĬ3 źĮ
– §¢!,¨z!/+UÔb011 – sÉê¿Â600l5J> ▪ î – rspecDBOA90B?C, – RubybinaryF?, – Railsserverless¯»100{K<0" ŻĴ~.4Æŝ2Ġ-)!# https://github.com/f-world21/encryption_sample