SSM

【VPC外リージョンサービス】

SSM(Systems Manager)は、AWS環境全体の運用を効率化する統合運用基盤です。

Patch Manager(パッチマネージャー) によるパッチ管理、Inventory(構成情報収集)による構成情報の収集、Run Command(コマンド一括実行) によるリモートコマンド実行、そして Automation(運用手順自動化) による運用タスクの自動化を提供します。

Session Manager(セッションマネージャ) を使用することで、SSHを使わずにEC2やオンプレミスサーバーへ安全にシェルアクセスやポートフォワードができ、運用のセキュリティと監査性を高めることができます。State Manager(状態管理) は、サーバーやコンテナの設定状態をポリシーで維持し、構成のドリフト(設定のずれ)を防止します。

Parameter Store(構成値保管) を利用してアプリケーション設定や認証情報を安全に管理し、Distributor(ソフトウェア配布) により社内アプリケーションやエージェントの配布を自動化できます。OpsCenter(運用イベント管理) は運用イベントを一元的に可視化・管理し、Change Manager(変更管理) を活用することで、変更作業をワークフローと承認プロセス付きで安全に実施できます。

これらの機能は、EC2 だけでなく ECS や EKS、オンプレミス 環境、他クラウド上のサーバーにも対応しており、Lambda や Config と連携することで、運用監視や自動修復の仕組みを構築できます。

重要用語

関連サービス

ユースケース

踏み台不要のセキュアなサーバー接続Session Managerを利用し、SSHポートを開けずにブラウザやCLIからEC2インスタンスに安全にログインする。
OSパッチ適用とソフトウェア更新の自動化Patch ManagerでOSのセキュリティパッチ配布スケジュールを設定し、メンテナンスウィンドウ内で自動的に更新を適用する。
構成管理とインベントリ収集State ManagerやInventoryを使って、インスタンスに共通の設定を適用したり、インストールソフトウェアやパッチ状況を可視化する。

ベストプラクティス

Session Managerの利用SSHポートを開けずにインスタンスへ安全に接続する。
パッチマネージャとState ManagerOSパッチ適用や設定のドリフト修正を自動化する。
パラメータストアの活用設定値や機密情報を安全に保存し、アプリから参照する。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
【デフォルト】AWS内部で冗長化
 ・Parameter Store(パラメータストア)
 ・Session Manager
 ・Run Command
 ・State Manager
 ・Patch Manager
 ・Automation
 ・OpsCenter / Incident Manager
 ・Inventory

セキュリティ

関連サービス設定内容
KMS(データの暗号化と鍵の安全管理)【SecureStringパラメータの暗号化が必要】
 独自KMSキーを使うことを推奨(鍵操作、監査)
