AWS Systems Manager

# SSM

## features

  • 全体
    • クイックセットアップ: インスタンスSSMで管理するように自動構成
  • オペレーションの管理
    • Explorer: 運用アイテム情報のダッシュボード(XRXA*)
    • OpsCenter: 運用アイテム(対応が必要なイベント)の管理
  • アプリケーションマネージメント
    • リソースグループ: タグによるサーバ群のグループ管理
    • AppConfig: アプリケーション設定(機能フラグ等)の管理
    • パラメータストア: 設定パラメータの集中管理用データストア
  • アクションと変更
    • Automation
    • Change Calendar: 実行可否を制御するカレンダー
    • メンテナンスウィンドウ: 自動化処理のスケジュールと順序の管理
  • インスタンスとノード
  • 共有リソース
    • ドキュメント

 

## Functions

  • AWS のリソースを把握する
  • インスタンスの中身を把握する
    • SSMインベントリ
      • EC2インスタンスの情報をSSM Inventory で収集 -> S3(マルチアカウントはここで統合) -> Athena -> QuickSight
      • 構成情報を記録し、可視化できる
      • AWS Config に構成情報を送信しインベントリ情報の変更追跡が可能
      • Config Rules で準拠状況をチェック

 

  • 定型作業
    • SSMドキュメント
      • 運用処理を定義し、実行できる
    • 実行方法
      • RunCommand: OSでコマンドを実行
      • Automation: AWSサービス全体のワークフロー
      • ステートマネージャ; 定期実行
        • 定義された状態に保つプロセスを自動化
      • メンテナンスウィンドウ; 定期実行
        • アクションを実行するスケジュールを定義
        • サーバー群に対して定期的に処理を行うためのフレームワーク
          • サービス停止を伴うような比較的重い処理
          • ステートマネージャより細かい制御ができる
      • Change Calendar でこれらを実行できる日を制御
        • 実行可否の判定結果を提供する
        • マルチアカウントで共有が可能
        • SSM Automation に統合済み
      • パッチマネージャー
      • SSMディストリビューター
        • ソフトウエアパッケージを安全に保存し配信
        • 独自のソフトウエアパッケージの配布、インストールが可能

 

  • 非定型作業
    • セッションマネージャー
      • ポートを解放せずにサーバにアクセス可能
      • アクセス制御はIAMユーザに対しIAM Policy で指定
      • アクセス方法
        • SSM Agent経由で直接アクセス
        • SSM Agent でトンネルを作成してSSHなどでアクセス
      • 操作履歴はS3に保存可能
      • 接続履歴もCloudTrail で追える
      • Linux はセッションを開始するOSユーザを指定可能

 

  • アプリケーションの設定管理
    • SSMパラメータストア
      • コンフィグレーションや設定値を顕現別の階層型で保存
        • IAMによるアクセス制御
      • 機密情報をKMSで暗号化
      • パブリックパラメータ
      • 環境変数を他のサービスに渡すことができる
    • SSM AppConfig
      • アプリケーション設定を作成、管理、デプロイをサポート
        • アプリケーションの設定情報を迅速に展開するための機能
        • 環境ごとに異なる設定情報をデプロイできる
          • 設定情報はパラメータストアまたはSSMドキュメント
        • 展開前のバリデーション
        • デプロイ戦略を定義可能(カナリアリリース)

 

## ベストプラクティス

  • 最小限のアクセス顕現
  • VPCエンドポイント
  • ツールを最新に保つ
  • CloudWatch / CloudTrail / AWS Config を使用

 

## 料金

 

## how to

  1. 対象をマネージドインスタンスにする
  2. 対象にSSMエージェントを導入。SSM-Agent SSM API をポーリング(アウトバウンド)する。
    1. インターネット経由のパターン
    2. VPCエンドポイント経由。プライベートネットワークから接続
  3. 対象インスタンス`AmazonSSMManagedInstanceCore` をアタッチ。(これが最低限)

 

## 雑感

たくさんの機能があるので迷うが、blackbelt がまとまっていて理解しやすかった。

運用していて、すでに利用している機能も多いが、使いこなせるようになることで運用をもっと楽にセキュアにできるようになる可能性を感じた。

SSMドキュメントはCloudFormation で書いたりしたが 

GitHub - athagi/ec2-backup 歴史を感じるyml になるんだなぁと思った。