Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022

クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022

odanado
PRO

July 12, 2022
Tweet

More Decks by odanado

Other Decks in Programming

Transcript

  1. クラウド KMS の活用

    1

    TOKYO BLOCKCHAIN TECH MEETUP 2022

    @odan3240


    View Slide

  2. 自己紹介

    ● Twitter: @odan3240

    ● 五反田にある会社でソフトウェアエンジニア(後述)


    ● 最近の興味

    ○ TypeScript

    ○ Seaport

    ○ EIP-2771: Secure Protocol for Native Meta Transactions 

    ○ コントラクトウォレット

    2


    View Slide

  3. 宣伝

    ● 普段のお仕事で開発しているサービス

    ● ユニキス ガレージ

    ○ NFT の生成ができる SaaS

    ○ NFT の生成は API もあるので

    既存サービスとのインテグレーションも可能


    ● ユニマ

    ○ 生成した NFT を販売するマーケット


    3


    View Slide

  4. Web サービス開発における秘密鍵管理

    ● サービスの要件によっては

    バックエンドからトランザクション発行が必要




    ● 秘密鍵管理を環境変数で行った場合の課題

    ○ 誰かがこっそり秘密鍵を MetaMask にインポート可能

    4


    View Slide

  5. クラウドの KMS

    ● AWS/GCP/Azure などのクラウドサービスには

    KMS (Key Management Service) というサービスがある

    ○ AWS Key Management Service

    ○ Cloud KMS

    ○ Azure Key Vault

    ● 各 KMS は Ethereum が使用している

    楕円曲線暗号の secp256k1 サポートしている

    5


    View Slide

  6. クラウドの KMS

    ● クラウドの KMS で秘密鍵管理すると都合が良い

    ○ エンジニア含めて秘密鍵自体に誰もアクセスできない



    ○ 誰が秘密鍵で署名したかログが残る

    ■ API 呼び出しの監査ログは保存されている

    6


    View Slide

  7. cloud-cryptographic-wallet

    ● https://github.com/odanado/cloud-cryptographic-walle
    t

    ● クラウドの KMS にある秘密鍵を web3.js や ethers から
    扱うためのライブラリ

    7


    View Slide

  8. cloud-cryptographic-wallet

    ● 対応ライブラリ

    ○ web3.js

    ○ ethers

    ○ hardhat (開発中)

    ● 対応クラウド

    ○ AWS

    ○ GCP

    8


    View Slide

  9. まとめ

    ● 生の秘密鍵を開発で運用すると

    セキュリティ的な不安要素がある

    ● 各種クラウドの KMS の利点

    ○ Ethereum の秘密鍵の形式に対応している

    ○ セキュアに秘密鍵を使用できる

    ● cloud-cryptographic-wallet を使用すると

    クラウドの KMS の秘密鍵で

    Ethereum 関係のライブラリを利用できる

    9


    View Slide