Secrets Manager(機密情報の安全管理)-
SSM Parameter Store(設定情報の一元管理)SSM Automation
パラメータ(Parameter)の作成が推奨
 Runbookで入力パラメータ・スクリプト変数
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)【Configが有効な場合】
パラメーターストア/ドキュメント等の設定変更履歴・暗号化/タグ準拠評価(対象に限る)
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
Run CommandやSession Manager操作のAPI異常検知
SSM Automation が実行ロールを引き受ける典型的な連携パターン
実行ロールを介して連携するサービス実行ロールにアタッチするポリシー
SSMssm:GetParameter
ssm:GetParameters
ssm:PutParameter
ssm:DeleteParameter
ssm:DescribeInstanceInformation
ssm:SendCommand
ssm:GetCommandInvocation
ssm:ListCommands
ssm:ListCommandInvocations
ssm:DescribeDocument
ssm:GetDocument
ssm:GetAutomationExecution
ssm:StartAutomationExecution
ssm:StopAutomationExecution
ssm:DescribeAutomationExecutions
ssm:GetMaintenanceWindow
ssm:UpdateMaintenanceWindow
ssm:UpdateDocument
ssm:CreateDocument
ssm:DeleteDocument
ssm:DescribeMaintenanceWindows
ssm:GetParameterHistory
ssm:PutInventory
ssm:GetInventory
CloudWatch Logslogs:CreateLogGroup
logs:CreateLogStream
logs:PutLogEvents
logs:DescribeLogGroups
logs:DescribeLogStreams
CloudTrailcloudtrail:LookupEvents
cloudtrail:DescribeTrails
CloudWatchcloudwatch:PutMetricAlarm
cloudwatch:DeleteAlarms
cloudwatch:DescribeAlarms
cloudwatch:PutMetricData
IAMiam:PassRole
iam:GetRole
iam:ListRoles
iam:CreateServiceLinkedRole
RDSrds:DescribeDBInstances
rds:StopDBInstance
rds:StartDBInstance
rds:RebootDBInstance
rds:CreateDBSnapshot
rds:DeleteDBSnapshot
rds:DescribeDBSnapshots
rds:ModifyDBInstance
S3s3:GetObject
s3:PutObject
s3:ListBucket
s3:DeleteObject
s3:GetBucketLocation
s3:PutBucketNotification
s3:GetBucketNotification
EC2ec2:DescribeInstances
ec2:DescribeImages
ec2:CreateImage
ec2:DeregisterImage
ec2:DescribeSnapshots
ec2:DeleteSnapshot
ec2:StopInstances
ec2:StartInstances
ec2:RebootInstances
ec2:TerminateInstances
ec2:CreateTags
ec2:DeleteTags
ec2:DescribeInstanceStatus
ec2:ModifyInstanceAttribute
ec2:CreateSnapshot
ec2:DescribeVolumes
ec2:AttachVolume
ec2:DetachVolume
ec2:DescribeSecurityGroups
ec2:DescribeSubnets
ec2:DescribeVpcs
ec2:RunInstances
Auto Scalingautoscaling:DescribeAutoScalingGroups
autoscaling:DescribeAutoScalingInstances
autoscaling:UpdateAutoScalingGroup
autoscaling:SuspendProcesses
autoscaling:ResumeProcesses
autoscaling:SetDesiredCapacity
autoscaling:TerminateInstanceInAutoScalingGroup
autoscaling:CompleteLifecycleAction
autoscaling:RecordLifecycleActionHeartbeat
ALB/NLBelasticloadbalancing:DescribeLoadBalancers
elasticloadbalancing:DescribeTargetGroups
elasticloadbalancing:DescribeTargetHealth
elasticloadbalancing:RegisterTargets
elasticloadbalancing:DeregisterTargets
Lambdalambda:InvokeFunction
lambda:GetFunction
lambda:ListFunctions
SNSsns:Publish
sns:GetTopicAttributes
sns:ListTopics
CloudFormationcloudformation:CreateStack
cloudformation:DeleteStack
cloudformation:DescribeStacks
cloudformation:UpdateStack
cloudformation:ListStacks
cloudformation:DescribeStackEvents
cloudformation:GetTemplate
cloudformation:DescribeStackResources
cloudformation:ValidateTemplate
EventBridgeevents:PutRule
events:PutTargets
events:DeleteRule
events:RemoveTargets
events:DescribeRule
events:EnableRule
events:DisableRule
Backupbackup:StartBackupJob
backup:DescribeBackupJob
backup:ListBackupJobs
backup:StartRestoreJob
backup:DescribeRestoreJob
backup:ListRestoreJobs
Configconfig:PutConfigRule
config:DeleteConfigRule
config:DescribeConfigRules
config:GetComplianceDetailsByConfigRule
config:StartConfigRulesEvaluation
config:PutEvaluations
Tag Editortag:GetResources
tag:TagResources
tag:UntagResources
SSM State Managerssm:CreateAssociation
ssm:DeleteAssociation
ssm:UpdateAssociation
ssm:DescribeAssociation
ssm:ListAssociations
Secrets Managersecretsmanager:GetSecretValue
secretsmanager:DescribeSecret
SSM OpsCenterssm:CreateOpsItem
ssm:UpdateOpsItem
ssm:GetOpsItem
ssm:DescribeOpsItems
KMSkms:Decrypt
kms:DescribeKey
kms:GenerateDataKey
※)権限設計の原則

信頼ポリシー:SSM Automation

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ssm.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

SSM が使用する SLR の連携パターン
SLR名 : AWSServiceRoleForAmazonSSM
SLR が操作するサービス用途
EC2インスタンスのパッチ適用と設定管理
S3パッチファイルとドキュメントの取得
CloudWatchインベントリデータとコンプライアンス情報の送信
SNSメンテナンスウィンドウとパッチ適用の通知
LambdaAutomation実行時の関数呼び出し
権限設計の原則

ログ・監視

ログ出力先ログの種類
CloudWatch LogsSession Managerのセッションログ
Run Commandの実行ログ
Automation実行ログ
Patch Managerのログ
CloudWatch Logs優先の原則
標準メトリクス
メトリクス名説明
CommandsFailed失敗コマンド数
CommandsSucceeded成功コマンド数
PatchComplianceNonCompliantパッチ非準拠インスタンス数
SessionsStarted開始セッション数

制限値(固定値/ハードリミット/ソフトリミット)

固定値制限値
Parameter Store パラメータ数(Standard)10,000
Parameter Store パラメータ数(Advanced)100,000

ハードリミット制限値
パラメータサイズ(Standard)4 KB
パラメータサイズ(Advanced)8 KB
パラメータポリシー数/パラメータ10

ソフトリミット制限値
ドキュメント数/アカウント500(共有)、200(プライベート)
メンテナンスウィンドウ数/リージョン50
セッション数(同時)100

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
Session ManagerSession Manager自体は無料
Parameter Store標準パラメータは無料、高度なパラメータは有料
AutomationAutomationの実行は無料
OpsCenterOpsItemの使用
パッチマネージャーパッチ適用インスタンス時間
料金計算ツール

公式ページ

AWSドキュメント SSM