DEMO Community

Settings
Demo

AWS Cloud

Browse community images, manage private AMIs, and deploy EC2 instances

Region:

Community Images

Free-tier-compatible public AMIs from Amazon, Canonical, and Debian. Copy one to your account to use it as a private AMI.

No community images found for this filter.
OS Name AMI ID Arch Size Created Actions

Private AMIs

AMIs owned by your AWS account, including any copied from community images.

No private AMIs found. Copy a community image above, or upload an OVA via the CLI.
AMI Name AMI ID State Arch Size Created Actions

Deployed EC2 Instances

No instances deployed from this dashboard yet. Deploy an AMI from the Private AMIs tab.
Selected:
or
Status Name Instance ID Type Region Public IP Private IP Launched Actions
No instances in .

Copy to Private AMI

This will be the name of the AMI in your account.

The copy runs as a background job. AWS typically takes 2–10 minutes. You'll be redirected to the job page to track progress.

Starts at this time, and is marked missed if it has not started within the grace period — it will never run late.

No change windows are defined yet. An administrator can add them in Settings.


Next: – UTC

Export to portable VHD

Export to a VHD on the hub backend. This may take 30+ minutes; the VHD is registered in the image registry under the name below.

Starts at this time, and is marked missed if it has not started within the grace period — it will never run late.

No change windows are defined yet. An administrator can add them in Settings.


Next: – UTC

Administrator password

Loading…
Username:
Password:
Stored in .

SSH Key

Key pair:

Fetching key from Secrets Manager…

Key not found

Store the .pem contents in Secrets Manager with the name shown above, then try again.

Save Instance as Image

 · 

Keep the instance running during imaging. May result in filesystem inconsistencies on Windows; generally safe for Linux.

Image creation runs as a background job. AWS typically takes 5–20 minutes. The new AMI will appear in your Private AMIs tab when ready.

Starts at this time, and is marked missed if it has not started within the grace period — it will never run late.

No change windows are defined yet. An administrator can add them in Settings.


Next: – UTC

Deploy AMI

Edit to deploy from any AMI ID your AWS account can access (Marketplace, BYOL, cross-account share, etc.).

⚠ This AMI ID is not among the images owns. AMI IDs are per-region — if it isn't shared with your account in that region the launch will fail with InvalidAMIID.NotFound.

⚠ This AMI does not have ENA enabled

The selected instance type () requires Enhanced Networking (ENA). This deployment will fail unless you first click Enable ENA (creates a new -ena copy of the AMI), or select a t2.* instance type instead.

Loading AWS network options…

Written as the Workgroup tag on the instance. Controls who can see it.

More than one launches copies of the same AMI, numbered automatically.

Subnet and security groups below belong to this region.

Fetching key…

— bound to this workstream

No SSH key configured or secret not found. Open setup wizard → AWS Advanced to set a secret name. Deployments to Linux instances will fail without an SSH public key.

No security groups found.

Select at least one security group.

Asset group, Gateway and credential — the configured defaults unless changed

BeyondTrust PRA options — optional; fall back to the configured defaults.

No PRA Asset Groups/Gateways returned — the shell jump falls back to the configured defaults.

Overrides bt_client_secret for this deploy's shell jump.

Runs after deploy:

Advanced options — SSH key override, integrations, Windows identity

Bound to this workstream: — used when this is left at the default.

Any Secrets Manager secret. Must be JSON with a public_key — validated on launch.

Requires Entitle registration enabled; private instances also need a provisioned Entitle agent.

Requires Password Safe registration enabled. AWS uses the cloud-native AWS Systems Manager plugin by default (configurable in Settings → Integrations → BeyondTrust). Windows AMIs onboard the Administrator as a password-managed account (needs a Windows functional account); Password Safe rotates it immediately and then owns it.

After the deploy, a follow-up job onboards the server to Azure Arc over OpenSSH and installs AADLoginForWindows, so Entra users with Virtual Machine Administrator/User Login can RDP in. Needs Windows Server 2025 or later with Desktop Experience and outbound 443 to Azure. A server joins Entra ID or an AD domain, not both. Hybrid join: the server joins the on-prem domain picked above, into its synced OU, and Entra Connect brings it into Entra ID; a follow-up check watches for it.

Windows servers get a PRA Shell Jump over OpenSSH (port 22, PowerShell), switched on at first boot. Tick this for a Remote RDP jump as well. If OpenSSH does not come up, the server gets an RDP jump anyway and the job says why.

Starts at this time, and is marked missed if it has not started within the grace period — it will never run late.

No change windows are defined yet. An administrator can add them in Settings.


Next: – UTC

Bulk Deploy AMIs

deployments queued successfully!

Each instance is deploying in the background. Track each job below.

Loading AWS network options…

Edit the name for each instance before launching.

⚠ of these AMIs are not owned by . AMI IDs are per-region — copy them to that region first, or pick the region they were listed in.

Fetching key…

No SSH key configured. Setup wizard → AWS Advanced

No security groups found.

Select at least one security group.

Any Secrets Manager secret. Must be JSON with a public_key — validated on launch.

BeyondTrust PRA options — shared; fall back to the configured defaults.

No PRA Asset Groups/Gateways returned — the shell jump falls back to the configured defaults.

Overrides bt_client_secret for this batch's shell jumps.

