Amazon WorkSpaces is a managed Desktop-as-a-Service (DaaS) that provisions cloud-based Windows or Linux virtual desktops. Each WorkSpace is associated with a directory (AD) and runs inside a customer VPC. A compromised WorkSpace gives an attacker a foothold inside the VPC with AD-joined credentials.
WorkSpaces provisions cloud-based Windows or Linux desktops associated with a directory (AWS Managed Microsoft AD, AD Connector, or Simple AD). Supports PCoIP and DCV streaming protocols. Clients connect via native apps or web browser. Features include clipboard, drive, and USB redirection.
Attack note: WorkSpaces are full virtual desktops with persistent storage. They sit outside traditional EC2-based detection, creating monitoring blind spots.
The directory backing WorkSpaces is the single authentication plane. Compromising it grants access to all WorkSpaces in the directory, and potentially to on-premises AD via trust relationships. RADIUS-based MFA is supported but not configured by default.
Attack note: Without IP access control groups and MFA, WorkSpaces can be accessed from any IP with valid AD credentials.
WorkSpaces provide full desktop environments inside the VPC with Active Directory credentials. Clipboard and drive redirection create data exfiltration channels. Without IP access control groups and MFA, WorkSpaces can be accessed from any IP with valid AD credentials. WorkSpaces run on AWS-managed compute not visible in the EC2 console, creating monitoring blind spots.
aws workspaces describe-workspacesaws workspaces describe-workspace-directoriesaws workspaces describe-workspaces-connection-statusaws workspaces describe-workspace-bundles --owner AMAZONaws workspaces describe-ip-groupsaws workspaces describe-workspace-directories --query "Directories[*].{DirectoryId:DirectoryId,DeviceTypeWindows:WorkspaceAccessProperties.DeviceTypeWindows,DeviceTypeMacOs:WorkspaceAccessProperties.DeviceTypeMacOs,DeviceTypeWeb:WorkspaceAccessProperties.DeviceTypeWeb}"aws workspaces describe-workspaces-poolsaws workspaces describe-connection-aliasesKey insight: WorkSpaces are domain-joined desktops. A compromised WorkSpace is a foothold in both the VPC and the AD domain, enabling lateral movement to any resource reachable from that network position.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "workspaces:*",
"Resource": "*"
}]
}Grants full WorkSpaces control including creating, terminating, modifying, and rebuilding any WorkSpace. An attacker can create rogue WorkSpaces, disable security controls, or terminate legitimate ones.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"workspaces:DescribeWorkspaces",
"workspaces:DescribeWorkspaceDirectories",
"workspaces:DescribeWorkspaceBundles",
"workspaces:DescribeWorkspacesConnectionStatus",
"workspaces:DescribeIpGroups",
"workspaces:DescribeWorkspacesPoolSessions"
],
"Resource": "*"
}]
}Read-only access for monitoring and auditing. Cannot create, modify, or terminate WorkSpaces.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"workspaces:CreateWorkspaces",
"workspaces:TerminateWorkspaces",
"workspaces:RebuildWorkspaces",
"workspaces:StartWorkspaces",
"workspaces:StopWorkspaces"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/DirectoryId": "d-1234567890"
}
}
}]
}Restricts WorkSpace lifecycle actions to resources tagged with a specific directory ID, preventing cross-directory abuse.
Create IP access control groups to restrict WorkSpace access to known corporate IP ranges or VPN egress IPs. Associate the group with each directory.
aws workspaces create-ip-group \
--group-name "CorporateVPN" \
--group-desc "Allow access from corporate VPN only" \
--user-rules "ipRule=203.0.113.0/24,ruleDesc=Corporate VPN"
aws workspaces associate-ip-groups \
--directory-id d-1234567890 \
--group-ids wsipg-abcdef123Configure RADIUS-based multi-factor authentication on the directory. Use multiple RADIUS server IPs for redundancy.
For Windows WorkSpaces, use Group Policy to disable or restrict clipboard redirection direction. For Linux, modify the DCV configuration file. Closes a primary data exfiltration channel.
Disable unnecessary device types (especially Web Access) to reduce the attack surface from unmanaged devices.
aws workspaces modify-workspace-access-properties \
--resource-id d-1234567890 \
--workspace-access-properties \
DeviceTypeWindows=ALLOW,DeviceTypeOsx=ALLOW,DeviceTypeWeb=DENY,DeviceTypeIos=DENY,DeviceTypeAndroid=DENY,DeviceTypeLinux=DENYEncrypt both root and user volumes with AWS KMS when creating WorkSpaces. Encryption must be set at creation time and cannot be enabled later.
Set WorkSpaces to AUTO_STOP to reduce the attack window during idle periods and reduce cost.
aws workspaces modify-workspace-properties \
--workspace-id ws-abc123def \
--workspace-properties RunningMode=AUTO_STOP,RunningModeAutoStopTimeoutInMinutes=60Enable CloudTrail logging for all workspaces:* API calls. Enable VPC Flow Logs on WorkSpaces subnets to detect lateral movement. Monitor CloudWatch metrics for unusual connection patterns.
Apply restrictive security groups and NACLs to WorkSpaces subnets. Block direct internet access; route traffic through a proxy or NAT Gateway with URL filtering.
Amazon WorkSpaces Security Card • Toc Consulting
Always obtain proper authorization before testing