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

AWS Systems Manager で実現する SSH レスでセキュアなクラウド運用

7fb9a8ddaea2ddc368f12a5d08cea86a?s=47 yuu26
March 25, 2021

AWS Systems Manager で実現する SSH レスでセキュアなクラウド運用

7fb9a8ddaea2ddc368f12a5d08cea86a?s=128

yuu26

March 25, 2021
Tweet

Transcript

  1. AWS Systems Manager で実現する SSH レスでセキュアなクラウド運用 2021年3月25日 AWS Startup Tech

    Meetup Online #3
  2. 2 株式会社 Kyash SRE チーム (Tech Lead) SIer (オンプレミスのインフラ構築) →

    Web サービス企業2社 (SRE) → 現職 副業として業務委託の SRE や LINE チャットボットの開発など m_on_yu yuu26jp 上原 佑介
  3. 3 • Kyash について • AWS Systems Manager (SSM) について

    • SSM セッションマネージャーの仕組み • SSM セッションマネージャーの始め方 • 運用上の工夫 Kyash の SSM 運用について CodeZine にも寄稿しています! https://codezine.jp/article/detail/12714 ※下の概要欄からリンクに飛べます 本日お話すること
  4. 4 4 Kyash について

  5. 5 スマートフォンアプリと連動する Visa カード アプリのインストールから1分ですぐ使える Kyash Card (物理カード) を発行して実店舗でも使える 決済するとプッシュ通知が届いて履歴にすぐ反映

    紛失時などはアプリからカードロック可能 Visa のタッチ決済対応 QUICPay+ (Apple Pay / Google Pay) 対応 Kyash とは
  6. 6 特徴:システムへの入口が2つある • モバイルアプリ • 決済ネットワーク ※ ECS に順次移行中 Kyash

    のシステム構成
  7. 7 カード会社のシステムはセキュリティ基準 PCI DSS への準拠が必要 • サーバやデータ(特にカード情報)への強固なアクセス制御 • カード情報への全アクセスの追跡及び監視 •

    取得した監査証跡の保護(ログ自体の監視&改ざん検知など) など、大きく12の要件が定められている Kyash のシステムに求められる要件
  8. 8 PCI DSS の要件を維持するにあたり以下の課題があった • 開発メンバの増減に合わせた SSH ユーザの更新が大変 • ログや証跡保護のための運用負荷が高い

    ◦ 操作内容をもれなく取得 ◦ 万が一のログ改ざん時の検知 ◦ ログ管理サーバの運用 これらの問題を解決するために AWS Systems Manager を導入 Kyash のシステムにおける運用課題
  9. 9 9 AWS Systems Manager について

  10. 10 AWS におけるインフラ運用を支援するためのサービス群 機密情報を管理する「パラメータストア」でも有名 SSM の機能の一つとして「セッションマネージャー」が提供されている • サーバ内にアクセスして任意のコマンドを実行できる • 操作ログはすべて自動的に記録される

    • SSH ポートの開放が不要 AWS Systems Manager (SSM) とは
  11. 11 SSM セッションマネージャーの仕組み インスタンス内の SSM エージェントが Systems Manager と連携して動作する •

    必要な通信は HTTPS Outbound のみ (ポート開放不要) • 開発者は SSM を経由してサーバにアクセスする
  12. 12 SSM セッションマネージャーのデモ https://www.youtube.com/watch?v=cc7jLW0FzzI ※下の概要欄からリンクに飛べます

  13. 13 ブラウザしか使えない環境でもインスタンスに入れる コンソールからも利用可能

  14. 14 誰が、いつ、どのインスタンスに、何分、アクセスしたか記録が残る セッション履歴

  15. 15 セッションログ セッション内で実行されたコマンドとその応答がすべて記録される

  16. 16 • SSH ポートの開放が不要 • SSH ユーザや鍵の管理が不要 • 踏み台サーバが不要 •

    プライベートサブネットのインスタンスに直接接続できる • IAM を用いた権限管理ができる • 証跡が AWS CloudTrail / Amazon CloudWatch / Amazon S3 に残る • (CloudTrail に残るので)GuardDuty の監視対象になる • ログを改ざんされる心配がない SSM セッションマネージャーを使うと何が嬉しいか
  17. 17 セッションマネージャーでのアクセスは内部的に AWS の API を呼んでいる → IAM を使った権限管理が可能 •

    リソースタグで接続先を絞る • メンテナンス時間帯のみアクセスを許可する • SAML 認証のロールと組み合わせるとさらに便利 ◦ ロール単位で接続先を制限 ◦ 異動や入退社があっても自動反映 IAM を用いた権限管理
  18. 18 【Before】各サーバから td-agent でログを集約して保管 💀 ログ集約サーバ&ログ管理サーバが毎週のように不安定になっていた 操作ログ・証跡が自動記録される

  19. 19 【After】自動的に S3 / CloudWatch Logs に記録される ✨ ログサーバの運用とログのお守りから解放された 操作ログ・証跡が自動記録される

  20. 20 20 セッションマネージャーの始め方

  21. 21 インスタンスに IAM ポリシーを付与 → AmazonSSMManagedInstanceCore → CloudWatch Logs への

    Put 権限など 必要に応じて VPC エンドポイントを追加 → ssm, ssmmessages, ec2 サーバに SSM エージェントをインストール → Amazon Linux にはプリインストール済 セッションマネージャーの始め方 (サーバ)
  22. 22 IAM に SSM セッションマネージャー権限を付与 https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/getting-started-restr ict-access-examples.html ※下の概要欄からリンクに飛べます AWS CLI のセッションマネージャー用プラグインをインストール

    (コンソールから試す場合は不要 ) https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-w orking-with-install-plugin.html ※下の概要欄からリンクに飛べます aws ssm start-session --target <instance id> で接続! セッションマネージャーの始め方 (クライアント)
  23. 23 23 運用上の工夫

  24. 24 ssm start-session コマンドを楽にする セッション開始時にインスタンス ID の指定が必要 aws ssm start-session

    --target i-xxxxxxxx インスタンスはデプロイの度に入れ替わるため毎回調べるのは大変 → 接続先を選ぶだけでアクセスできる shell function を配布 ざっくり概要 1. aws ssm describe-instance-information で 接続可能なインスタンス ID の一覧を取得 2. aws ec2 describe-instances でインスタンス詳細を取得 3. IP アドレスやタグなどを抽出 4. peco に渡して選択可能にする 5. 選択されたインスタンスに対して aws ssm start-session
  25. 25 shell function の動作デモ https://www.youtube.com/watch?v=p8Bb9MfCMog ※下の概要欄からリンクに飛べます

  26. 26 SSM の通信を使ってサーバに SSH することができる → SSH ポートフォワードの通信経路としても利用可能 • Linux

    には SSM で直接接続 • RDS やリモートデスクトップは 踏み台経由のポートフォワード • 踏み台もポート開放不要 SSH ポートフォワードとして利用する
  27. 27 27 まとめ

  28. 28 • SSH の管理が不要になる • IAM だけで権限管理ができる • 証跡や操作ログがしっかりと残る •

    ポートを閉じれるのでよりセキュアになる • 監査対応の工数を削減できる✨ EC2 の運用コストを下げるにはセッションマネージャーがおすすめ! まとめ: SSM セッションマネージャーはいいぞ
  29. 29 様々な職種で採用中です! Kyash で一緒に働きませんか? Kyash 採用 🔍