Slide 1

Slide 1 text

クラウド KMS の活用
 1
 TOKYO BLOCKCHAIN TECH MEETUP 2022
 @odan3240


Slide 2

Slide 2 text

自己紹介
 ● Twitter: @odan3240
 ● 五反田にある会社でソフトウェアエンジニア(後述)
 
 ● 最近の興味
 ○ TypeScript
 ○ Seaport
 ○ EIP-2771: Secure Protocol for Native Meta Transactions 
 ○ コントラクトウォレット
 2


Slide 3

Slide 3 text

宣伝
 ● 普段のお仕事で開発しているサービス
 ● ユニキス ガレージ
 ○ NFT の生成ができる SaaS
 ○ NFT の生成は API もあるので
 既存サービスとのインテグレーションも可能
 
 ● ユニマ
 ○ 生成した NFT を販売するマーケット
 
 3


Slide 4

Slide 4 text

Web サービス開発における秘密鍵管理
 ● サービスの要件によっては
 バックエンドからトランザクション発行が必要
 
 
 
 ● 秘密鍵管理を環境変数で行った場合の課題
 ○ 誰かがこっそり秘密鍵を MetaMask にインポート可能
 4


Slide 5

Slide 5 text

クラウドの KMS
 ● AWS/GCP/Azure などのクラウドサービスには
 KMS (Key Management Service) というサービスがある
 ○ AWS Key Management Service
 ○ Cloud KMS
 ○ Azure Key Vault
 ● 各 KMS は Ethereum が使用している
 楕円曲線暗号の secp256k1 サポートしている
 5


Slide 6

Slide 6 text

クラウドの KMS
 ● クラウドの KMS で秘密鍵管理すると都合が良い
 ○ エンジニア含めて秘密鍵自体に誰もアクセスできない
 
 
 ○ 誰が秘密鍵で署名したかログが残る
 ■ API 呼び出しの監査ログは保存されている
 6


Slide 7

Slide 7 text

cloud-cryptographic-wallet
 ● https://github.com/odanado/cloud-cryptographic-walle t
 ● クラウドの KMS にある秘密鍵を web3.js や ethers から 扱うためのライブラリ
 7


Slide 8

Slide 8 text

cloud-cryptographic-wallet
 ● 対応ライブラリ
 ○ web3.js
 ○ ethers
 ○ hardhat (開発中)
 ● 対応クラウド
 ○ AWS
 ○ GCP
 8


Slide 9

Slide 9 text

まとめ
 ● 生の秘密鍵を開発で運用すると
 セキュリティ的な不安要素がある
 ● 各種クラウドの KMS の利点
 ○ Ethereum の秘密鍵の形式に対応している
 ○ セキュアに秘密鍵を使用できる
 ● cloud-cryptographic-wallet を使用すると
 クラウドの KMS の秘密鍵で
 Ethereum 関係のライブラリを利用できる
 9