機密情報をKMS+RDS,S3とParameter Storeを使って保存した話

機密情報をKMS+RDS,S3とParameter Storeを使って保存した話

機密性が高い情報をAWSに保存するために、KMSを活用してRDS, S3, Parameter Storeに保存したという話

Dd5ce24e9cc88d7a491aec105e558d7e?s=128

MATSUURA, yosuke

February 02, 2020
Tweet

Transcript

  1. 2.

    自己紹介 • 蟒蛇 • 名前 松浦 庸介 • • 所属

    株式会社  • 表紙のキャラクターは弊社サービス のマスコット「てんちょ」で す •
  2. 3.

    なのでいきなりオチから • は 内で暗号鍵を統一的に取り扱うための機能 • 機密情報を種類別にそれぞれ以下の方法で保存している • クレデンシャル ( の透過的暗

    号化) • 個人情報(テキスト) (自前で暗号化) • 個人情報( ) (自前で暗号化)  アンチパターンによれば、 型で に入れた方がよかったらし い・・・ • を呼び出すときの キーは、 でもよいが が便利
  3. 4.

    と の関係 • はその名の通りパラメーターを保 存する  の は で透過的に暗号化される 

    は とほぼ同じサービス • は暗号鍵を管理するサービス  暗号化は自分でやるか などマネージドサービスで行う  経由で鍵を生成、取得できる  この表現は厳密ではないので、参考資料を読んでください
  4. 5.

    機密性が高い情報を格納したい • 「機密性が高い情報」といっても タイプある  設定情報  たとえば、各種 のクレデンシャルや のパスワード

     ユーザー入力情報  たとえば、クレジットカード番号などテキスト  免許証の画像など • 設定情報は • ユーザー入力情報のうち、テキストは も使えるが、 バックアップを考えると のほうがよかった • は暗号化して か
  5. 6.

    鍵を取得するための キーは • の鍵は で生成・取得する • を利用するための キーの管理はどうすれば • に入れてもよいが、

    のほうがお すすめ  キーで認証するのではなく、インスタンスメタデータから一時的な認証情 報を生成する • に限らず、 などでも キーより が おすすめ  キーの管理は辛いですよね
  6. 9.

    を に保存するのが推奨され ない理由は • 操作の原子性を保証するため • 確かに は に保存した方がストレージコストが安く、削除した容 量が課金されないためコストメリットがあります。

    • 一方で と違って の書き込みと の書き込みのどちらかが失敗 したときのエラー処理が必要になります。 で トランザクションで 処理した場合はこの心配がいりません。 • コストと開発効率を天秤にかけてどちらかを選べばよいかと思います。
  7. 10.

    のデータはすべて暗号化して いる • カラムを暗号化しているのは一部のデータだけですが、 クラス ター全体に透過的暗号化を行っています • 暗号化したカラムは検索などもできないので、重要なデータが入ってい るカラムだけ暗号化して、他は検索できるように平文カラムになってい ます。

    • クラスターや ボリュームの透過的暗号化はあまり意味がない気 もしているのですが、運用コストはほとんど変わらないので有効化して います。もしかしたら、対外的にアピールできる日が来るのかもしれま せん・・・