Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

2 株式会社 Kyash SRE チーム (Tech Lead) SIer (オンプレミスのインフラ構築) → Web サービス企業2社 (SRE) → 現職 副業として業務委託の SRE や LINE チャットボットの開発など m_on_yu yuu26jp 上原 佑介

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

4 4 Kyash について

Slide 5

Slide 5 text

5 スマートフォンアプリと連動する Visa カード アプリのインストールから1分ですぐ使える Kyash Card (物理カード) を発行して実店舗でも使える 決済するとプッシュ通知が届いて履歴にすぐ反映 紛失時などはアプリからカードロック可能 Visa のタッチ決済対応 QUICPay+ (Apple Pay / Google Pay) 対応 Kyash とは

Slide 6

Slide 6 text

6 特徴:システムへの入口が2つある ● モバイルアプリ ● 決済ネットワーク ※ ECS に順次移行中 Kyash のシステム構成

Slide 7

Slide 7 text

7 カード会社のシステムはセキュリティ基準 PCI DSS への準拠が必要 ● サーバやデータ(特にカード情報)への強固なアクセス制御 ● カード情報への全アクセスの追跡及び監視 ● 取得した監査証跡の保護(ログ自体の監視&改ざん検知など) など、大きく12の要件が定められている Kyash のシステムに求められる要件

Slide 8

Slide 8 text

8 PCI DSS の要件を維持するにあたり以下の課題があった ● 開発メンバの増減に合わせた SSH ユーザの更新が大変 ● ログや証跡保護のための運用負荷が高い ○ 操作内容をもれなく取得 ○ 万が一のログ改ざん時の検知 ○ ログ管理サーバの運用 これらの問題を解決するために AWS Systems Manager を導入 Kyash のシステムにおける運用課題

Slide 9

Slide 9 text

9 9 AWS Systems Manager について

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

11 SSM セッションマネージャーの仕組み インスタンス内の SSM エージェントが Systems Manager と連携して動作する ● 必要な通信は HTTPS Outbound のみ (ポート開放不要) ● 開発者は SSM を経由してサーバにアクセスする

Slide 12

Slide 12 text

12 SSM セッションマネージャーのデモ https://www.youtube.com/watch?v=cc7jLW0FzzI ※下の概要欄からリンクに飛べます

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

16 ● SSH ポートの開放が不要 ● SSH ユーザや鍵の管理が不要 ● 踏み台サーバが不要 ● プライベートサブネットのインスタンスに直接接続できる ● IAM を用いた権限管理ができる ● 証跡が AWS CloudTrail / Amazon CloudWatch / Amazon S3 に残る ● (CloudTrail に残るので)GuardDuty の監視対象になる ● ログを改ざんされる心配がない SSM セッションマネージャーを使うと何が嬉しいか

Slide 17

Slide 17 text

17 セッションマネージャーでのアクセスは内部的に AWS の API を呼んでいる → IAM を使った権限管理が可能 ● リソースタグで接続先を絞る ● メンテナンス時間帯のみアクセスを許可する ● SAML 認証のロールと組み合わせるとさらに便利 ○ ロール単位で接続先を制限 ○ 異動や入退社があっても自動反映 IAM を用いた権限管理

Slide 18

Slide 18 text

18 【Before】各サーバから td-agent でログを集約して保管 💀 ログ集約サーバ&ログ管理サーバが毎週のように不安定になっていた 操作ログ・証跡が自動記録される

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

21 インスタンスに IAM ポリシーを付与 → AmazonSSMManagedInstanceCore → CloudWatch Logs への Put 権限など 必要に応じて VPC エンドポイントを追加 → ssm, ssmmessages, ec2 サーバに SSM エージェントをインストール → Amazon Linux にはプリインストール済 セッションマネージャーの始め方 (サーバ)

Slide 22

Slide 22 text

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 で接続! セッションマネージャーの始め方 (クライアント)

Slide 23

Slide 23 text

23 23 運用上の工夫

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

25 shell function の動作デモ https://www.youtube.com/watch?v=p8Bb9MfCMog ※下の概要欄からリンクに飛べます

Slide 26

Slide 26 text

26 SSM の通信を使ってサーバに SSH することができる → SSH ポートフォワードの通信経路としても利用可能 ● Linux には SSM で直接接続 ● RDS やリモートデスクトップは 踏み台経由のポートフォワード ● 踏み台もポート開放不要 SSH ポートフォワードとして利用する

Slide 27

Slide 27 text

27 27 まとめ

Slide 28

Slide 28 text

28 ● SSH の管理が不要になる ● IAM だけで権限管理ができる ● 証跡や操作ログがしっかりと残る ● ポートを閉じれるのでよりセキュアになる ● 監査対応の工数を削減できる✨ EC2 の運用コストを下げるにはセッションマネージャーがおすすめ! まとめ: SSM セッションマネージャーはいいぞ

Slide 29

Slide 29 text

29 様々な職種で採用中です! Kyash で一緒に働きませんか? Kyash 採用 🔍