AWS Systems Manager で実現する SSH レスでセキュアなクラウド運用
by
yuu26
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 採用 🔍