Skip to main content
compliance · aws

Running EC2 instances that AWS Systems Manager does not manage

resource types
1
rule IDs covered
1
severity
medium

What does ZopNight detect here?

ZopNight flags a running EC2 instance that is absent from the Systems Manager inventory returned by `ssm:DescribeInstanceInformation`. An unmanaged instance cannot be patched, inventoried or reached through Session Manager or Run Command, which pushes teams back to SSH keys and manual patching. The usual causes are a missing SSM Agent, instance role permissions or network path.

Signal and threshold

How ZopNight evaluates Running EC2 instances that AWS Systems Manager does not manage.
Field Value
Rule IDsRC-154
Categorycompliance
Severitymedium
Metricnone — pure configuration read
Thresholdnot in Systems Manager inventory
SourceZopNight
Permissions usedec2:DescribeInstances · ssm:DescribeInstanceInformation

What an instance outside Systems Manager misses

Systems Manager is how most AWS fleets are patched, inventoried and accessed without opening SSH. It only works on managed nodes: instances where the SSM Agent is running, has permissions, and can reach the service. An instance outside that list does not get Patch Manager baselines, does not show up in inventory, and cannot be reached with Session Manager, so someone keeps a key pair and a port 22 rule around for it.

Comparing EC2 instances with the managed node list

List what Systems Manager can see, with each node’s heartbeat status:

Terminal window
aws ssm describe-instance-information \
--query 'InstanceInformationList[].[InstanceId,PingStatus,AgentVersion]' --output table

PingStatus is Online, ConnectionLost or Inactive. Any running instance ID from aws ec2 describe-instances --filters Name=instance-state-name,Values=running that is missing here is unmanaged.

How managed status is decided

ZopNight asks Systems Manager for its managed instance list and treats an instance as managed when it appears there; it does not guess from tags or installed software. The rule fires when the instance is running and that lookup explicitly says it is not managed.

Instances the rule skips

Stopped instances are skipped. If the managed status was not collected for an instance, it is treated as unknown and no finding is raised.

Operational risk, no saving

The finding reports $0. The exposure is patch drift and standing SSH access, both of which tend to surface during audits or incidents rather than on a bill.

Bringing the instance under management

  1. Make sure the SSM Agent is installed and running. AWS preinstalls it on AMIs such as Amazon Linux 2 and Amazon Linux 2023, but warns that a preinstalled agent may not be running.
  2. Grant permissions: attach the AmazonSSMManagedInstanceCore policy to the instance profile role, or turn on Default Host Management Configuration for the Region.
  3. Give the instance a network path: interface VPC endpoints for Systems Manager, or outbound HTTPS to the ssm, ssmmessages and ec2messages endpoints, per the VPC endpoint guide.
  4. Confirm the instance appears as a managed node in Fleet Manager with PingStatus Online.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·