AWS Systems Manager (SSM) は、AWSのクラウドリソースを管理するための統合サービスです。
今回は、AWS Systems Manager (SSM)について、調べた内容を紹介します。
- AWS Systems Manager(SSM)の特徴
- AWS Systems Manager(SSM)の主な機能
- AWS Systems Manager(SSM)の主な機能:Run Command
- AWS Systems Manager(SSM)の主な機能:State Manager
- AWS Systems Manager(SSM)の主な機能:Automation
- AWS Systems Manager(SSM)の主な機能:Inventory
- AWS Systems Manager(SSM)の主な機能:Patch Manager
- AWS Systems Manager(SSM)の主な機能:Maintenance Windows
- AWS Systems Manager(SSM)の主な機能:Parameter Store
- AWS Systems Manager(SSM)の主な機能:Session Manager
- まとめ
AWS Systems Manager(SSM)の特徴
AWS Systems Manager(SSM)の主な特徴と機能は以下の通りです。
- リソース管理:EC2インスタンス、オンプレミスサーバー、その他のクラウドプロバイダーのリソースを一元管理できます。
- 自動化:パッチ適用、ソフトウェアインストール、設定変更などの運用タスクを自動化できます。
- オペレーション管理:インシデント管理、問題の可視化、運用データの収集などができます。
- 変更管理:変更リクエストの承認ワークフロー、変更カレンダー、メンテナンスウィンドウなどを提供します。
- ノード管理:マネージドインスタンスのインベントリ収集、パッチ適用、コンプライアンス管理などができます。
- 共有リソース:ドキュメント、パラメータストア、OpsCenter などの共有リソースを提供します。
- セキュリティ:セッションマネージャーによるセキュアなシェルアクセス、暗号化されたパラメータ管理などのセキュリティ機能があります。
AWS Systems Manager(SSM)の主な機能
AWS Systems Manager(SSM)の主な機能は以下の通りです。
- Run Command: リモートでコマンドを実行
- State Manager: 設定の定期的な適用
- Automation: 複雑なタスクの自動化
- Inventory: ソフトウェアインベントリの収集
- Patch Manager: パッチ適用の管理
- Maintenance Windows: メンテナンス作業のスケジューリング
- Parameter Store: 設定データやシークレットの管理
- Session Manager: インスタンスへのセキュアなアクセス
各機能について、詳しく見ていきましょう。
AWS Systems Manager(SSM)の主な機能:Run Command
AWS Systems Manager (SSM) のRun Commandは、EC2インスタンスやオンプレミスサーバーなどの管理対象ノードに対して、リモートでコマンドを実行できる機能です。
Run Commandの主な特徴と概要は以下の通りです。
- リモート実行
- SSHやRDPを使用せずに、AWSマネジメントコンソールやAPI・CLI経由でコマンドを実行できます。
- 大規模な管理
- 複数のインスタンスに対して同時にコマンドを実行できるため、大規模な環境管理に適しています。
- セキュリティ
- IAMと統合されており、きめ細かなアクセス制御が可能です。
- HTTPS通信を使用し、コマンド実行の履歴も保存されるため、監査にも対応しています。
- 柔軟性
- シェルスクリプト、PowerShellコマンド、Linuxシェルコマンドなど、様々な種類のコマンドを実行できます。
- 事前定義されたコマンド
- AWSが提供する事前定義されたSSMドキュメントを使用して、一般的なタスクを簡単に実行できます。
- カスタムコマンド
- 独自のSSMドキュメントを作成して、カスタマイズされたコマンドを実行することも可能です。
- 実行状況の確認
- コマンドの実行状況をリアルタイムで確認でき、出力結果も確認できます。
- 自動化との連携
- Systems Managerの他の機能(Automation、State Manager、Maintenance Windows)と連携して、より複雑な自動化タスクを実現できます。
Run Commandを使用することで、サーバー管理の効率化、セキュリティの向上、運用の自動化などが可能になります。特に、多数のサーバーを管理する環境や、セキュリティ要件の厳しい環境で有用です。
AWS Systems Manager(SSM)の主な機能:State Manager
AWS Systems Manager (SSM) の State Manager は、AWS リソースを定義された状態に維持するための構成管理サービスです。
マネージドノード(EC2インスタンスやオンプレミスサーバーなど)や他のAWSリソースを、定義された状態に保つプロセスを自動化します。
State Manager の主な特徴と概要は以下の通りです。
- 関連付け (Association)
- リソースに割り当てる設定で、維持したい状態を定義します。
- 例: アンチウイルスソフトウェアのインストールと実行、特定のポートの開閉など。
- 設定を適用するスケジュールとターゲットを指定します。
- スケジューリング
- Cron式やRate式を使用して、関連付けの実行スケジュールを柔軟に設定できます。
- オフセットを指定して、実行タイミングをさらに細かく制御できます。
- ターゲット指定
- タグ、AWS Resource Groups、個別のノードID、またはアカウント内の全マネージドノードを指定可能です。
- SSMドキュメントの使用
- 事前設定されたSSMドキュメントや、カスタムドキュメントを使用して、様々な管理タスクを実行します。
- 自動化
- ソフトウェアのインストール、設定の更新、パッチ適用など、様々な管理タスクを自動化します。
- コンプライアンス管理
- リソースが定義された状態を維持しているかを継続的に確認し、設定のずれを検出・修正します。
- 監査とレポート
- 関連付けの実行履歴や状態変更を記録し、コンプライアンス報告に活用できます。
- 他のAWSサービスとの統合
- EventBridge、S3などと連携し、より高度な自動化や監視を実現できます。
State Managerを使用することで、インフラストラクチャの一貫性を維持し、設定ドリフトを防ぎ、コンプライアンス要件を満たすことができます。
これにより、大規模な環境でも効率的かつ安全なリソース管理が可能になります。
AWS Systems Manager(SSM)の主な機能:Automation
AWS Systems Manager (SSM) の Automation は、AWS リソースの設定や管理タスクを自動化するための機能です。複雑な運用タスクや保守作業を自動化し、効率化することで、人的ミスを減らし、一貫性のあるプロセスを実現します。
Automation の主な特徴と概要は以下の通りです。
- Automation ドキュメント
- 自動化のワークフローを定義する YAML または JSON 形式のドキュメントです。
- 事前定義されたドキュメントの使用や、カスタムドキュメントの作成が可能です。
- 実行環境
- AWS が管理する実行環境で動作するため、インフラストラクチャの管理が不要です。
- AWS API との統合
- AWS サービスの API を直接呼び出すことができ、様々なリソース操作が可能です。
- 柔軟な実行オプション
- オンデマンド実行、スケジュール実行、イベントトリガー実行などが可能です。
- 並列実行と制御
- 複数のリソースに対して同時に実行でき、同時実行数の制御も可能です。
- エラー処理
- エラー発生時の動作を定義でき、ロールバックや代替アクションの実行が可能です。
- 承認ワークフロー
- 重要な変更に対して、手動承認ステップを組み込むことができます。
- 変数とパラメータ
- 実行時に動的に値を設定できる変数やパラメータをサポートしています。
- クロスアカウント・クロスリージョン実行
- 複数のAWSアカウントやリージョンにまたがる自動化が可能です。
- 監査とログ
- 実行履歴が記録され、AWS CloudTrail との統合により詳細な監査が可能です。
Automation を使用することで、AMI の作成、パッチ適用、バックアップ作成、障害復旧など、様々な運用タスクを自動化できます。
これにより、運用効率の向上、一貫性の確保、セキュリティの強化などが実現できます。
AWS Systems Manager(SSM)の主な機能:Inventory
AWS Systems Manager (SSM) の Inventory は、AWS環境内のリソースに関するメタデータを収集、管理、可視化するための機能です。
マネージドノード(EC2インスタンスやオンプレミスサーバーなど)から各種メタデータを収集し、可視化します。リソースの構成、ソフトウェアインベントリ、パッチ状況などを把握し、管理を効率化します。
Inventoryの主な特徴と概要は以下の通りです。
- 収集データ
- OS情報、インストールされたアプリケーション、ネットワーク設定、Windows更新プログラム、システムプロパティなど、様々なメタデータを収集します。
- カスタムインベントリ
- 事前定義されたメタデータ以外に、ユーザー独自のカスタムメタデータを定義・収集することができます。
- データ保存
- 収集されたデータは、Amazon S3バケットに中央集約して保存できます。
- データは暗号化され、セキュリティが確保されます。
- データ分析
- AWS Athenaを使用して、収集されたデータに対してSQLクエリを実行し、分析できます。
- Amazon QuickSightと連携して、データを視覚化することも可能です。
- マルチアカウント・マルチリージョン対応
- 複数のAWSアカウントやリージョンにまたがるリソースのデータを一元管理できます。
- 自動化と定期実行
- State Managerを使用して、定期的にインベントリデータを収集します。
- デフォルトでは30分ごとに実行されますが、カスタマイズも可能です。
- コンプライアンス管理
- 収集したデータを基に、リソースのコンプライアンス状況を確認できます。
- 統合ダッシュボード
- Systems Managerコンソールで、収集したデータの概要を確認できるダッシュボードが提供されています。
Inventoryを使用することで、AWS環境のリソース管理が効率化され、セキュリティとコンプライアンスの向上、運用コストの削減などが実現できます。
特に大規模な環境や複雑なインフラストラクチャを持つ組織にとって、有用なツールとなります。
AWS Systems Manager(SSM)の主な機能:Patch Manager
AWS Systems Manager (SSM) の Patch Manager は、マネージドノードのパッチ適用プロセスを自動化するための機能です。
セキュリティ関連の更新やその他の種類の更新を自動的に適用し、システムを最新の状態に保ちます。
EC2インスタンス、オンプレミスサーバー、IoTデバイスなど、SSMで管理されているノードが対象となります。
Patch Managerの主な特徴と概要は以下の通りです。
- パッチベースライン
- パッチの自動承認ルール、承認済みパッチリスト、拒否されたパッチリストなどを定義します。
- OSごとに異なるベースラインを設定できます。
- パッチグループ
- 類似したパッチ要件を持つノードをグループ化し、効率的に管理します。
- スケジューリング
- メンテナンスウィンドウと連携して、定期的なパッチ適用を自動化できます。
- 柔軟な操作
- スキャンのみ(Scan)や、スキャンとインストール(Scan and install)の操作を選択できます。
- コンプライアンスレポート
- パッチ適用状況を可視化し、コンプライアンス状態を確認できます。
- セキュリティ統合
- Security Hubと連携し、パッチコンプライアンスデータを一元管理できます。
- オンデマンド実行
- 「Patch now」機能を使用して、緊急時に即座にパッチを適用できます。
- ライフサイクルフック
- パッチ適用プロセスの前後に、カスタムアクションを実行できます。
- 詳細なログ
- パッチ適用の詳細なログをS3バケットに保存できます。
- クロスアカウント・クロスリージョン
- AWS Organizationsと統合し、複数のアカウントやリージョンにまたがるパッチ管理が可能です。
Patch Managerを使用することで、大規模な環境でも効率的にセキュリティパッチを適用し、システムの脆弱性を低減できます。
また、コンプライアンス要件を満たすためのパッチ管理プロセスを自動化することができます。
AWS Systems Manager(SSM)の主な機能:Maintenance Windows
AWS Systems Manager (SSM) の Maintenance Windows は、管理対象ノードに対して潜在的に影響のあるアクションを実行するためのスケジュールを定義する機能です。
システムのメンテナンス作業を計画的に実行し、サービスの中断を最小限に抑えます。
パッチ適用、ドライバーの更新、ソフトウェアのインストールなどの作業をスケジュール化します。
対象リソースは、EC2インスタンス、オンプレミスサーバー、その他のAWSリソース(S3バケット、SQSキュー、KMSキーなど)です。
主な特徴と概要は以下の通りです。
- スケジューリング
- メンテナンス作業の実行スケジュール、最大実行時間、タイムゾーンを設定できます。
- 特定の日付範囲内でのみ実行するよう制限することも可能です。
- ターゲット登録
- メンテナンス作業の対象となるリソースをターゲットとして登録します。
- タスク登録
- 実行するタスク(Run Command、Automation、AWS Lambda、Step Functions)を登録します。
- 優先順位設定
- 複数のタスクがある場合、優先順位を設定して実行順序を制御できます。
- 同時実行制御
- 同時に実行するインスタンス数や割合を指定し、並列実行を制御できます。
- エラー制御
- エラーが発生したインスタンス数が閾値に達した場合、操作を停止するよう設定できます。
- 統合機能
- Patch Managerと連携してパッチ適用を自動化できます。
- IAMと連携してアクセス制御を行います。
- 監査とログ
- 実行履歴を記録し、後で確認・監査することができます。
- タグ付け
- メンテナンスウィンドウにタグを付けて管理を容易にできます。
Maintenance Windowsを使用することで、計画的かつ自動化されたシステムメンテナンスが可能になり、運用効率の向上とサービスの安定性確保に貢献します。
特に大規模な環境や複雑なインフラストラクチャを持つ組織にとって、重要な管理ツールとなります。
AWS Systems Manager(SSM)の主な機能:Parameter Store
AWS Systems Manager (SSM) の Parameter Store は、設定データ管理と機密管理のための安全な階層型ストレージを提供するサービスです。
設定データ、シークレット、その他の機密情報を安全に保存し、一元管理します。
主な特徴と概要は以下の通りです。
- データ型
- String: 通常のテキストデータ
- StringList: カンマ区切りのリスト
- SecureString: KMSで暗号化された機密データ
- 階層構造
- パラメータを階層的に整理し、管理できます。
- バージョン管理
- パラメータの変更履歴を追跡し、以前のバージョンにロールバックできます。
- 暗号化
- AWS KMSと統合し、機密データを暗号化して保存できます。
- アクセス制御
- IAMと統合し、きめ細かなアクセス制御が可能です。
- 他のAWSサービスとの統合
- EC2、ECS、Lambda、CloudFormation、CodeBuild、CodePipelineなど、多くのAWSサービスと統合できます。
- 変更通知
- Amazon EventBridgeと連携し、パラメータの変更通知を設定できます。
- クロスアカウント共有
- 複数のAWSアカウント間でパラメータを共有できます。
- 監査とログ
- AWS CloudTrailと統合し、パラメータへのアクセスや変更を記録できます。
- コスト効率
- 標準パラメータは無料で使用でき、高度なパラメータは追加料金で利用可能です。
- プログラマティックアクセス
- AWS CLI、SDK、APIを通じてパラメータにアクセスできます。
Parameter Storeを使用することで、アプリケーションの設定管理を簡素化し、セキュリティを向上させ、運用効率を高めることができます。
特に大規模な環境や複雑なインフラストラクチャを持つ組織にとって、重要な管理ツールとなります。
AWS Systems Manager(SSM)の主な機能:Session Manager
AWS Systems Manager (SSM) の Session Manager は、EC2インスタンスやオンプレミスサーバーなどの管理対象ノードにセキュアにアクセスするためのフルマネージド機能です。
Session Managerの主な特徴と概要は以下の通りです。
- セキュアなアクセス
- インバウンドポートを開放せずに、管理対象ノードにアクセスできます。
- SSHキーの管理が不要です。
- 踏み台サーバー(バスティオンホスト)が不要になります。
- ブラウザベースのアクセス
- AWSマネジメントコンソールから直接、インタラクティブなシェルセッションを開始できます。
- 専用のSSHクライアントソフトウェアが不要です。
- アクセス制御
- IAMポリシーを使用して、ユーザーごとにアクセス権限を細かく制御できます。
- 監査とログ記録
- セッションアクティビティを AWS CloudTrail で監査できます。
- セッションログをAmazon S3やAmazon CloudWatch Logsに保存できます。
- クロスプラットフォーム対応
- Linux、macOS、Windowsの管理対象ノードをサポートしています。
- AWS CLIとSDKのサポート
- プログラムによるセッション管理が可能です。
- 暗号化
- セッションデータをAWS KMSを使用して暗号化できます。
- VPCエンドポイント対応
- VPC内のプライベートサブネットにあるインスタンスにもアクセスできます。
- 設定可能なシェルプロファイル
- セッション開始時の環境変数設定やコマンド実行をカスタマイズできます。
Session Managerを使用することで、セキュリティを向上させつつ、管理対象ノードへのアクセスを簡素化し、運用管理を効率化することができます。
まとめ
今回は、AWS Systems Manager (SSM) について、調べた結果を紹介しました。
SSMを利用することで、AWSリソースの管理を効率化し、運用の自動化、セキュリティの向上、コスト削減などのメリットを得ることができます。
様々な機能を組み合わせて、組織のニーズに合わせたカスタマイズされた管理ソリューションを構築できます。
参考になれば、幸いです。
以上になります。ありがとうございました。
参考
https://dev.classmethod.jp/articles/aws-systems-manager-all-you-need-to-know-japanese
https://zenn.dev/issy/articles/zenn-ssm-overview
https://qiita.com/WisteriaWave/items/674996391c1de0552c06
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/what-is-systems-manager.html
https://qiita.com/haraitai00/items/1ff4da073dfdde214f0b
https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-state.html
https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html
https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html
https://docs.aws.amazon.com/en_us/systems-manager/latest/userguide/patch-manager.html
https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows.html
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-parameter-store.html
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html
コメント