CCSP Building Secure Cloud Infrastructure: HSM, TPM, Secure Defaults, Virtual Hardware and Guest Tools
Building physical and logical cloud infrastructure securely means configuring every hardware root of trust, management tool and virtual device so the environment starts life in a protected, verified state rather than being hardened after it is already exposed. This lesson covers CCSP sub-domain 5.1: HSM key custody, tamper response, approved mode and M-of-N quorum; TPM measured boot, sealing and virtual TPMs; secure by default; installing and configuring management plane tools; virtual switch, memory, CPU and storage settings; what type 1 and type 2 hypervisors each require; and installing guest OS virtualization toolsets.
On this page10 sections
- Hardware security modules: key custody, tamper response and approved mode
- HSM roles and M-of-N quorum
- Trusted platform modules: measured boot, sealing and virtual TPMs
- Secure by default
- Installing and configuring management plane tools
- Virtual network hardware: virtual switch security settings
- Virtual memory and CPU: isolation settings
- Virtual storage: choosing the encryption layer
- Type 1 and type 2 hypervisors: what to harden
- Installing guest OS virtualization toolsets
- Configure an HSM so keys are generated, backed up and replicated without ever existing in plaintext outside hardware, and size an M-of-N quorum
- Distinguish tamper-evident, tamper-resistant and tamper-responsive HSMs, and keep in-scope keys in a module running in its FIPS 140-3 approved mode
- Explain TPM measured boot, sealing keys to PCR values and how it differs from secure boot, including the resealing a firmware update requires
- Provision virtual TPMs for guests and plan for their key provider dependency and for cloning
- Apply secure by default, verify management tool installers and configure management access with federation, break-glass and scoped service accounts
- Choose virtual switch, memory, CPU and storage encryption settings that match a stated isolation requirement, and harden type 1 and type 2 hypervisors
- Install guest virtualization toolsets from a trusted source and disable the host-to-guest features a workload does not need
Hardware security modules: key custody, tamper response and approved mode
A hardware security module is a dedicated, hardened and tamper-protected cryptographic device that generates, stores and uses keys inside its own protected boundary and offers those operations (sign, decrypt, wrap, unwrap) to many applications, usually over the network. A provider may offer HSMs as a dedicated single-tenant service or behind a multi-tenant key management service; either way, the property that matters is that the plaintext key never has to leave hardware.
Three configuration choices decide whether that property actually holds:
- Where the key is born. A key generated inside the module and marked non-extractable can be used but never exported in plaintext. A key generated on a workstation and imported, even wrapped, existed in plaintext outside the boundary, so nobody can prove it was not copied there.
- How it is backed up. A key that exists only in one module is lost when that module fails or is zeroized. HSMs back keys up as wrapped blobs: the key encrypted under a wrapping key that itself lives only in HSMs. A wrapped backup can be restored only into a module that holds the wrapping key, so whoever controls the wrapping key controls recovery. If the provider takes and holds that backup key, the customer no longer has sole control.
- How copies are kept. HSM clusters synchronize keys between members in wrapped form, so each member holds the keys inside its own boundary. Clustering adds availability; it does not, by itself, change who may export a key.
Controls that sound related do different jobs. Rotation limits how much data one key protects and how long it is in use; it does not stop export. Splitting a key into clear components under dual control is a real key-management practice, but those components are plaintext key material outside an HSM, which a "never in plaintext outside hardware" requirement forbids.
Tamper response and resilience
HSM physical security is about what happens when someone attacks the device itself. The vocabulary is graded:
| Property | What it does | What it does not do |
|---|---|---|
| Tamper evident | Seals, coatings or enclosures show afterwards that the module was opened | Nothing to protect the keys during the intrusion |
| Tamper resistant | Hardening that makes physical attack slow and difficult | Does not destroy keys if the attack succeeds |
| Tamper responsive | Sensors detect intrusion and the module actively zeroizes keys and other critical security parameters | Does not preserve the keys: a successful response destroys that copy |
Zeroization creates its own design requirement. If the only HSMs sit in one cage and a break-in triggers zeroization in all of them, the keys are gone. The resilient answer is another protected copy that the same incident cannot reach, such as a synchronized cluster member at a second site. The test for any recovery copy is two-fold: it must sit outside the reach of the incident that destroys the originals, and restoring it must never require the key to exist in plaintext outside an HSM.
Approved mode. FIPS 140-3 validates a module as described in its security policy, which lists the approved services and algorithms. Under FIPS 140-3 the module reports, per service, whether that service is approved (an approved service indicator); a non-approved service is not validated cryptography, and many HSMs enforce FIPS mode as a module-wide policy. When a contract requires that in-scope keys be used only through validated cryptography, the clean design keeps every in-scope key on a module running solely in approved mode and serves any legacy, non-approved need from a separate module that holds nothing in scope. Wrapping a key does not make the algorithm it is used with approved, and exporting a key to a software library is worse on both counts: the key leaves the validated boundary and the library is not the validated module. How to evaluate a FIPS 140-3 certificate or security level is covered with product certifications in sub-domain 1.5.
HSM roles and M-of-N quorum
An HSM separates the people who administer the module from the identities that use keys. Vendors name the roles differently, but the CCSP-level model is:
| Role | Can do | Typical holder |
|---|---|---|
| Crypto officer (security officer) | Create and delete users, set the module's security policy, manage backups and restores | Named security administrators |
| Crypto user | Perform cryptographic operations with keys it owns or that are shared with it; generate its own keys | Applications and services |
| Appliance or host administrator | Manage the appliance's networking, host and firmware updates | Infrastructure operators; no access to key material |
An application that signs transactions authenticates as a crypto user. Giving it a crypto officer account, even one limited to a partition or protected by quorum, hands it administration it must never have.
Role separation does not stop one officer acting alone. That is what M-of-N quorum authentication does: N officers are enrolled and M of them must authenticate before a protected operation (restoring backups, changing policy, managing officers) proceeds. Multifactor authentication strengthens each login and logging records what happened, but neither prevents a single administrator completing the operation.
Sizing a quorum is simple arithmetic. M sets the minimum number of approvers. To keep operating when some officers are unavailable, N minus the number expected to be absent must still be at least M. For example, a rule of "at least three approvers, survive one absence" needs M = 3 and N = 4: with one officer away, three remain. Raising M without raising N breaks the absence rule, and enrolling more officers than the rule needs adds people who can take part in sensitive operations without adding resilience the business asked for. Plan quorum at initialization, before keys depend on the module; some modules fix it then, others let crypto officers change it later.
Trusted platform modules: measured boot, sealing and virtual TPMs
A trusted platform module is a hardware root of trust bound to one machine: it records measurements of that machine's boot, holds keys that only that platform can use, and can prove its identity and boot state to a remote verifier. Unlike an HSM it is not a shared service for other systems.
- Platform configuration registers (PCRs). As the server boots, each stage hashes the next (firmware, boot loader, hypervisor) and extends the hash into a PCR. A PCR cannot be written directly, only extended, so its final value summarises the whole chain. This is measured boot.
- Attestation. The TPM signs a quote of its PCR values with a key rooted in its endorsement key, its manufacturer-certified identity, so a remote party can check how the host booted. How a provider uses attestation to admit hosts into a cluster belongs with infrastructure design in Domain 3.
- Sealing. A key can be sealed to a policy of expected PCR values. The TPM releases it only when the current measurements match, so a disk key sealed to the approved boot chain unlocks automatically on an unaltered host and stays locked if any measured component changed. A key in TPM non-volatile memory behind a password is released to anyone with the password, whatever the platform's state.
| Secure boot | Measured boot (TPM) | |
|---|---|---|
| Question it answers | Is this boot component signed by a trusted key? | Exactly which components loaded? |
| Action | Blocks unsigned code from running | Records hashes; does not block anything |
| Supports | Preventing untrusted boot code | Sealing keys to platform state and remote attestation |
The two complement each other; neither replaces the other. Sealing has an operational consequence: an approved firmware, boot loader or hypervisor update changes the measurements too, so the change procedure must reseal keys to the values expected after the update, or hosts will not unseal and boot unattended. The fix belongs in the change procedure: weakening another boot control does not restore the measurements, and the endorsement key is the TPM's identity, not part of the measured state that a sealed key depends on.
Virtual TPMs for guest VMs
A virtual TPM (vTPM) is a software TPM device that the hypervisor presents to one guest VM, giving the guest OS its own TPM for disk encryption, credential protection and its own measured boot. A host's physical TPM belongs to the host: it measures and protects the hypervisor and cannot be handed to many guests as each one's own TPM.
Three facts about vTPMs drive most build decisions:
- Its secrets live in the VM's files. vTPM state is stored with the VM, so the platform protects it by encrypting those VM files with keys from a key provider. A vTPM does not require a physical TPM in the host.
- The VM can only run where the key provider is reachable. If recovery-site hosts cannot obtain the keys that protect the vTPM state, replicated vTPM-equipped VMs will not power on, while VMs without a vTPM start normally. Disaster recovery plans must include key provider access, not just replicated disks.
- Cloning copies the vTPM. A clone of a VM with a configured vTPM carries the same endorsement and storage keys, so every clone presents the same identity and shares secrets. A TPM clear from inside the guest resets the storage hierarchy but leaves the endorsement key (and so the attestation identity) unchanged; only a newly generated vTPM gives each clone its own. Templates should be built without a provisioned vTPM, or each deployment should replace it.
Secure by default
Secure by default means a component arrives with its protective settings already on, so weakening them takes a deliberate, visible change. It describes the state a product or template is in out of the box, which makes it different from neighbouring ideas:
| Term | Meaning |
|---|---|
| Secure by default | The shipped or templated configuration is the protective one |
| Secure by design | Security built into development through threat modeling and secure coding |
| Hardening | Customer work after installation to bring a component to a baseline (sub-domain 5.2) |
| Certification | Assurance that evaluated properties were tested; says nothing about the shipped settings |
In practice, secure by default shows up in three build habits:
- Default deny. A virtual network template that every new environment starts from should allow no inbound traffic until a project explicitly opens what it needs. Even sensible rules (web ports, management from the corporate VPN) are project decisions, not template defaults. A provider's internal network is not a trusted source: it includes other tenants.
- No default credentials before exposure. A vendor image whose documentation publishes the first admin login is open to anyone who reads it. Setting a unique administrator credential and binding the management console to the management interface comes first, before production interfaces are connected, before reaching update services and before registration with central tools.
- Only needed services on. Management interfaces, shells and host-to-guest features that are not required should be off in the template rather than disabled later by whoever remembers.
Secure by default is a build-time property. Keeping components at their baseline afterwards (OS hardening, patching, monitoring) is the operate-and-maintain work of sub-domain 5.2.
Installing and configuring management plane tools
Management plane tools (the virtualization management server, orchestration and monitoring tools, appliance consoles) control every workload beneath them, so a compromised installer or over-privileged account compromises the whole environment. Installing them securely starts with proving the software is genuine.
| Check | Proves | Limitation |
|---|---|---|
| Hash listed on the same download page | The file matches what the page says | Whoever can replace the file on a compromised portal can replace the hash too |
| Downloading twice and comparing | The transfer was consistent | Two copies of an altered file match each other |
| Malware scan | No known malware pattern was found | A tailored implant passes; says nothing about origin |
| Vendor digital signature verified with an independently obtained key | Origin and integrity | Requires trusting the vendor's signing key, obtained through a separate channel |
A stronger hash algorithm does not help when the attacker controls where the hash is published. Install onto the dedicated management network, not a network shared with workloads.
Configuration then decides who and what can act:
- Replace the installer's self-signed TLS certificate with one issued by the organization's trusted CA, so browsers and API clients validate the server and a certificate warning means a real interception attempt. Telling administrators to click through warnings, or adding self-signed certificates to each browser, trains them to ignore the signal.
- Federate people. Connect administrator sign-in to the corporate identity provider with MFA so access is attributable and centrally revocable.
- Keep one break-glass account. The local superuser the installer created should be vaulted and alarmed on every use, so administrators can regain access if the identity provider fails. The account has to be usable at the moment federation is unavailable, without depending on anyone signing in through federation first, and it must stay reserved for emergencies so that every use is an event worth investigating.
- Give automation its own identity. A pipeline or tool should authenticate with a dedicated service account, attributable and revocable without affecting people, and with a role scoped to its task. A monitoring tool that only reads inventory and performance gets a read-only role; a pipeline that creates VMs in one cluster gets a custom role on that cluster. Rotation, source-address limits and alerts are useful additions, but they do not shrink what a stolen credential can do.
Virtual network hardware: virtual switch security settings
A virtual switch enforces three per-port-group security settings that decide what a guest's virtual NIC may receive and send. Each should be set to reject unless a workload has a documented need:
| Setting | Direction | When rejected, the switch | Attack it stops |
|---|---|---|---|
| Promiscuous mode | Inbound | Delivers only frames addressed to the VM | Sniffing other VMs' traffic on the port group |
| MAC address changes | Inbound | Drops traffic for an effective MAC that differs from the adapter's assigned MAC | A guest changing its own MAC to receive another VM's frames |
| Forged transmits | Outbound | Drops frames whose source MAC differs from the adapter's effective MAC | Sending frames that impersonate another address, such as a gateway |
The near-twins are tested together: forged transmits guards what a VM sends, MAC address changes guards what it receives, and impersonation that combines both needs both rejected. VLAN tagging and trunking separate broadcast domains; they do not check MAC addresses within a segment. Traffic shaping limits bandwidth only.
Scope exceptions narrowly. Some workloads legitimately need relaxed settings; nested hypervisors running as VMs, for example, need promiscuous mode and forged transmits allowed (or a MAC-learning feature) so their own VMs get network access. Settings are inherited from the switch-wide default and can be overridden per port group, so the safe pattern is a new port group used only by those hosts, never a relaxed switch default or a port group shared with other VMs.
Virtual memory and CPU: isolation settings
Memory and CPU settings trade consolidation and performance against isolation between tenants. Each setting creates a specific exposure, and the control must match it.
Memory
- Transparent page sharing between VMs deduplicates identical pages across guests. Research showed it opens a timing side channel through which one VM can infer another's data, so modern hypervisors restrict sharing to pages within a single VM by default. A multi-tenant build should keep inter-VM sharing disabled.
- Ballooning reclaims memory through a driver in the guest toolset, letting the guest decide what to page to its own disk. It merges nothing across VMs.
- Overcommit with hypervisor swapping writes guest pages, including any secrets in memory, to a per-VM swap file on storage. Encrypting the swap file (part of hypervisor VM encryption) keeps that copy unreadable; restricting datastore access is a weaker control because storage administrators, backups and replicas still see it in clear.
- A full memory reservation stops the hypervisor swapping that VM at all, because the host swap file only covers configured memory minus the reservation. When a policy forbids guest pages ever reaching storage, a full reservation for that VM meets it without disabling overcommit for the rest of the cluster; encryption or moving the swap file to local flash still writes pages to a disk.
CPU
Simultaneous multithreading (SMT) exposes two hardware threads per physical core that share caches and execution units, so a flaw can let code on one thread read data used by its sibling. The configuration depends on what the business will accept:
| Option | Effect | When it fits |
|---|---|---|
| Side-channel-aware (core) scheduling | Sibling threads only ever run vCPUs of the same VM; SMT stays on | Multi-tenant hosts that must keep SMT performance |
| Disable SMT in firmware | One thread per core; no sibling left to leak to | When lower throughput is acceptable and no channel at all may remain, even between the guest and hypervisor processes |
| vCPU pinning, CPU reservations, socket-sized VMs | Control placement, CPU time or locality | Not an isolation control: two VMs can still share one core's threads |
Virtual storage: choosing the encryption layer
Encryption only hides data from layers below the point where it is applied, because each layer hands decrypted data to the layer above. Choosing where to encrypt, and who holds the keys, therefore answers the question "whose administrators must see only ciphertext?"
| Layer | Keys typically held by | Protects against | Still sees plaintext |
|---|---|---|---|
| Self-encrypting drives / array encryption | The array | Removed or discarded drives | Anyone reading through the array, including storage admins and the hypervisor |
| Hypervisor-level VM encryption | An external key manager or the provider's key service | Copies of VM files taken from the datastore; storage administrators | The hypervisor and those who administer it |
| Guest OS encryption with customer-held keys | The customer, outside the provider | Hypervisor and provider administrators | Only the guest and the customer |
Two consequences follow. First, switching hypervisor encryption to a customer-managed key changes who controls the key, but the hypervisor still decrypts blocks, so provider administrators with hypervisor access are not excluded; only encryption inside the guest with keys the provider never holds does that. Key rotation changes neither layer. Second, data read out through the hypervisor leaves decrypted: a backup product that reads VM disks through the hypervisor's backup API receives plaintext, so the backup tool or repository must encrypt the copies with its own managed keys. Excluding encrypted VMs from backup removes the exposure but also the ability to recover them. Transport protections (TLS on the storage network, encrypted array replication) protect data in transit, not the files at rest.
Type 1 and type 2 hypervisors: what to harden
A type 1 (bare-metal) hypervisor runs directly on the hardware; a type 2 (hosted) hypervisor runs as an application on a general-purpose operating system. Why type 1 has the smaller attack surface is covered in sub-domain 1.3; what 5.1 adds is what each type requires at build time.
| Type 1 (bare metal) | Type 2 (hosted) | |
|---|---|---|
| Code beneath the guests | The hypervisor only | The hypervisor plus the whole host OS |
| Build-specific hardening | Disable local and remote shell services; enable lockdown so administration goes through the management server; keep agents and tools out of the hypervisor layer | Harden and patch the host OS as part of the hypervisor's attack surface, in addition to the hypervisor itself |
| Common to both | Patch the hypervisor; separate management traffic from guest networks; harden VM templates and restrict who can change them | The same: patch the hypervisor, separate management from guest traffic, harden and restrict VM templates |
On a type 1 host, a policy that day-to-day administration go only through the central management server is met by closing the other paths: disable the shell services and enable the host's lockdown mode, leaving direct access only for named exception accounts. Controls that only make the direct path harder to use or easier to observe leave it open, and anything installed in the host shell adds code to the layer the build is trying to keep small.
When extra software is needed on the same server (monitoring, backup), the way to keep the privileged layer small is a bare-metal hypervisor with that tool stack in its own management VM. Installing tools in the hypervisor's shell grows exactly the layer to minimise, and any hosted design keeps a general-purpose host OS in the privileged layer beneath every guest.
Installing guest OS virtualization toolsets
A guest OS virtualization toolset is the vendor package installed inside each VM that provides paravirtual (optimised) storage and network drivers, time synchronization with the host, graceful shutdown, heartbeat and snapshot quiescing, and a host-to-guest channel that management tools use. It does not isolate memory (the hypervisor and CPU do that), encrypt virtual disks or filter traffic between VMs (the virtual switch or a distributed firewall does).
Installing it securely means:
- Trusted source and matching version. Install the toolset from the hypervisor vendor's own distribution or the OS vendor's packaged version, verified like any other software, and keep it in step with the hypervisor version so drivers and fixes match.
- Keep what is needed, turn off what is not. Removing the toolset entirely loses the drivers and time sync and, with ballooning gone, can push the hypervisor to swap guest memory to its own swap file instead. The better control is to disable the specific host-to-guest features the workload does not need.
| Toolset feature | What it allows | Disable it when |
|---|---|---|
| Guest operations interface | Management APIs, given guest credentials, can run programs and transfer files inside the guest | No automation needs to act inside the guest; it reduces what the management plane can do in the OS |
| Console copy-paste and drag-and-drop | Moving data between the guest and the workstation viewing its remote console | Data must not leave regulated VMs to administrators' or analysts' own machines |
| Time synchronization, drivers | Accurate clocks (needed by logging and authentication) and performance | Rarely; disabling these removes no management access |
The two transfer paths are separate settings. Disabling the guest operations interface does not stop console clipboard transfer, and VM encryption does not stop it either, because data copied through the console is already decrypted.
Tip. Questions on this topic mix short recognition items with build scenarios. Recognition items describe a capability (a shared tamper-resistant key service, extend-only boot registers, a processor feature that shares a core between two threads, a switch setting that inspects outbound source addresses) and ask which component or setting it is, with close neighbours as the other options. Scenario items state a requirement and a constraint, such as no plaintext key outside hardware, keeping SMT on, leaving the rest of the cluster unchanged, enrolling the fewest officers or recovering when the identity provider is down, and ask for the configuration that meets every part of it. Several items ask what to do FIRST in a build or what a change procedure must include. The wrong options are real controls that fail on one stated condition, often because they act at the wrong layer, protect the wrong direction of traffic, or address a related but different risk, so identify the exact exposure and the layer where it occurs before choosing.
- HSM keys should be born inside the module as non-extractable and backed up only as wrapped blobs; whoever holds the wrapping key controls recovery.
- Tamper evident shows an intrusion afterwards; tamper responsive zeroizes keys during it, so keep another protected copy that one incident cannot reach.
- Keep in-scope keys on a module running solely in approved mode; serve non-approved legacy needs from a separate module holding nothing in scope.
- Applications authenticate to an HSM as crypto users; M-of-N quorum stops one crypto officer acting alone, and N minus expected absences must still reach M.
- A TPM measures boot into extend-only PCRs; sealing releases a key only on the measured state, so any approved firmware change needs a reseal.
- A vTPM's secrets live in the VM's encrypted files: the VM runs only where its key provider is reachable, and every clone copies the vTPM identity.
- Secure by default means protection is on out of the box: default deny, no default credentials before exposure, unneeded services off.
- Verify management tool installers by the vendor's signature, replace self-signed certificates, federate admins, vault a break-glass account and scope each service account.
- Forged transmits guards what a VM sends; MAC address changes and promiscuous mode guard what it receives. Scope exceptions to a dedicated port group.
- Encrypt above the layer you must keep out: guest-level encryption with customer-held keys hides data from the hypervisor, and data read through the hypervisor leaves decrypted.
Frequently asked questions
What is the difference between an HSM and a TPM?
An HSM is a dedicated, hardened and tamper-protected cryptographic device that generates, stores and uses keys for many applications, usually over the network, so keys never leave its hardware boundary. A TPM is a root of trust built into one machine: it measures that machine's boot into platform configuration registers, seals keys to its platform state and proves its identity for attestation. An HSM is a shared key service; a TPM protects the single platform it sits in.
What is the difference between secure boot and measured boot?
Secure boot checks the signature of each boot component and blocks code that is not signed by a trusted key. Measured boot uses a TPM to record a hash of each component that loads into extend-only platform configuration registers, without blocking anything. Secure boot prevents untrusted code from running; measured boot makes the exact boot chain provable, which supports sealing keys to platform state and remote attestation.
What does M-of-N quorum mean for an HSM?
M-of-N quorum means N administrators (crypto officers) are enrolled on the HSM and at least M of them must authenticate before a protected operation, such as restoring key backups or changing the module's policy, can proceed. It ensures no single administrator can perform the operation alone. N should be large enough that N minus the officers expected to be unavailable is still at least M.
Why do cloned VMs with a virtual TPM need a new vTPM?
A virtual TPM's state, including its endorsement and storage keys, is stored with the VM, so cloning the VM copies it. Every clone then shares the same TPM identity and secrets. Clearing the TPM from inside the guest resets the storage hierarchy but leaves the endorsement key unchanged, so the reliable fix is to give each clone a newly generated vTPM or build templates without one.
What do the promiscuous mode, MAC address changes and forged transmits settings do on a virtual switch?
These three virtual switch security settings control what a guest's virtual NIC may receive and send. Promiscuous mode, when allowed, lets a VM see all frames on its port group. MAC address changes governs whether a VM still receives traffic after changing its effective MAC address. Forged transmits governs whether a VM may send frames with a source MAC other than its own. All three should be rejected by default, with any exception scoped to a dedicated port group.
Does hypervisor-level VM encryption protect backups of the VMs?
Not when the backup product reads VM disks through the hypervisor's backup API. The hypervisor decrypts data before handing it over, so the backup copies arrive readable and must be encrypted by the backup tool or repository with its own managed keys. Hypervisor encryption protects VM files on the datastore, not copies that leave through the hypervisor.
What is the security difference between type 1 and type 2 hypervisors at build time?
A type 1 hypervisor runs directly on hardware, so building it securely means disabling shell services, enabling lockdown so administration goes through the management server, and running extra tools in a management VM rather than in the hypervisor layer. A type 2 hypervisor runs on a general-purpose host operating system, so that host OS is part of the hypervisor's attack surface and must also be hardened and patched.
What does a guest OS virtualization toolset do, and which parts should be disabled?
A guest virtualization toolset installs optimised drivers, time synchronization, graceful shutdown and a host-to-guest channel inside each VM. It should come from a trusted source and match the hypervisor version. Features the workload does not need should be disabled: the guest operations interface lets management APIs run programs and move files inside the guest, and console copy-paste and drag-and-drop move data between the guest and the viewing workstation.
Source
This lesson covers the "Cloud Security Operations" domain of the official CCSP exam guide. Vendors revise their guides — check the source for the current version.
Sign up free to mark lessons complete, bookmark topics and track your exam readiness.