The Complete AWS Systems Manager Guide (2025): Secure Access, Automation, Patch Management & Real-World DevOps Use Cases
By Srikanth Ch, Senior DevOps Engineer | thedevopstooling.com
Imagine managing 500 EC2 instances without SSH, without bastion hosts, and without storing a single private key anywhere. No security group rules allowing port 22. No key rotation nightmares. No “who has access to the production bastion?” conversations at 2 AM.
That’s what AWS Systems Manager makes possible—and it’s exactly how mature DevOps teams manage infrastructure in 2025.
I’ve seen organizations spend months building complex bastion architectures, only to rip them out entirely after discovering SSM. I’ve watched security audits go from multi-week ordeals to straightforward evidence collection. And I’ve personally used Systems Manager to patch hundreds of servers during critical vulnerability windows without a single SSH connection.
This guide isn’t a feature list. It’s how SSM actually works in production environments—the architecture decisions, the security patterns, and the gotchas that trip up teams who treat it as “just another AWS service.”
Whether you’re preparing for the AWS Solutions Architect (SAA-C03), SysOps Administrator, or Security Specialty exam, or you’re a DevOps engineer looking to modernize your fleet management, this is the guide I wish I’d had years ago.
What Is AWS Systems Manager?
Who should care about AWS Systems Manager?
- Teams running more than 5 EC2 instances
- Organizations with compliance or audit requirements
- DevOps engineers tired of SSH key sprawl
- Anyone managing private subnets at scale
- Engineers preparing for AWS SAA-C03, SysOps, or Security Specialty exams
AWS Systems Manager (SSM) is a unified management service that gives you operational visibility and control over your AWS infrastructure. Think of it as the control plane for your servers—a central nervous system that lets you view, manage, patch, configure, and automate your entire fleet without ever opening an inbound port.
Here’s what SSM replaces in traditional infrastructure:
| Traditional Approach | SSM Replacement |
|---|---|
| SSH + Bastion hosts | Session Manager |
| Cron jobs scattered across servers | State Manager + Maintenance Windows |
| Shell scripts via SSH loops | Run Command + Automation |
| Manual patching during change windows | Patch Manager |
| Config files on disk | Parameter Store |
| Spreadsheets tracking server inventory | Inventory + Compliance |
The shift is fundamental. Instead of reaching into servers (SSH, remote desktop, configuration management tools pulling), SSM lets AWS push instructions to agents running inside your instances. The instances themselves initiate outbound connections to the SSM service—no inbound rules required.
This architectural flip has massive security implications that we’ll explore throughout this guide.
SSM is not a full replacement for tools like Ansible, Chef, or Puppet.
It excels at execution, visibility, and AWS-native automation, but it’s not a declarative application configuration manager. Think of SSM as the secure delivery mechanism and compliance layer—you might still use Ansible for complex application configurations, but deliver it through SSM Run Command instead of SSH.
Diagram Idea: Visualize SSM as a single control plane replacing SSH, bastion hosts, and scattered cron jobs—all communication flowing through AWS’s managed infrastructure with zero inbound ports.
AWS Systems Manager Architecture Overview
Before diving into individual features, you need to understand how SSM actually communicates with your instances. This architecture knowledge separates engineers who “use SSM” from those who can troubleshoot it at 3 AM.
The Core Components
SSM Agent
Every managed instance runs the SSM Agent—a lightweight daemon that maintains a persistent connection to the Systems Manager service. Amazon Linux 2, Amazon Linux 2023, and many recent AMIs come with the agent pre-installed. For other operating systems, you’ll install it yourself.
The agent doesn’t listen on any port. Instead, it establishes outbound HTTPS connections to regional SSM endpoints and maintains a WebSocket connection for real-time command execution.
IAM Roles & Instance Profiles
Your EC2 instances need permission to communicate with SSM. This happens through an Instance Profile attached to the instance, which assumes an IAM role containing SSM permissions.
The managed policy AmazonSSMManagedInstanceCore provides baseline permissions. For production, you’ll typically create custom policies with tighter scopes.
VPC Endpoints (Critical for Private Subnets)
Instances in private subnets without NAT Gateways can’t reach public SSM endpoints. You’ll need VPC Interface Endpoints for:
ssm(core API)ssmmessages(Session Manager)ec2messages(Run Command, State Manager)
This is where I’ve seen the most production issues. Teams spin up private instances, attach the right IAM role, and wonder why SSM shows them as “Connection Lost.” Nine times out of ten, it’s missing VPC endpoints.
Control Plane vs Data Plane
The SSM Control Plane handles API calls—starting sessions, initiating Run Commands, defining patch baselines. This is what you interact with through the console, CLI, or SDK.
The SSM Data Plane handles the actual communication with agents—streaming session data, delivering commands, receiving inventory. This runs over those WebSocket connections I mentioned.
Understanding this split matters for troubleshooting. If the console shows your instance but commands time out, the data plane connectivity (usually ssmmessages or ec2messages endpoints) is likely the culprit.
How Authentication and Authorization Flow
Here’s the sequence when you start a Session Manager connection:
- You call
ssm:StartSessionvia console/CLI - SSM validates your IAM permissions
- SSM locates the target instance and checks it’s managed
- SSM authenticates the instance’s IAM role
- A secure channel is established through the agent
- Your session begins—fully logged, fully auditable
No SSH keys involved. No passwords. Pure IAM-based authentication on both ends.
Architecture Visualization Idea: Picture SSM as a secure management layer sitting between engineers (authenticated via IAM) and EC2 instances (authenticated via Instance Profiles). All communication flows through AWS’s control plane—never direct instance-to-engineer connections.
AWS Systems Manager Session Manager — The SSH Replacement Your Security Team Wants
AWS Systems Manager Session Manager is the feature that converts SSM skeptics. It provides shell access to your instances without:
- Opening port 22 (or 3389 for Windows)
- Managing SSH keys
- Running bastion hosts
- Configuring security groups for remote access
How Session Manager Works Internally
When you initiate a session, the SSM service establishes a bidirectional WebSocket tunnel through the agent. Your keystrokes travel encrypted to AWS, then to the agent, which executes them in a shell and streams output back.
The agent runs the shell as ssm-user by default (configurable). On Linux, this user typically has sudo privileges—something you’ll want to audit and potentially restrict in production.
Why Security Teams Love This
Every Session Manager session can be:
- Logged to CloudWatch Logs (full keystroke capture)
- Stored in S3 (for compliance archives)
- Streamed to CloudWatch in real-time (for security monitoring)
Compare this to SSH, where session logging requires complex PAM configurations, third-party tools, or bastion host customizations. With Session Manager, logging is a checkbox.
Additionally, you can require KMS encryption for session data, ensuring even AWS can’t read your session traffic in transit or storage.
IAM Permissions for Session Manager
Users need ssm:StartSession permission scoped to target instances. Here’s a policy restricting access to non-production instances:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ssm:StartSession",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringNotEquals": {
"ssm:resourceTag/Environment": "production"
}
}
}
]
}
This is granularity SSH can’t match. You’re not managing key distribution—you’re managing IAM policies through your existing identity infrastructure.
Port Forwarding Through Session Manager
Need to access a database running on an instance? Instead of SSH tunnels:
aws ssm start-session \
--target i-0123456789abcdef0 \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["5432"],"localPortNumber":["15432"]}'
Now localhost:15432 tunnels to port 5432 on your instance—through SSM, with full IAM authorization and audit logging.
SSH vs Bastion vs Session Manager
| Aspect | Direct SSH | Bastion Host | Session Manager |
|---|---|---|---|
| Inbound ports required | Yes (22) | Yes (22 on bastion) | No |
| Key management | Manual | Manual | None (IAM) |
| Session logging | Complex | Complex | Built-in |
| Audit trail | SSH logs only | SSH logs only | CloudTrail + session logs |
| Cost | Instance costs | Bastion instance | Free (for basic sessions) |
| Works in private subnets | Needs NAT/bastion | Needs bastion access | Needs VPC endpoints |
Reflection Prompt: Think about your current environment. Would your security team approve a new application that required port 22 open to the internet today? What about open to the corporate network? Session Manager makes this question irrelevant.
AWS SSM Run Command & Automation — Fleet-Wide Control Without SSH Loops
Remember writing bash loops that SSH’d into servers one by one? Or worse, using parallel-ssh and hoping nothing failed silently?
AWS SSM Run Command executes shell commands across hundreds of instances simultaneously—with error handling, output capture, and execution status tracked per instance.
Run Command Execution Flow
- You invoke
ssm:SendCommandwith a target (instance IDs, tags, or resource groups) - SSM validates permissions and resolves targets
- Commands are delivered to agents via the data plane
- Agents execute and stream output back
- Results aggregate in the SSM console and API
Document Types
SSM uses Documents to define what runs. Key document types:
- Command documents: Run scripts, install software, execute one-off tasks
- Automation documents: Multi-step workflows with conditionals, approvals, and AWS API calls
- Session documents: Define Session Manager behavior
AWS provides hundreds of pre-built documents. AWS-RunShellScript and AWS-RunPowerShellScript handle most ad-hoc needs.
Targeting Strategies
Target instances by:
- Instance IDs: Explicit targeting for specific servers
- Tags:
Environment=staging,Application=payments - Resource Groups: Dynamic groups based on tag queries
Tag-based targeting is powerful for production. Need to restart the payments service across all staging instances?
aws ssm send-command \
--document-name "AWS-RunShellScript" \
--targets "Key=tag:Application,Values=payments" "Key=tag:Environment,Values=staging" \
--parameters 'commands=["systemctl restart payments-api"]'
Real-World Use Cases
Emergency Security Response: A critical CVE drops. You need to verify which instances have the vulnerable package version—now, not during the next inventory sync.
aws ssm send-command \
--document-name "AWS-RunShellScript" \
--targets "Key=tag:OS,Values=AmazonLinux2" \
--parameters 'commands=["rpm -q openssl"]' \
--output-s3-bucket-name "security-audit-outputs"
Within minutes, you have version data from every Amazon Linux instance, stored in S3 for analysis.
Configuration Rotation: Rotate a configuration file across your fleet after a credential change:
aws ssm send-command \
--document-name "AWS-RunShellScript" \
--targets "Key=tag:Application,Values=api-gateway" \
--parameters 'commands=["aws s3 cp s3://configs/api-gateway/config.yml /etc/api-gateway/", "systemctl reload api-gateway"]'
Mini Quiz: Why is Run Command safer than SSH loops for fleet-wide operations?
Think about it before reading on…
Answer: Run Command provides centralized execution status, automatic retry logic, CloudTrail auditing, IAM-based authorization, and aggregated output collection. SSH loops fail silently, lack audit trails, require key management, and don’t handle partial failures gracefully.
AWS SSM Patch Manager — Enterprise OS Patching Done Right
Patching is where good intentions meet operational reality. Teams plan monthly patch windows, then skip them because “we can’t afford the downtime” or “who knows what will break.”
AWS SSM Patch Manager brings structure to this chaos.
Core Concepts
Patch Baselines: Define which patches to apply. AWS provides default baselines per OS, but you’ll customize these for production.
- Approve security patches automatically after 3 days
- Approve critical patches immediately
- Exclude specific patches that caused issues
- Auto-approve patches from specific classifications
Maintenance Windows: Schedule when patching occurs. Define start time, duration, and what happens if patching isn’t complete before the window closes.
Patch Groups: Associate instances with baselines via tags. Tag an instance PatchGroup=linux-production and it follows the linux-production baseline.
Compliance Reporting
After patching, every instance reports compliance status:
- Compliant: All applicable patches installed
- Non-Compliant: Missing patches based on current baseline
- Unknown: Instance not recently scanned
This compliance data feeds into AWS Security Hub, giving security teams a single pane of glass for patch status.
Production Example: Monthly Linux Patching
Here’s a pattern I’ve used across multiple organizations:
- Week 1: Patch development environments automatically (no approval)
- Week 2: Patch staging with automated baseline testing
- Week 3: Patch production with manual approval gates
- Continuous: Report compliance to Security Hub and trigger alerts for non-compliant instances
The maintenance window for production runs during lowest-traffic periods. Instances are patched in batches (using rate controls) to maintain capacity.
# Maintenance Window Task Example
MaintenanceWindowTask:
Type: AWS::SSM::MaintenanceWindowTask
Properties:
WindowId: !Ref PatchingWindow
TaskType: RUN_COMMAND
TaskArn: AWS-RunPatchBaseline
MaxConcurrency: "25%"
MaxErrors: "5%"
Priority: 1
Targets:
- Key: WindowTargetIds
Values:
- !Ref ProductionPatchTarget
The MaxConcurrency of 25% ensures only a quarter of instances patch simultaneously. MaxErrors of 5% halts the operation if too many failures occur.
Security Interview Angle: “How do you prove your servers are patched?”
With Patch Manager: “We have automated compliance reporting integrated with Security Hub. Any non-compliant instance triggers an alert, and we can provide historical compliance data for any audit period through SSM compliance APIs.”
State Manager — Declarative Configuration Enforcement
State Manager ensures instances stay in a desired state. Unlike Run Command (imperative: “do this now”), State Manager is declarative: “this should always be true.”
How It Works
You associate a State Manager Association with target instances. The association specifies:
- A document to run (what state to enforce)
- A schedule (how often to check/enforce)
- Parameters (configuration values)
The SSM agent evaluates the association on schedule. If the system isn’t in the desired state, it executes the document to correct drift.
Practical Example: Ensuring CloudWatch Agent Is Always Installed
aws ssm create-association \
--name "AWS-ConfigureAWSPackage" \
--targets "Key=tag:Monitoring,Values=enabled" \
--parameters '{"action":["Install"],"name":["AmazonCloudWatchAgent"]}' \
--schedule-expression "rate(1 day)"
Every day, SSM verifies the CloudWatch agent is installed on instances tagged Monitoring=enabled. If someone manually removes it, the next association run reinstalls it.
Compliance Status
State Manager tracks whether instances are compliant with their associations:
- Success: Association executed successfully
- Failed: Association execution failed (needs investigation)
- Pending: Scheduled but not yet run
This creates auditability around configuration standards. “Are all production instances running the security baseline?” becomes a queryable fact, not a manual verification.
AWS Systems Manager Parameter Store — Secure Configuration Management
Hardcoding configuration in applications is a well-known anti-pattern. But where do you put database connection strings, API keys, and feature flags?
AWS Systems Manager Parameter Store provides a centralized, secure, versioned repository for configuration data.
Parameter Types
Standard Parameters: Free tier. Up to 10,000 parameters, 4KB each.
Advanced Parameters: Paid. Larger size (8KB), policies for expiration/notification, higher throughput.
SecureString: Encrypted using AWS KMS. The value is encrypted at rest and only decrypted when retrieved with appropriate IAM permissions.
Parameter Hierarchy
Parameters support paths, enabling logical organization:
/myapp/production/database/host
/myapp/production/database/password
/myapp/staging/database/host
/myapp/staging/database/password
Applications retrieve parameters by path:
aws ssm get-parameters-by-path --path "/myapp/production/database" --with-decryption
This pattern lets you grant IAM access to entire configuration subtrees—developers can access /myapp/staging/* but not /myapp/production/*.
Versioning and Rollback
Every parameter update creates a new version. Need to rollback a bad configuration change?
aws ssm get-parameter --name "/myapp/production/api-key" --version 3
You can retrieve any historical version, compare changes, and update to a previous value.
Parameter Store vs Secrets Manager
This question appears on every AWS exam and confuses every team new to AWS:
| Feature | Parameter Store | Secrets Manager |
|---|---|---|
| Automatic rotation | No | Yes (Lambda-based) |
| Cross-account access | Limited | Native support |
| Cost | Free (Standard) | $0.40/secret/month |
| Size limit | 8KB (Advanced) | 64KB |
| Versioning | Yes | Yes |
| KMS encryption | Yes | Yes (mandatory) |
Rule of thumb: Use Secrets Manager for database credentials that need rotation. Use Parameter Store for everything else.
Reflection Prompt: Where are your application secrets stored today? Environment variables? Config files on disk? A shared spreadsheet? Parameter Store offers a path from each of these anti-patterns to centralized, audited, encrypted configuration management.
Inventory, Compliance & OpsCenter
These three features turn SSM from an operations tool into an audit and incident management platform.
Inventory
SSM Inventory automatically collects metadata from managed instances:
- Installed applications and versions
- Network configuration
- Windows updates
- Running services
- Custom inventory (via plugins)
This data syncs to a resource data sync, which can export to S3 for analysis or query via Athena.
Audit goldmine: “Show me every instance running OpenSSL version X” becomes an Athena query, not a fleet-wide SSH investigation.
Compliance
Beyond patch compliance, SSM tracks compliance against State Manager associations. You define what “compliant” means through associations, and SSM continuously reports status.
Security Hub Integration: Compliance data flows to Security Hub, creating unified security posture visibility across patches, configurations, and custom compliance checks.
OpsCenter
OpsCenter aggregates operational issues (OpsItems) from multiple sources:
- CloudWatch Alarms
- Config Rule violations
- Security Hub findings
- Custom integrations
Each OpsItem tracks related resources, runbooks for remediation, and resolution status. It’s lightweight incident management built into SSM.
Advanced Security & IAM for Systems Manager
SSM is a powerful tool—which makes it a powerful attack vector if misconfigured. Here’s how to lock it down.
Least Privilege IAM Policies
Never use AmazonSSMManagedInstanceCore without scoping. That policy grants broad SSM access. In production, create custom policies:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:UpdateInstanceInformation",
"ssm:GetParameter",
"ssm:GetParameters"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ssm:GetParameter",
"Resource": "arn:aws:ssm:*:*:parameter/myapp/${aws:PrincipalTag/Environment}/*"
}
]
}
This allows instances to access only parameters matching their environment tag.
VPC Endpoints for Private Access
Production workloads in private subnets should use VPC endpoints. This:
- Eliminates internet exposure
- Enables PrivateLink traffic routing
- Allows endpoint policies for additional access control
Create endpoints for ssm, ssmmessages, ec2messages, and (for Parameter Store KMS encryption) kms.
Service Control Policies (SCPs)
In multi-account environments, use SCPs to prevent SSM misuse:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "ssm:StartSession",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:PrincipalTag/team": "platform-engineering"
}
}
}
]
}
Only platform engineering team members can start sessions—regardless of their account-level IAM permissions.
CloudTrail Visibility
Every SSM API call logs to CloudTrail:
StartSession(who accessed which instance)SendCommand(what commands were run)GetParameter(what configuration was accessed)
Correlate CloudTrail logs with Session Manager session logs for complete audit trails.
Security Scenario: An engineer shouldn’t access production instances directly. With SSM, you enforce this through IAM (deny
StartSessionfor production tags), verify through CloudTrail, and investigate violations through Security Hub findings.
Interview Question
“How would you restrict engineers from accessing production EC2 instances while still allowing automation to run?”
Strong Answer: Combine IAM policies denying
ssm:StartSessionfor production-tagged instances with SCPs at the organization level. Automation uses a separate IAM role withssm:SendCommandpermissions scoped to specific automation documents. All access attempts log to CloudTrail, and Security Hub monitors for policy violations. Tag-based conditions ensure the policy scales without manual instance management.
SSM in Enterprise & Multi-Account Environments
Large organizations run hundreds of AWS accounts. SSM scales through AWS Organizations integration.
Centralized Automation
Create Automation documents in a central account and share them organization-wide. When a security patch is needed, one automation triggers patching across all member accounts.
Cross-Account Patching
Patch Manager supports multi-account patching through resource data sync. A central account views patch compliance across all accounts, and maintenance windows can target instances across accounts using resource groups.
Aggregated Logging
Configure Session Manager in each account to log to a central S3 bucket and CloudWatch log group. Security teams monitor sessions organization-wide from a single location.
Common Systems Manager Mistakes (From Real Incidents)
After years of SSM implementations, these are the issues I see repeatedly:
Missing IAM Role on EC2: Instance launches without an instance profile. SSM agent runs but can’t authenticate. Instance appears offline in Fleet Manager.
SSM Agent Outdated: Old agent versions lack features and contain bugs. Automate updates via State Manager association.
No Logging Enabled: Session Manager works, but nobody configured logging. When an audit asks “what did this user do on this server?”, there’s no answer.
Over-Permissive IAM Policies: Everyone has ssm:* access. Developers start sessions on production instances “just to check something.”
Not Using VPC Endpoints: Private instances route SSM traffic through NAT Gateways, adding cost and latency. Or worse, they can’t reach SSM at all.
Ignoring Compliance Dashboards: Patch Manager reports drift, but nobody watches the dashboard. Compliance degrades silently.
SSM Failure Modes — Quick Troubleshooting Guide
When SSM breaks in production, here’s where to look:
| Symptom | Likely Cause | Quick Fix |
|---|---|---|
| Instance shows “Managed” but commands time out | Missing ec2messages or ssmmessages VPC endpoint | Create interface endpoints in the VPC |
| Session starts but immediately disconnects | SSM agent crashed or outdated | SSH in (if possible) and restart/update agent |
| Works in public subnet, fails in private | No route to SSM endpoints (missing NAT or VPC endpoints) | Add VPC endpoints or NAT Gateway |
| “Access Denied” on StartSession | IAM policy missing or SCP blocking | Check user IAM + instance profile + SCPs |
| Instance not appearing in Fleet Manager | Instance profile missing or wrong region | Verify IAM role attached and correct region |
Pro Tip: Run
sudo systemctl status amazon-ssm-agenton the instance (if you have alternate access) to check agent health. The agent logs to/var/log/amazon/ssm/on Linux.
Pricing & Cost Considerations
SSM is surprisingly affordable—many features are free.
Free Tier
- Session Manager (basic sessions)
- Run Command
- State Manager
- Patch Manager (execution)
- Inventory
- Standard Parameters (up to 10,000)
Paid Features
- Advanced Parameters: $0.05/parameter/month
- On-demand Automation Steps: $0.0025/step above free tier
- OpsCenter OpsItems: $0.00542/OpsItem after free tier
- Change Manager: Charges apply for change requests
Hidden Cost Pitfalls
VPC Endpoints: Each interface endpoint costs ~$7.20/month plus data processing. In a multi-AZ setup with 3 endpoints (ssm, ssmmessages, ec2messages), that’s ~$65/month per VPC.
CloudWatch Logs: Session logging to CloudWatch incurs ingestion and storage costs. High-volume environments can accumulate significant log costs.
NAT Gateway Data Transfer: Without VPC endpoints, SSM traffic crosses NAT Gateways at $0.045/GB.
Wrapping Up: SSM as Infrastructure Maturity
AWS Systems Manager isn’t just a tool—it’s an indicator of operational maturity.
Teams that fully adopt SSM have:
- Zero SSH keys to manage, rotate, or lose
- Complete audit trails for every server interaction
- Automated patching that actually runs on schedule
- Centralized configuration that doesn’t drift
- Fleet visibility that makes audits routine
The transition isn’t instant. You’ll migrate from bastion hosts to Session Manager. You’ll move from manual patching to Patch Manager. You’ll refactor configuration from files to Parameter Store.
But each step reduces operational risk and improves security posture. And in 2025, this is how infrastructure is managed at scale.
FAQs
What is AWS Systems Manager?
AWS Systems Manager is a unified AWS service for managing EC2 instances and other resources at scale. It provides secure access (Session Manager), automation (Run Command), patching (Patch Manager), configuration management (Parameter Store, State Manager), and operational visibility (Inventory, Compliance, OpsCenter) without requiring SSH or direct server access.
Is AWS Systems Manager free?
Many SSM features are free, including Session Manager, Run Command, State Manager, basic Patch Manager, and Standard Parameters (up to 10,000). Costs apply for Advanced Parameters, high-volume Automation, OpsCenter beyond free tier, and related services like VPC endpoints and CloudWatch logging.
How does SSM replace SSH?
Session Manager establishes encrypted connections to instances through the SSM agent using IAM authentication. No inbound ports, SSH keys, or bastion hosts are required. All sessions are logged to CloudWatch and S3, providing audit trails that SSH can’t match without significant additional tooling.
What IAM permissions are required for SSM?
Instances need an IAM role (via instance profile) with permissions to communicate with SSM—the managed policy AmazonSSMManagedInstanceCore provides baseline access. Users need ssm:StartSession for Session Manager, ssm:SendCommand for Run Command, and appropriate permissions for each SSM feature they access.
What’s the difference between Parameter Store and Secrets Manager?
Parameter Store is a general-purpose configuration store with free tier and optional encryption. Secrets Manager is specifically designed for secrets with automatic rotation capabilities. Use Secrets Manager for database credentials requiring rotation; use Parameter Store for general configuration, feature flags, and secrets without rotation needs.
Is Systems Manager secure for production?
Yes—when properly configured. SSM eliminates SSH exposure, provides IAM-based access control, offers complete audit logging via CloudTrail and session logs, supports VPC endpoints for private access, and integrates with KMS for encryption. Many enterprises consider SSM more secure than traditional SSH-based access patterns.
Ready to implement AWS Systems Manager in your environment?
👉 Start the AWS Systems Manager Hands-On Labs and learn secure access, automation, and patching the enterprise way. Build real skills that translate directly to production environments and AWS certification exams.
Last Updated: 2025 | Part of the AWS DevOps Learning Path on thedevopstooling.com
