JAWS Days 2019メモ

AWS IoTのベストプラクティス」それホント? 10:10~

  • ソニー森本さん、AWS園田さん

  • 事例:マルチファンクションライト

    • スピーカーもついてる、家電の操作もできる
  • 1 デバイス証明書の管理

    • どうやって個別の鍵をセキュアに埋め込むか?
    • あとで配信する場合は?FOTAはできるけど
    • ファームウェア配信からのCSR送信で解決
      • 秘密鍵が外に出ないのがポイント!
      • でもなりすましとかいろんな対策はしている
    • 正攻法は工場で組み込む(セキュアな場所に格納できるので)、だけど。。
    • DeviceBootstrapパターン
      • 証明書が漏れたときのリスクも分析しておく!!
        • 個別にAWS IoT側でBANできる
        • Device Defenderで複数のクライアントIDが同じ証明書を使っていることは検知できる!
  • 2 WebAPIも使いたいんだけど

    • AWS IoTの経路を使えばいいが・・・
    • データ分析基盤に送るとかはやっぱりWebAPIへ投げたい
    • 双方向でやる必要がないログとか、まとめて送りたいとかはWebAPIがいい!
    • APIの認証を作り込む必要あり。
    • ただ、MQTTSを使ったほうがTLSハンドシェイクを抑えられて省電力
  • 余談:AWS IoTのお値段が高い!(高かった)話

    • 2018年にいきなり安くなったそうですw
      • メッセージサイズが512Byteから5KBに!(値段で言えば10分の1)
      • 使ったコンポーネントごとに課金、で安くなった
      • メッセージブローカを経由しないメッセージは更に安く(クラウドに上げさえすれば良いデータ)
  • 3 IoT CoreのLogging

    • AWSIoTLogsV2
      • JSONログになった!
      • Logs Insightと相性がいい
        • クエリ速度速いけどパケ死に注意!
        • なぜ速いかは「企業努力」www
  • 4 大量のメッセージ送信

    • 緊急地震速報みたいなユースケース
    • コネクションあたりの秒間Publish数の上限緩和はできない
    • アカウント単位の秒間Publish数は相談可能とのこと
    • なので、Topicを分けるのがプラクティス
    • 送りっぱなしでACKは返さない、送ったあとAPI叩くとかすると受け側が死ぬので注意!
  • 5 コネクションの切断検知

    • シーリングライトの壁スイッチ問題
      • スイッチオフすると主電源が落ちる
    • LWTをサポートしているのでこれを拾ってステータスをレポートする!
      • Alexaではこの対応ができてないとスキルの審査が通らないよ
      • ただリアルタイムではないので・・・
  • 6 Shadowの使い方

    • オフライン時にデバイスへのメッセージ送信が不要なので、Desired使わずにシンプルにできる
    • エラーを返すべきケースとか、1つのコマンドで複数デバイスが動く、などはShadowでなく
    • MQTTのPub/Subがいいシナリオ

SAに相談するのがいいよ!で締め。IoTはアップデートも速いので。

RDSリファクタリングと異種間DB移行の戦い - Amazon DMSを使った止めずにリファクタリングする手法

  • オミカレ 曽根壮大さん
  • 満席!人気セッション!
  • 資料はそーだいさんのブログで既に公開されているとのこと

    • すでに見たやつかも
  • 婚活サービス、8年もの、これのDBリファクタリング

  • 趣のある謎のデータww
  • 非正規化してパフォーマンスあがるのはSelectだけ。コードは複雑化するはUpdateは遅くなるわ。

  • Refactoring Database 英語の本はまだある、日本語はピアソンショックで絶版、プレミアついてる

  • Aurora使うとOSSではないので最悪心中のリスクがあるのでRDS for - PostgreSQLを採用
    • Postgreチョットデキルのでw
  • 商用は高いし(GoledenGateとかな)、OSSは運用コスト高い(作った人しかわからん)しサポート少ないし、でDMS

実際のところ

  • DMSのレプリケーションは数秒は普通に遅延する
  • かっちりやりたいトランザクションとかは厳しい
  • そこをAPI
  • APIのいいところはテストが書ける!
  • カナリヤリリースできる、ロールバックしやすい
    • 安心感が違う
    • 既存がでかすぎてロジックがよくわからないときにも
  • DMSは一時的な利用を想定したものなので、常時上げておくといろいろ不都合があるお話
    • リードレプリカの昇格はMackerelで検知してDMSのCFnを書き換えるようなタスクを書いたとか
  • RDSのログを監視しよう

    • 当時、RDS for PostgreSQLはCloudWatch Logsに対応してなかったそう
    • Aurora(Postgre互換)は今もない模様
    • なので、MackerelプラグインPHPで書いたっぽいお話
  • MySQLのZero Dateへの止めどない怒りw

  • UTCで揃えておいたほうがいい話