Requires Entitle registration enabled; private instances also need a provisioned Entitle agent.

Requires Password Safe registration enabled. AWS uses the cloud-native AWS Systems Manager plugin by default (configurable in Settings → Integrations → BeyondTrust).

After the deploy, a follow-up job onboards the server to Azure Arc over OpenSSH and installs AADLoginForWindows, so Entra users with Virtual Machine Administrator/User Login can RDP in. Needs Windows Server 2025 or later with Desktop Experience and outbound 443 to Azure. A server joins Entra ID or an AD domain, not both. Hybrid join: the server joins the on-prem domain picked above, into its synced OU, and Entra Connect brings it into Entra ID; a follow-up check watches for it.

Windows servers get a PRA Shell Jump over OpenSSH (port 22, PowerShell), switched on at first boot. Tick this for a Remote RDP jump as well. If OpenSSH does not come up, the server gets an RDP jump anyway and the job says why.

Starts at this time, and is marked missed if it has not started within the grace period — it will never run late.

No change windows are defined yet. An administrator can add them in Settings.


Next: – UTC

Build AMI with Packer

Provision a source AMI with a shell script and register the result as a new private AMI in your account. Runs as a tracked background job (typically 5–15 min).

A preset resolves to the newest public AMI of that family at build time (like the GCP build's source family) — or paste any AMI ID from your account or the AWS console.

Shell script run on the build instance. Leave empty to build a base image with no provisioning. Loaded from ; edit in place if needed.

BeyondTrust provisioner options — used by the bt-ready scripts; ignored by other provisioners.

Storage pins the version you synced and doesn't need BeyondTrust reachable from the build — sync it first on the Storage page. Not available on local-filesystem storage.

EPM-L is installed at build; activation runs post-deploy via the EPM-L integration.

Environment variables — passed to the provisioner script.

Secret refs are resolved at build start and passed via Packer sensitive variables — never written to the generated or archived template.

Starts at this time, and is marked missed if it has not started within the grace period — it will never run late.

No change windows are defined yet. An administrator can add them in Settings.


Next: – UTC

OT Demo Cell

Deploy a simulated plant cell — a Modbus PLC simulator (:502) + FUXA web HMI (:1881) from the Packer-baked ot-sim AMI — into the private sandbox subnet, with BeyondTrust access auto-wired: Web Jump → HMI, protocol tunnel → PLC port, plus the Shell Jump and optional Password Safe onboarding every EC2 deploy gets. Bake the AMI first on the Build Image tab (Debian 12 preset + provisioners/ot/ot-sim-debian.sh).

Deploy a cell

No ot-sim AMI yet — build one on the Build Image tab, or tick "show all".

Pick the PRIVATE sandbox subnet — EC2 has no per-instance public-IP switch here, and a public cell deflates the air-gap story.

No security groups found.

What the image you picked was baked with. The dashboard cannot read this off an image — both runtimes produce an ot-sim image — so it is your assertion, and it decides whether the cell's own platform endpoints can be brokered at all.

The cell simulates every PLC protocol at once — each gets its own PRA protocol tunnel, so access can be granted per vendor. It also runs those simulators on k3s, so the cell's own Kubernetes API can be brokered the same way: a recorded kubectl into the plant cluster, with no other route in. Protocols the image does not simulate (e.g. DNP3) stay available on the standalone tunnel card below.

BeyondTrust PRA placement — where the cell's jump items land; defaults are the configured bt_jump_group_name / bt_jumpoint_name.

Pick the pair matching the cell's region. With a Gateway override the deploy skips the shared-gateway size check — the host behind that Gateway needs ≥2 GB RAM for the Web Jump.

The agent that brokers this access runs in the plant, on its own industrial-DMZ host deployed beside the cell — not in a cluster somewhere else. On AWS the two zones are security groups, and the cell's replaces the ones you picked above: groups union their allows, so a zone that merely joined them would restrict nothing. Needs the Purdue zoning on (ot_purdue_firewall_enabled) and the Gateway host's group in bt_ecs_jumpoint_security_group_id; the deploy refuses with the remedy if anything is missing.

No AMI with broker in its name yet — bake one with OT_ROLE=broker and name it e.g. ot-broker (see provisioners/ot/README.md), or tick "show all".

8 GB or more: the agent requests 1Gi on its own.

The gateway backing the Web Jump needs ≥2 GB RAM (bt_ecs_host_instance_type t3.small minimum, t3.medium preferred — Settings → Integrations → Privileged Remote Access) — the deploy checks and refuses early with the remedy otherwise.

Cells

No OT cells yet.

Standalone OT Protocol Tunnel

A generic-TCP PRA protocol tunnel to any host the gateway can reach — for demoing against your own lab gear without deploying a cell.

Edit tags

Nothing removable — the tags on this selection are the dashboard's own.

PRA access —

Creates a BeyondTrust PRA Shell Jump to this VM, so you reach it over SSH through the representative console. Blank fields use the configured defaults. Destroying the VM removes the jump.

This VM has Shell Jump . Re-apply replaces it with one built from the options below.

PRA is not configured (bt_api_host / bt_client_id / bt_client_secret). Set it on Settings — the dropdowns stay empty and the job will fail until then.

Resolved to a bt_client_secret override for this jump's provisioning.