DBのせいでアプリコードがおかしくなってきたら、覚悟を決めてDBをリファクタリング

  • Q:ZeroDateどういれた?
    • A:マイナスインフィニティ、1年1月1日、UnixTime初期値などが考えられる
    • ORマッパーの対応、誕生日とかのからみで1年1月1日に。

ランチセッション3つ

気になるやつがそろったところをまとめて聞く

  • Spotinst 日商エレクトロニクス宮野さん
    • Spotinstすごく気になる
  • Teraform TIS横井さん
    • 解約時のリソース削除は手動でやりたくない、たしかに。
  • セキュリティテストの自動化 シノプシス伊藤さん

至高の CI/CD パイプラインを実現する5つの約束

  • ポジティブな Toriさん 小西 宏樹さん

  • 立ち見も満席の人気セッション!

    • 飛べない鳥さんw
    • 事前に録画した動画を流す形式
  • つい手動でやりがちな作業を断固として拒否する強い気持ちが重要

  • ビジネス層への理解を得ること、そのために必要なメトリクスをとって見えるようにしておこう

AWS Transit Gateway を使った新しいセキュリティ手法を試してみた

  • F5 伊藤 悠紀夫さん 39歳前厄

  • 便利になる一方で全てがつながるとセキュリティに問題あり

  • Reference Architectureも発表されている
  • セキュリティ用のVPCを用意する
    • そこにF5製品で実装したよというお話(したよというか紹介)
  • F5 Big-IpのWAF機能
    • ログはAWS Security Hubに対応しているので、Hubで集中管理できる
  • AWS WAFのマネージドルールにF5のエンジンがあるよ
    • 本日イチオシはボット対策ルール
    • POSTのペイロードまでは見れないが
  • OutboundのURLフィルタルールもF5で

    • Squidを自前で立てると大変(性能面とか、フィルタの柔軟性)
  • お客様事例:PIEM様 ブライダル業務効率化アプリ

    • 機微情報を扱うので情報漏えいは絶対にできない
  • お客様事例:某B2C検索サイト  - DDoSやBot攻撃でランニングコストを増加させない

AWSセキュリティ入門】徒然なるままに責任共有モデルの下から上までそこはかとなく解説

  • 大竹 孝昌さん

  • 早めに終わったので最後の10分ぐらいを聞く

  • 資料いい感じだった・・・社内に見せたい
  • 「これはセキュリティの基本なので。左手は添えるだけ。」

PenTesterが知っている危ないAWS環境の共通点 ~攻撃者視点よりお届けする狙われやすいAWSの穴~

  • 洲崎 俊さん、一ノ瀬 太樹さん、北原 憲さん

  • 狙うならやっぱりクレデンシャル!

  • キーは特に注意、の件。ローカルでも安全ではない。
  • SSRFでメタデータが取れる件。
  • 窃取されたクレデンシャルから、さらにIAMポリシーの不備で権限昇格される例。

    • Attach*Policyが付与されている場合
    • PassRole,CreateFunction,InvokeFunctionからの昇格
  • Pacuという攻撃デモンストレーションツール

    • これでPassRoleからCreateFunction,InvokeFunctionで昇格する
    • デモでは奪ったユーザーがPassできるRoleに test_lambda_adminがあり、 それがAdministratorAccessのPolicyがあるため、なんでもできてしまう
      • 奪ったユーザーのロールにAdminを付与する
    • さらに新規のアクセスキーを作ってバックドアにする
    • Admin権限があればSystemsManagerでOS侵入などもツールで簡単にできてしまう
  • アプローチ

    • 漏洩の防止、悪用の抑制、悪用の検知
    • IAMのベストプラクティスに従って対策しましょう
    • ツールも活用
      • AWS TA
      • classmethod insightwatch
      • netflix security monkey
    • 異常検知は「普段の状態」を知っている必要がある
      • 普段からログを見ること大事
      • GuardDutyも活用(とりあえず入れる、でもいいぐらい)

AWS AllStars

ちゃんと時間内に終わって感動したw