AWS Certified Security - Specialty (SCS-C03) Course

Course scope
The course follows the official SCS-C03 exam guide and covers all 6 domains and 16 tasks. Open a domain to see its lessons.
Data Classification: classification-driven monitoring policies: How classifications based on disclosure, integrity, and availability impacts determine required audit coverage, alert urgency, and protection of monitoring data.
A classification-driven monitoring policy starts with three separate consequences: disclosure impact from unauthorized access, integrity impact from unauthorized modification, and availability impact from loss or interruption. A public dataset can have low disclosure impact but high integrity and availability impacts. A single label such as “confidential” can hide these differences.
Threat Modeling: scenario-driven monitoring requirements: How prioritized workload attack scenarios determine the evidence, coverage, and alert conditions needed to detect them.
A monitoring requirement starts with a prioritized attack scenario, not a list of available logs. Describe the actor’s capability, the asset, the abusive action, and the business consequence. Prioritize using impact, plausible exposure, and existing safeguards. A severe consequence with a credible attack path deserves attention even when its activity resembles normal use.
Amazon CloudWatch and AWS CloudTrail: operational telemetry versus audit records: How CloudWatch workload telemetry differs from CloudTrail account activity records, and why collecting one does not replace collecting the other.
CloudWatch workload telemetry describes resource and application behavior. Metrics measure properties over time; application and system logs contain details emitted by their producers. CPU utilization can reveal saturation, and an application log can explain a failed transaction. Neither inherently identifies the AWS principal that changed the infrastructure.
Amazon CloudWatch: workload health alarms: How metric selection, metric math, evaluation windows, missing-data handling, and composite alarms determine whether workload health alerts are reliable.
A reliable alarm starts with the metric identity and statistic, not the threshold. A metric is identified by its namespace, name, and complete dimension set. Selecting one instance does not select the fleet, and CloudWatch does not automatically aggregate custom metrics across dimensions. Match the dimensions to the failure boundary: one unhealthy instance can disappear inside a fleet average.
Immutable Storage vs. Log Retention: Why keeping logs for a specified duration does not necessarily prevent their alteration or deletion during that period.
Log retention specifies how long records should remain available. A retention setting often implements an expiration schedule: records become eligible for removal after a configured age. That schedule does not necessarily reject a separate request to alter or delete records earlier.
Log Retention: workload-specific retention windows: How investigation timelines, compliance obligations, and retrieval deadlines determine how long each workload’s logs must remain searchable and archived.
Define a searchable window: the age range investigators must be able to query within an agreed response time. Separately define total retention: how long records must remain available, including any archived period. These windows overlap. Sixty days searchable within 180 days total does not mean 240 days of retention. Set both commitments per log category and investigative purpose.
Amazon CloudWatch: log ingestion pipelines: How service log delivery and CloudWatch Agent configuration, permissions, and connectivity control log ingestion and explain missing logs.
Log generation is not log delivery. An application can write healthy local files while nothing reaches CloudWatch Logs. Likewise, enabling an AWS service does not automatically enable every supported log destination. Identify the producer, its delivery mechanism, and its configured destination before changing permissions.
AWS CloudTrail: Organization trail configuration: How organization trails select management, data, and network activity events across accounts and Regions and deliver them to a protected central destination.
An organization trail applies one centrally managed trail configuration to the management account and member accounts in AWS Organizations. Configure the organization prerequisites, including all features and CloudTrail trusted access, then create it from the management account or a CloudTrail delegated administrator. Accounts joining the organization are brought into its scope automatically; member accounts cannot modify or stop the organization trail.
Amazon CloudWatch: centralized log storage: How cross-account log centralization, destination permissions, retention, and export preserve aggregated logs for security analysis and forensic collection.
Cross-account observability lets a monitoring account inspect source logs without making an independent archive. For preservation, distinguish access to logs from delivery of stored copies. CloudWatch Logs also supports organization-based centralization into destination log groups; this lesson follows a different, explicit pattern: cross-account subscriptions to a security-owned S3 archive.
Log Normalization: canonical event mappings: How to map heterogeneous events into a validated common schema while preserving timestamp semantics, identity context, and source provenance for consistent cross-source searches.
A canonical mapping is a versioned contract from one source format and event type into a shared event class. Parse the record, identify its source version and event type, then select the mapping. Define each destination field's meaning, type, allowed values, and missing-value behavior. JSON conversion alone provides none of these guarantees. The field names below are illustrative, not official OCSF attributes.
Event Correlation: linking events across sources: How identity and resource keys, account and Region context, and bounded time windows connect aggregated events into evidence-backed activity sequences rather than merely collecting them together.
Event correlation links observations through an explicit relationship: the same credential performed two actions, a session belongs to a role, or an action affected a particular resource. Start with that relationship, then choose its keys. A shared source IP is only supporting context: NAT and proxies can combine unrelated actors, and one actor can change addresses.
Log Normalization versus Event Correlation: How standardizing event meaning differs from establishing relationships between events, and why matching normalized fields alone does not prove a relationship.
Log normalization establishes how to interpret an event. Different source fields and values are represented using common meanings, so a query can compare authentication outcomes without separately interpreting each source format. Merely collecting records together, or converting them all to JSON, does not establish that common meaning.
Amazon Athena and Amazon CloudWatch: choosing a log query service: How Athena queries over S3 differ from CloudWatch Logs Insights queries in data location, preparation requirements, and suitability for historical cross-source analysis.
Amazon Athena over S3 and CloudWatch Logs Insights have different query boundaries. Athena reads objects in Amazon S3 through table definitions; the source data stays in S3 rather than being loaded into an Athena database. Logs Insights queries events stored in CloudWatch Logs, scoped to selected log groups and a time range.
Amazon CloudWatch: Logs Insights queries: How Logs Insights parsing, filtering, aggregation, and multi-log-group queries correlate security events while controlling query scope and scan cost.
CloudWatch Logs Insights QL queries events already stored in CloudWatch Logs. Start by selecting the relevant log groups and the smallest useful time range. Those choices bound the search before parsing or aggregation. In the console, select the groups directly; programmatic queries can use SOURCE to select groups by criteria such as name prefix and account. SOURCE is not supported in the console query editor.
AWS Security Hub versus Amazon GuardDuty: How Security Hub's consolidated posture and risk analysis differs from GuardDuty's threat detection, and why a GuardDuty finding appearing in both services is not independent corroboration.
Amazon GuardDuty analyzes supported activity and security signals to detect potential threats. Its behavioral detections use techniques such as anomaly detection and threat intelligence. A finding expresses a detection supported by particular observations; it is not, by itself, proof of compromise.
AWS Security Hub: finding evidence and investigation context: How Security Hub CSPM aggregates normalized findings and uses insights, originating-service evidence, resource identifiers, timestamps, and related findings to distinguish duplicate or stale alerts and establish affected resources and impact.
Security Hub CSPM aggregates findings from enabled integrations and its security checks using the AWS Security Finding Format (ASFF). Common fields let you filter findings from different providers together. Normalization makes records comparable; it does not make their detection methods, evidence depth, or severity judgments equivalent.
Anomaly Detection: baseline-driven security alerts: How contextual and seasonal baselines define expected ranges for security metrics, inform alerts and dashboards, and require tuning as normal behavior changes.
A baseline describes expected behavior for a particular metric and context, not a universal safe value. Define the event, population, aggregation period, and statistic before learning it. Access-denied counts for a production application should not share a baseline with an administrative application simply because both count the same event. Pooling them can hide a small application's surge inside a large application's normal variation.
Amazon GuardDuty: finding structure and lifecycle: How finding evidence, severity, aggregation, and suppression determine the interpretation and downstream alerting of GuardDuty detections.
A GuardDuty finding is a structured detection record, not a complete transcript of the underlying activity. In the native API representation, Type identifies the detection category, Resource describes the affected entity, and Service carries detection-specific context. Where present, Service.Action describes the observed action and Service.ResourceRole distinguishes an actor from a target. Available evidence varies by finding type; do not assume every finding contains an IP address, API operation, or process.
Amazon Macie: findings-based monitoring: How Macie policy and sensitive-data findings support dashboard monitoring and targeted alerts through EventBridge filtering and downstream custom metrics.
Macie produces two categories of findings. Policy findings describe potential security or privacy issues with S3 buckets, such as public access. Sensitive-data findings describe sensitive data discovered in S3 objects through analysis. Finding severity expresses priority; it does not make the two categories interchangeable.
AWS Security Hub: finding-driven automation: How Security Hub CSPM automation rules and EventBridge finding events drive finding updates, investigation workflows, notifications, and external remediation without confusing finding changes with resource changes.
Security Hub CSPM automation rules match finding criteria and update supported finding fields, such as severity, workflow status, notes, and user-defined fields. They can prioritize an investigation or suppress an accepted exception. They do not change the affected resource, invoke a remediation runbook, or prove that a failed control now passes.
Configuration Drift: recurring baseline assessments: How to automate comparisons against authoritative infrastructure and host baselines, accounting for detection windows, assessment gaps, and evidence needed to investigate deviations.
An authoritative baseline must identify the approved version, applicable targets, comparison logic, and exceptions. Automate deployment of that definition, not just a recurring scan. Record the template revision, rule parameters, or host document version with each assessment so a later investigator can reconstruct what was expected.
Amazon EventBridge: recurring invocations with Scheduler: How Scheduler controls recurring target invocations through schedule expressions, time zones, execution windows, scoped permissions, retries, and dead-letter queues.
EventBridge Scheduler invokes a configured target API on a schedule; it does not need an event bus rule. Use cron for calendar requirements and rate for elapsed intervals. For example, cron(0 9 ? * MON-FRI *) means weekday mornings at 09:00 in the configured time zone. Scheduler cron has six fields, including year, and uses ? for the unspecified day-of-month or day-of-week field.
AWS Config and AWS Security Hub: compliance evaluation versus security findings: How AWS Config resource-configuration evaluations differ from AWS Security Hub security checks and finding aggregation, and where their compliance results overlap.
AWS Config evaluates a resource against a rule: does this configuration satisfy this policy? Managed or custom rules can express security requirements, but also operational requirements such as required tags. Detective rules evaluate deployed resources on configuration changes, periodically, or both, depending on the rule.
AWS Config: conformance packs: How conformance packs deploy configurable rules and remediation actions for repeatable compliance assessments, with compliance-change events driving notifications.
A conformance pack is a YAML template that deploys AWS Config rules and their remediation configurations as one managed collection. Rule definitions specify what to assess; remediation configurations associate selected rules with corrective actions. A successful deployment means the collection was provisioned, not that its resources are compliant.
AWS Systems Manager: State Manager associations: How targeted, scheduled associations run recurring assessments and enforce node configurations with compliance reporting and rollout controls.
A State Manager association binds a Systems Manager document and its parameters to targets and an execution schedule. It also carries execution controls and compliance settings. For node configuration, the document runs through SSM Agent on managed nodes; creating an association does not make an unmanaged or unreachable machine executable.
AWS Security Hub: continuous security control assessments: How Security Hub CSPM evaluates enabled security controls through recurring checks, including AWS Config dependencies, control parameters, assessment findings, and the limitations of compliance scores.
Security Hub CSPM evaluates enabled security controls associated with security standards. Each control defines a specific configuration requirement. Its documentation identifies its evaluation method, supported resources, and whether checks are change-triggered or periodic. Continuous assessment does not mean every resource change immediately produces a new result.
AWS CloudTrail vs AWS Config: Actions and resource state: How CloudTrail evidence of actions differs from AWS Config configuration history when explaining a resource change.
AWS CloudTrail records activity: which API operation was invoked, its recorded caller and request context, and the outcome information available for that event. A recorded AuthorizeSecurityGroupIngress request can identify the requested rule and the calling role session. An event with an access-denied error is evidence of a failed attempt, not evidence that the rule was added.
Data Residency: geographic boundaries for log pipelines: How to select log sources and trace their collection, ingestion, storage, and downstream copies against approved geographic boundaries.
Start with a requirement for a particular data class, not a blanket assumption about all telemetry. Record the approved Regions and whether the restriction covers collection, processing, persistent copies, and remote access. Logs can contain identities, addresses, request parameters, and payloads; select only the fields needed for the investigation or audit purpose.
Amazon S3: log storage buckets: How log-delivery permissions, encryption settings, and object layouts make S3 buckets secure repositories for logs and downstream consumers.
A log repository has three distinct contracts: who may deliver objects, how those objects are encrypted, and who may consume them. This example uses VPC Flow Logs delivered directly to S3. These records describe network traffic metadata, not packet payloads. CloudTrail records API activity; AWS Config records resource configuration history. Neither replaces this producer.
Amazon S3: versioned object retention: How versioning, Object Lock, and Lifecycle rules interact to preserve object versions and govern their transition and deletion.
In a versioning-enabled general purpose bucket, an object key names a sequence of object versions. A new upload to the same key creates a new version ID and makes the previous version noncurrent; it does not replace that version's bytes. Versioning preserves history, but does not itself prevent an authorized caller from permanently deleting a particular version.
Amazon S3 vs. Amazon S3 Glacier: immutable retention: When S3 Object Lock applies instead of Glacier Vault Lock, distinguishing S3 Glacier storage classes from Glacier vaults.
S3 Glacier storage classes are storage classes for objects in S3 buckets: S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, and S3 Glacier Deep Archive. An object in one of these classes still has an S3 bucket, key, and version ID when versioning is enabled. Its retention mechanism is S3 Object Lock, not Glacier Vault Lock.
Audit Logging: evidence-driven pipeline design: How evidence requirements determine complementary log sources and storage destinations that preserve a complete, protected, and accessible audit trail.
An audit pipeline starts with an evidence requirement, not a destination. For each investigative question, identify the actor, action, target, event time, source context, and outcome you need to establish. Preserve role-session and identity-provider context where available; a temporary role identity alone may not identify the originating person.
Immutable Storage: retention-locked log archives: How version-scoped retention locks and legal holds preserve authoritative logs while data lakes and third-party tools use separately controlled copies or read access.
Amazon S3 Object Lock protects individual object versions in a versioned bucket. Identify authoritative evidence by bucket, key, and version ID, together with its retention metadata. A new upload to the same key creates another version; it does not rewrite the protected version. A delete request without a version ID can create a delete marker, hiding the object from ordinary reads without permanently deleting the retained version.
Data Lakes: security log dataset architecture: How raw and normalized log datasets are organized, cataloged, and retained for efficient querying and governed consumption by third-party security tools.
A security lake needs two different contracts. A raw dataset preserves source-format records and their provenance so investigators can revisit the original event or reprocess it with a corrected parser. A normalized dataset provides consistent event classes, field names, and types for cross-source analysis. Keep their locations, permissions, and retention policies distinct; normalization is not proof that every original field survived.
Amazon Kinesis Data Firehose: reliable log delivery: How buffered delivery, destination-specific retries, and S3 backup settings control reliable delivery of security logs to S3 log lakes and third-party security tools.
Amazon Data Firehose, formerly Amazon Kinesis Data Firehose, buffers records before delivery. Size and interval settings generally trigger delivery when either condition is met, but they are hints, not end-to-end latency guarantees. Smaller buffers favor freshness; larger batches reduce request overhead and can produce larger S3 objects.
Amazon Security Lake: Normalized security data storage: How source requirements, regional collection topology, and retention settings determine the contents and organization of a Security Lake deployment.
Amazon Security Lake stores security telemetry in Amazon S3; it is not a detection engine or an investigation console. For supported AWS sources, it collects the selected records, normalizes them to the Open Cybersecurity Schema Framework (OCSF), and writes Apache Parquet. Source type and source version determine which dataset and schema downstream tools must understand.
AWS Lake Formation: permissions for security-log datasets: How Lake Formation grants least-privilege access to cataloged security logs, including cross-account permissions for query-based Security Lake subscribers.
Lake Formation authorizes access to cataloged data; it is neither the log store nor the query engine. For a query-based Security Lake subscriber, source selection establishes which security-log tables are shared. The subscriber queries those tables through an integrated engine such as Athena rather than receiving object notifications for direct ingestion.
Amazon Security Lake: Subscriber access: How to integrate third-party security tools using scoped data-access or query-access subscribers, including delivery notifications and the permissions required to read encrypted data.
A data-access subscriber reads Security Lake objects from Amazon S3, typically to ingest them into a third-party tool. It can receive new-object notifications through Amazon SQS or an HTTPS endpoint. A query-access subscriber queries shared tables through AWS Lake Formation, commonly using Amazon Athena, instead of ingesting every object.
Amazon Athena: SQL over heterogeneous security logs: How table schemas, nested-field extraction, timestamp normalization, and partition-aware SQL joins make security logs in S3 searchable and correlatable across sources.
Athena tables describe how to read S3 objects; creating an external table does not import or rewrite those objects. The AWS Glue Data Catalog holds column types, the S3 location, the serialization/deserialization library (SerDe), and partition metadata. Separate tables should describe sources with different record layouts, even when their files share a bucket.
Amazon OpenSearch Service and Amazon Athena: indexed search versus SQL over stored logs: How indexing, query latency, data freshness, and cost distinguish OpenSearch log searches from Athena queries over logs in Amazon S3.
The important distinction is when work is done, not whether the interface accepts SQL. In indexed log search, Amazon OpenSearch Service builds searchable structures as documents arrive. An inverted index maps terms to matching documents; other structures support operations such as sorting and aggregation. That preparation consumes ingestion capacity and storage before an investigator searches.
Temporal Correlation: reconstructing cross-source timelines: How to reconstruct defensible event sequences across logs using contextual links and event-time windows that account for clock skew, delivery delays, and incomplete evidence.
A defensible timeline represents when activities occurred, the evidence linking them, and the uncertainty in their order. Begin with an anchor record and preserve its original timestamp, source, account, Region, resource, identity, and available request or session identifiers. A timestamp alone is not a relationship.
AWS Lambda: log transformation handlers: How Lambda handlers decode batched log events, normalize records, preserve correlation fields, and handle malformed records without losing valid data.
A handler must follow its source event contract, not assume every invocation contains individual JSON log records. For a direct CloudWatch Logs subscription to Lambda, event.awslogs.data contains a base64-encoded, gzip-compressed JSON envelope. Base64-decode it, gzip-decompress the resulting bytes, then parse the decompressed JSON. Kinesis and Firehose integrations have different outer contracts; do not reuse their response formats here.
Amazon OpenSearch Service: indexed log analytics: How ingest pipelines, consistent field mappings, and indexed queries enable parsing, normalization, and correlation of logs across applications and AWS services.
Cross-source log analytics needs more than a common destination. Collection transports events, an adapter handles the delivery envelope, and an ingest pipeline transforms each document before indexing. This diagram shows one configured path for application logs and AWS API activity, not every supported ingestion option.
Amazon Managed Grafana: cross-source log correlation: How query-time field transformations, aligned time ranges, and field-based links correlate logs across connected data sources without modifying stored logs.
Amazon Managed Grafana correlates logs by querying connected sources and working with their returned fields. For example, application logs in CloudWatch Logs might expose requestId, while service logs in OpenSearch expose request_id. If both values identify the same request, Grafana can present them consistently and provide a path between them.
Amazon VPC: flow log configuration and interpretation: How capture scope, record fields, aggregation, and delivery choices determine what VPC Flow Logs reveal about network traffic and what they cannot show.
VPC Flow Logs record IP traffic metadata at network interfaces, not packets or application conversations. Creating a flow log at VPC or subnet scope covers network interfaces in that scope, including interfaces created later. Interface scope gives a narrower observation point. A VPC-scoped flow log is not a single observation point at the VPC boundary.
AWS Transit Gateway: flow logs: How to configure transit gateway and attachment flow logs, choose record fields and delivery destinations, and interpret traffic metadata and logging limitations for security monitoring.
Transit Gateway Flow Logs record metadata about IP traffic traversing a transit gateway. Create a flow log on the transit gateway to cover its attachments, or on an individual transit gateway attachment to narrow collection. Gateway-wide collection provides a broad monitoring baseline; attachment collection isolates a particular connection. Overlapping collection can produce duplicate observations that downstream queries must distinguish.
Amazon Route 53: Resolver query logging: How Resolver query logging captures DNS activity through VPC associations, destination permissions, and cross-account sharing, and how caching and log fields affect visibility.
Resolver query logging records eligible DNS queries handled by Route 53 Resolver for associated VPCs. A regional query logging configuration selects a destination; a VPC association selects the source. Creating the configuration alone does not enable logging for every VPC. The diagram combines control-plane relationships with logical log delivery: the configuration is not an extra DNS forwarding hop.
DNS Tunneling: Visibility across DNS resolution paths: How workload resolution paths determine where to configure DNS query logging and why flow logs alone cannot reveal tunneled query content.
DNS tunneling carries information in query names or response data. A compromised workload can send encoded labels beneath an attacker-controlled domain through a recursive resolver; it does not need a direct connection to the attacker's authoritative server. To investigate that behavior, you need the queried names, not just evidence that a DNS connection existed.
Lateral Movement: log coverage for reachable paths: How to map reachable network paths to VPC, transit gateway, and Resolver logging coverage, choosing collection settings that expose movement attempts and recognizing visibility gaps.
Start with a path inventory: source and destination interfaces, subnets, routes, transit attachments, and security controls. Include local, peered, transit, and hybrid paths. A route alone does not establish reachability; forwarding and security controls must also permit traffic. Include attempted paths that controls reject, because blocked probing is useful evidence.
Lateral Movement: linking evidence across trust boundaries: How to reconstruct movement across workload and account boundaries by linking network and DNS records with authentication and role-assumption events using timestamps and historical resource mappings.
Reconstruct lateral movement as a chain of bounded claims, not a sequence of suspicious timestamps. A workload boundary asks whether one workload reached and authenticated to another. An account boundary asks whether an identity obtained and used authority in another account. These paths can connect, but a network connection is not required for identity-based movement through AWS APIs.
Access Control: service-to-service authorization: How service identities, destination policies, and permission constraints authorize log delivery and narrowly scoped health-check requests.
A service name is not enough to identify the principal making a request. Lambda logging uses the function's execution role; API Gateway REST logging uses a configured CloudWatch logging role. CloudFront standard logging v2 to S3 uses a managed delivery mechanism whose destination policy authorizes the log-delivery service principal.
AWS Lambda: function logging configuration: How execution-role permissions, log destinations, structured formats, and log-level filters determine whether function logs are delivered and visible.
Lambda function logging has separate controls for delivery and visibility. The function's logging configuration selects a CloudWatch Logs destination, output format, and severity thresholds. Its execution role must authorize writes, while the person reading the logs needs separate read permissions.
Amazon API Gateway: access and execution logging: How API type, stage settings, log formats, and CloudWatch delivery permissions determine which API Gateway request records are emitted and how to diagnose missing or incomplete logs.
Access logs describe requests using a format you choose: request identity, route, response status, timing, and selected error details. Execution logs describe API Gateway's internal request processing, including errors and, when configured, additional processing details. Enabling one does not enable the other.
Amazon CloudFront: request logging: How standard and real-time logging settings, delivery permissions, sampling, and request fields determine CloudFront log coverage and explain missing or incomplete records.
CloudFront request logs describe viewer requests, including cache hits; they are not just records of requests forwarded to an origin. Standard and real-time logging can coexist, but enabling one does not enable the other.
AWS Well-Architected Framework: preparing for security events: How security pillar practices shape incident response readiness through defined ownership, documented procedures, pre-provisioned access, and rehearsals that drive improvements.
The security pillar treats preparing for security events as an operational capability, not just a document. Before an event, identify who declares an incident, directs the response, authorizes disruptive containment, and communicates with stakeholders. AWS manages security of the cloud; the customer still needs response ownership for its workloads, identities, configurations, and data.
Incident Response Lifecycle: executable response plans: How to translate lifecycle phases into scenario runbooks with decision authority, evidence safeguards, recovery gates, and exercise-tested outcomes.
The response plan establishes incident command, severity rules, escalation, communication, and decision authority. A scenario runbook translates that policy into actions with inputs, prerequisites, commands, expected results, failure branches, and recorded outputs. Define these terms internally. Lifecycle phases describe the work; they are not a rigid workflow. New evidence during recovery can require renewed containment.
AWS Systems Manager Automation vs AWS Step Functions: How operational resource runbooks differ from general-purpose application workflows in execution model, built-in controls, and orchestration boundaries.
Systems Manager Automation executes an operational procedure described by a runbook: a JSON or YAML document with parameters, mainSteps, action inputs, and outputs. Actions such as aws:executeAwsApi operate through AWS APIs. Automation does not inherently require an agent on the affected resource; actions that run commands on managed nodes have node-management prerequisites.
AWS Systems Manager: Automation execution controls: How scoped roles, approvals, branching, and failure handling control incident-response runbooks invoked through OpsCenter or event triggers.
An incident-response runbook has two authorization boundaries: starting the execution and performing its actions. An operator launching Automation through OpsCenter needs permission to start the selected runbook. An EventBridge rule targeting Automation uses a target role with that permission. Neither entry point grants approval or makes the runbook's resource changes automatically authorized.
Amazon SageMaker: notebook-based incident response runbooks: How SageMaker AI notebooks execute reproducible response procedures with scoped permissions, reviewable outputs, and safeguards for remediation steps.
A SageMaker AI notebook can combine response instructions, Python SDK calls, and their outputs in one document. This is a custom incident-response tool, not a built-in incident workflow or approval system. No model training is required: the kernel executes your response code.
Blast Radius: containment boundaries: How isolation boundaries constrain incident propagation, and how pre-incident exercises verify that containment preserves those boundaries.
A containment boundary is an enforced limit on what a compromised identity or failed workload can affect. Account, VPC, and application boundaries are useful only when the permissions, connections, and shared dependencies crossing them remain narrow. Evaluate the boundary from the compromised principal’s position: which resources can it change, which roles can it assume, and which shared systems can it disrupt?
Amazon VPC: routing boundaries and network segmentation: How subnet routing establishes isolation boundaries for internal and hybrid traffic, and how Network Access Analyzer and Reachability Analyzer expose unintended or blocked paths.
A subnet uses one effective route table: an explicit association, or the VPC main route table when no explicit association exists. Routing chooses the longest matching destination prefix, not the route that best expresses security intent. Separate subnet route tables let you give different subnets different external paths, but the VPC local route normally still connects its subnets. Removing an internet default route does not isolate a subnet from its neighbours.
Amazon VPC: security groups and network ACLs: How stateful security groups and stateless network ACLs interact to permit traffic, block unwanted access, and contain compromised resources, including existing-connection behavior.
Security groups filter traffic at associated network interfaces. Their rules only allow traffic: there is no deny rule and no rule ordering. When several security groups are attached to an interface, their permissions combine. A restrictive group cannot cancel an allow in another attached group.
Least privilege: workload role isolation: How dedicated workload identities, narrowly scoped trust, and restricted role passing separate runtime capabilities from deployment authority.
A dedicated workload identity gives each workload permissions for its own work, rather than inheriting a shared administrator or deployment role. An invoice reader needs permission to read its invoice objects and write its logs—not to update functions, select more powerful roles, or change IAM policies.
Least privilege: effective permission limits: How to constrain and verify effective access across policy grant paths, including boundaries, session policies, and resource-based grants, to eliminate unintended permissions.
Effective access is the result for a particular principal, action, resource, and request context—not a property of one policy document. Identity-based and resource-based policies can supply grants. A permissions boundary sets a maximum for a user or role, and a session policy restricts a particular temporary session. Neither independently grants access.
AWS IAM: privileged and emergency access: How root credential protections, centralized root access, and tightly scoped emergency roles provide controlled administrative access when ordinary access paths fail.
The root user is not a backup administrator account for everyday repairs. Some account tasks require root, and an IAM role with AdministratorAccess does not become root. For repairs that IAM permissions can authorize, prepare a separate emergency IAM role with only the permissions needed to restore access.
Break-Glass Access: retained root credentials and recovery: How to protect and test emergency use of retained root credentials, including management-account credentials, through controlled custody, MFA, independent recovery channels, and post-use review.
Retained root credentials are an exceptional recovery capability, not a substitute for an emergency IAM role. Keep them only where required, avoid root access keys, and document which tasks justify root sign-in. Centralized root access for member accounts does not replace protection of the management account's own root credentials.
Break-Glass Access: independent emergency role access: How to provision and test an independently authenticated emergency IAM role path with task-scoped permissions, policy constraints, monitored activation, and session revocation.
Independent authentication means emergency entry does not require the federation service it must survive. This implementation uses a dedicated IAM user with securely held bootstrap credentials and MFA to assume a precreated emergency role. Give the user permission only to assume that designated role, not to operate workloads directly. Restrict the role trust policy to the intended user and require aws:MultiFactorAuthPresent for this IAM-user path.
Break-Glass Access: centralized root sessions: How to prepare emergency access for supported member-account root tasks using centralized root access, authorized short-lived sessions, and recovery paths for organization-level restrictions.
Centralized root access separates managing member-account root credentials from performing supported privileged tasks. Before an incident, use the management account to establish IAM trusted access with AWS Organizations and enable the required capabilities. The organization must use all features. A registered delegated administrator can provide a central operating point without routine management-account access.
AWS Systems Manager: Session Manager security controls: How node connectivity, IAM permissions, session documents, encryption, and logging secure administrative sessions, including audit limitations for tunnels.
Session Manager separates permission to request a session from the node's ability to establish it. The node needs a supported, running SSM Agent, managed-node credentials, and outbound HTTPS access to required Systems Manager endpoints, including ssm and ssmmessages. Older agent and Region combinations can also require ec2messages. Session Manager itself needs no inbound SSH or RDP rule.
AWS Shield: configuring Shield Advanced protections: How resource-specific Shield Advanced protections are configured for DDoS mitigation, health-based detection, and Shield Response Team readiness.
A Shield Advanced subscription does not automatically register every resource for Advanced protection. Create a protection for each eligible resource, identifying it by its ARN. Through the API, CreateProtection takes the resource ARN and returns a protection ID. Keep both identifiers: later operations use either the resource ARN or the protection ID.
Tabletop Exercises: scenario-driven plan validation: How to structure and facilitate an incident scenario around measurable objectives, evaluate participants’ decisions, and turn observed plan gaps into accountable improvements.
A tabletop exercise validates an incident response plan through structured discussion. Start with the decisions the plan must support, not an elaborate attack story. Define the plan version, accounts and workloads in scope, participating roles, and exclusions. Include people who hold actual decision authority: responders, operations, application owners, and relevant business, legal, privacy, or communications representatives.
Chaos Engineering: hypothesis-driven fault experiments: How controlled faults, measurable response hypotheses, bounded blast radius, and verified recovery paths reveal weaknesses in technical resilience and incident response procedures.
Chaos engineering tests a specific resilience claim by introducing a controlled fault and comparing measured behavior with a prediction. Define the steady state using customer outcomes, such as successful requests and latency, under a stated workload. Infrastructure health alone cannot establish that customers can complete their work.
Tabletop Exercises vs Chaos Engineering: How discussion-based validation of organizational readiness differs from controlled fault injection, and what evidence each can establish.
Tabletop exercises validate an incident response plan through structured discussion. Participants explain decisions using a simulated incident and the current plan. The observations concern organizational readiness: whether people can identify authority, reconcile responsibilities, and explain how they would coordinate. A simulated alert described by a facilitator is not an alert delivered through the monitoring system.
AWS FIS: controlled fault-injection experiments: How experiment templates define fault actions, scoped targets, execution permissions, and alarm-based stop conditions to safely test incident detection and response against observed experiment outcomes.
An AWS FIS experiment template defines fault actions, resource targets, an execution role, and stop conditions. Starting an experiment creates a run of that definition; it does not create an isolated sandbox. The selected resources experience real disruption.
AWS Resilience Hub: operational resilience recommendations: How Resilience Hub uses resilience assessments to recommend recovery procedures and tests for validating operational readiness against recovery objectives.
AWS Resilience Hub assesses the resources and configuration represented in an application against a resiliency policy. The policy defines recovery objectives for disruption types, such as infrastructure, Availability Zone, and Region disruptions. RTO is the target maximum time to restore service; RPO is the target maximum acceptable data loss expressed as time. Different disruption types can have different targets.
AWS Resilience Hub vs AWS Fault Injection Simulator: assessment and experimentation: How Resilience Hub's resilience assessments and test recommendations differ from AWS Fault Injection Simulator's execution of controlled disruptions.
AWS Resilience Hub assesses whether an application's modeled configuration is expected to meet resilience objectives. AWS Fault Injection Simulator (AWS FIS) executes controlled fault-injection experiments against selected resources. They provide complementary evidence, not interchangeable verdicts.
AWS Lambda vs AWS Step Functions: execution and orchestration: How to distinguish Lambda's code-execution role from Step Functions' workflow-orchestration role when choosing components for automated incident response.
AWS Lambda executes application code. In incident response, a function can evaluate custom containment policy, call a remediation API, and return a result. Choose it when the missing capability is an algorithm or action implemented in code.
Idempotency: retry-safe remediation actions: How explicit desired states, stable action keys, and durable execution records preserve remediation effects across concurrent retries and uncertain completion.
Idempotency means repeating one logical request does not change its intended effect after that effect has been achieved. It does not require identical responses, logs, or execution counts. A timeout is not proof of failure: the destination may have completed the request before the response was lost.
AWS Lambda: remediation event handlers: How event-triggered functions perform narrowly authorized remediation safely despite duplicate events, retries, partial failures, and concurrent invocations.
An event is evidence that remediation may be needed, not permission to make an arbitrary change. This design uses a Lambda handler to place an approved EC2 network interface into a predefined quarantine security-group configuration. The handler must tolerate duplicate delivery, stale findings, concurrent invocations, and failure after an API call has already succeeded.
AWS Step Functions: resilient service orchestration: How state machines coordinate incident-remediation actions through service integrations, bounded retries, timeouts, and failure paths that can be tested through controlled executions.
A remediation state machine should record which action is running, what counts as success, and where failures go. This design uses an Amazon States Language Standard Workflow, with execution history for inspecting state transitions. Event routing starts the execution; it does not implement the remediation sequence.
Data Retention: preserving forensic logs: How to select incident-relevant log sources and time windows for capture into durable evidence storage with retention periods and disposal exceptions that preserve their investigative value.
Begin with an evidence scope: the identities, resources, accounts, Regions, and actions under investigation. Select complementary sources that can connect an identity to an action and its effect. Preserve the selection criteria and known gaps; an empty result is not proof that nothing happened.
Legal Holds and Data Retention: release versus expiration: How explicitly released legal holds differ from time-based retention, and why ending either protection does not end the other.
A legal hold preserves information until an authorized person explicitly releases it. Time-based retention protects information until a defined time boundary. These are independent protections, not two names for the same countdown.
Data Retention: automated retention enforcement: How to implement retention boundaries across live data, object versions, and backups using lifecycle expiration, deletion protection, and hold exceptions without mistaking storage tiering for disposal.
Implement retention with a minimum boundary against premature destruction and a disposal boundary against unnecessary retention. For each data class, define its owner, the event that starts its clock, and approved exceptions. Object creation, becoming noncurrent, and backup creation start different clocks.
Evidence Integrity: preserving forensic log artifacts: How to preserve original logs using protected collection, authenticated hash manifests, transfer validation, and tamper-resistant storage while recognizing the limits of integrity guarantees.
Preservation starts at acquisition, not at the first search query. Forward logs away from workloads before an incident, using authenticated transport and a destination that workload administrators cannot erase. For file artifacts, collect closed, rotated files or a consistent capture: hashing a file while it changes does not establish a stable baseline.
Chain of Custody: provenance through automated evidence handling: How to maintain an auditable custody history through automated collection, protected storage, and handoffs, coordinating preservation with disruptive remediation and documenting unavoidable gaps.
A custody workflow must identify every acquisition, not merely finish successfully. Bind each artifact to a case ID, evidence ID, source account and resource, UTC collection interval, collector role session, tool version, and workflow execution. Record API request IDs where available, outcomes, and failed attempts. Retried collection must not silently replace an earlier acquisition.
Chain of Custody vs. Evidence Integrity: Why documenting evidence origins and handling differs from verifying unchanged content, and why neither provides the other's assurance.
Chain of custody supports a claim about an artifact's origins and handling: where it came from, who or what collected it, and what happened afterward. For a cloud log export, that history can connect the source account and resource, collection window, automation role, and subsequent transfers to a specific evidence identifier.
Amazon GuardDuty and Amazon Inspector: threat detection versus vulnerability assessment: How GuardDuty's detection of malicious behavior differs from Inspector's identification of software vulnerabilities and unintended network exposure.
Amazon GuardDuty asks whether observed activity indicates a threat. It analyzes sources such as CloudTrail management events, VPC flow data, and DNS query data using threat intelligence, anomaly detection, and other detection techniques. A finding can identify behavior consistent with credential misuse or communication with malicious infrastructure; it does not require a known software vulnerability.
Amazon Macie vs Amazon GuardDuty: sensitive data and threat detection: How Macie's sensitive-data and S3 security-posture findings differ from GuardDuty's threat findings, and why data discovery does not establish malicious access.
Amazon Macie produces two distinct kinds of findings. A sensitive-data finding reports sensitive information detected in an analyzed S3 object using managed or custom data identifiers. A policy finding reports an S3 bucket security or privacy risk, such as public access or sharing outside the account. Content classification and bucket posture are separate observations: neither requires a malicious reader.
Amazon Inspector: EC2 network reachability findings: How Inspector derives reachable EC2 ports from network configuration and exposes network paths and analysis limitations for identifying unnecessary access.
Amazon Inspector network reachability findings identify EC2 ports that network configuration makes accessible from outside the instance's VPC. Entry points can include internet gateways, virtual private gateways, and VPC peering connections. Reachable therefore does not always mean publicly accessible from the internet. Inspector analyzes configuration; it does not send connection attempts to discover listening services.
Amazon Detective: behavior graphs and entity profiles: How Detective correlates telemetry into entity relationships and time-based profiles to reveal the origins of suspicious activity.
Amazon Detective correlates security telemetry into a behavior graph and presents investigative views through entity profiles. The diagram shows its core input paths, not a log-delivery pipeline you must assemble. Detective collects its supported source data independently of your configured CloudTrail trails and VPC flow-log delivery destinations.
False Positives: evidence-based classification: How corroborating evidence and visibility gaps determine whether a detection is a false positive, benign true positive, genuine threat, or unresolved finding without overstating scope or impact.
A finding is an investigative claim, not a verdict. Identify the account, Region, resource, principal, time window, and exact condition asserted. An attempted operation, a successful operation, an exposed configuration, and unusual behavior are different claims. Severity helps prioritize investigation; it does not prove compromise or impact.
Blast Radius: potential exposure and confirmed impact: How evidence of activity across identities, resources, accounts, and Regions establishes observed impact while telemetry gaps leave potential exposure uncertain.
Potential exposure is what a compromised identity could reach under the permissions, trust relationships, and other access controls effective during the incident. Observed impact is what evidence establishes actually happened. A permission policy establishes neither successful use nor data theft; even potential access requires considering applicable denies, resource policies, and conditions.
Network Isolation: incident quarantine boundaries: How to establish and verify bidirectional quarantine across every workload network path, accounting for control behavior while preserving narrowly authorized investigation access.
Bidirectional quarantine means that neither unauthorized inbound traffic nor unauthorized outbound traffic can use any workload network path. Inventory every network interface, attached security group, IPv4 and IPv6 address, subnet ACL, route, load balancer attachment, and reachable endpoint. Include same-subnet peers, peering, transit, VPN, NAT, and private service access: no public address does not mean no connectivity.
AWS IAM: credential and session revocation: How access-key deactivation, role-session revocation, explicit denies, and trust-policy changes restrict compromised identities, including their effects on already-issued credentials.
Access-key deactivation prevents an IAM user's long-term access key from authenticating subsequent requests once the change has propagated. It is reversible; deletion is permanent. Neither action changes the status of another access key belonging to the same user.
Credential Revocation: invalidating credential chains: How to stop access through compromised credentials and their derived sessions, prevent fresh credentials from being issued, and verify revocation before restoring trusted access.
A compromised credential is often the root of a credential chain: an IAM access key obtains a role session, which assumes another role or opens an application session. Preserve credential identifiers and relevant audit records without copying secret values. Trace the identity's activity, role assumptions, newly created credentials, and trust-policy changes; the exposed key is only the starting point.
AWS Systems Manager: Patch Manager policies and compliance: How patch baselines and policies govern approval, staged installation, reboot behavior, and compliance validation across managed nodes.
A patch baseline defines which patches are approved for an operating system. Approval rules filter patch metadata, such as classification and severity, and can delay approval after release. Explicit approved and rejected lists handle exceptions. Approval means eligible for installation, not installed, scheduled, or proven safe for your application.
Immutable Infrastructure: trusted image baselines: How controlled image builds embed hardening, validate security controls, and produce traceable replacement artifacts without embedding secrets.
A trusted image baseline is an artifact produced from controlled inputs, not a snapshot of a convenient running server. Review the build definition, restrict its modification, and separate permission to build from permission to approve production releases. Build identities need only the access required for their stage.
Immutable Infrastructure: incident-safe replacement: How to replace compromised compute from a trusted baseline while preserving evidence and addressing compromise that persists outside disposable resources.
Replacement is recovery, not proof of eradication. A new instance removes the old instance’s local changes. It does not remove stolen credentials, attacker-created permissions, or malicious files on shared storage. Treat containment, evidence preservation, eradication, and recovery as separate outcomes.
AWS Backup: isolated and immutable recovery points: How automated cross-account and cross-Region backup copies use vault access controls, encryption, and Vault Lock to resist compromise and deletion.
Cross-account copies separate backup administration from production credentials. Cross-Region copies separate recovery points from a regional failure. Neither separation makes a copy immutable: the destination also needs restrictive access controls and Vault Lock.
AWS Backup: restoring into a clean environment: How to select recovery points, configure restore jobs into a clean environment, and verify recoverability through restore testing.
A recent backup is not necessarily a clean recovery point. Use the incident timeline to identify the earliest credible compromise, not merely the detection time. Select a candidate before that boundary, then validate it after restoration: a timestamp alone cannot prove that data or software is safe. Record the selected recovery point ARN, source resource, backup time, and reason for selection.
AWS CloudTrail: Event identity and request context: How to interpret and correlate caller identities, role sessions, request details, and errors in CloudTrail records to explain activity and authentication failures.
Read userIdentity.type before interpreting identity fields. An IAMUser, AssumedRole, and AWSService represent different kinds of callers. For an assumed role, userIdentity.arn identifies the STS role session, such as arn:aws:sts::111122223333:assumed-role/Deploy/build-42. It does not identify the original human or workload that obtained the credentials.
Attack Path Analysis vs. Timeline Reconstruction: How tracing feasible or observed access routes differs from ordering events chronologically, and why chronological proximity does not establish a causal connection.
Attack path analysis asks which access transitions connect an entry point to an objective. Its relationships describe capabilities or actions: assuming a role, retrieving a credential, or reading an object. Timeline reconstruction asks what happened when. Its ordering relates observations by time, not automatically by dependency.
Timeline Reconstruction: evidence-backed incident sequences: How to correlate time-normalized events across identities and resources into an incident sequence that distinguishes supported root causes from later activity while preserving provenance and uncertainty.
A defensible timeline separates source evidence from the investigator's interpretation. For each event, preserve the source and original-record reference, original timestamp and offset, normalized UTC time, principal, resource, action, and result. Keep the query scope and transformation rules with the derived timeline so another investigator can reproduce it. Preserve original records separately; correcting a normalized field must not silently rewrite the evidence.
Attack Path Analysis: Evidence-backed compromise paths: How to trace a compromise through resource and identity relationships, corroborating each transition and identifying the control failures that enabled it.
An attack path connects an entry point to an objective through resource and identity relationships. Treat each transition as a separate claim: which principal acted, what capability it used, which resource it reached, and what evidence supports that connection. A role attachment, network route, or permission grant identifies a relationship, not proof that an attacker used it.
Threat Modeling: network-edge security requirements: How attacker capabilities, exposed protocols, and origin access paths determine edge protection requirements and residual risks.
An edge threat model connects an attacker capability to a resource or operation the attacker can misuse. A botnet can exhaust network capacity without sending valid application requests. A small client can repeatedly invoke an expensive report. A stolen account can make ordinary-looking requests for another customer's records. State the objective, reachable endpoint, protocol, and business impact before selecting controls.
AWS Shield vs AWS WAF: DDoS protection and request filtering: How Shield's DDoS availability protections differ from WAF's web request filtering, and where their application-layer responsibilities overlap.
AWS Shield protects availability against distributed denial-of-service attacks. Network and transport attacks can exhaust bandwidth or connection-handling capacity without carrying a meaningful HTTP request. AWS WAF evaluates HTTP/S requests against a web access control list, or web ACL, at a supported resource. It can reject an exploit request even when traffic volume is low.
DDoS Mitigation: matching edge defenses to attack layers: How to select and place edge defenses for bandwidth, connection-state, and application-resource exhaustion, preserving legitimate access and preventing attackers from bypassing the protected entry point.
Start with the resource being exhausted, not the request count. Reflection and amplification floods consume bandwidth; SYN floods attack connection establishment and state; valid-looking searches or logins consume application workers and database capacity. Filter before the constrained resource: a regional firewall cannot recover an upstream link that is already saturated, and autoscaling web servers cannot remove a database bottleneck.
Defense in Depth: independent network protection layers: How to combine threat-appropriate edge defenses with independently enforced internal trust boundaries so that bypassing one control does not expose downstream workloads.
Defense in depth means that one control's failure does not remove every downstream restriction. Start with the anticipated attack: volumetric floods, malicious HTTP requests, direct-origin access, and lateral movement need different enforcement points. Repeating an HTTP rule at several places does not address all four.
OWASP Top 10: boundaries of edge protection: How underlying OWASP risk mechanisms determine what edge filtering and browser-facing controls can mitigate and what requires fixes inside the application.
The OWASP Top 10 groups broad web application risks; it is not ten attack signatures or a complete testing standard. Categories change between editions, so identify the edition when reporting coverage. For control selection, ask what causes the failure and which component has enough information to prevent it.
Same-Origin Policy: controlled cross-origin response access: How browsers enforce origin boundaries and evaluate CORS permissions, including preflight, credentials, and the effects of S3 configuration and CloudFront caching on response access.
The Same-Origin Policy isolates browser contexts by scheme, hostname, and effective port. Paths do not matter: https://app.example.com/dashboard and https://app.example.com/settings share an origin. Explicit HTTPS port 443 is the default and changes nothing; a different scheme, hostname, or effective port creates another origin.
AWS WAF: web ACL request evaluation: How rule priority, terminating actions, text transformations, and inspection limits determine the outcome of application-layer request inspection.
AWS WAF evaluates a web ACL's rules in ascending numeric priority: the lowest number runs first. A nonmatching rule passes evaluation onward. A matching rule applies its action, but evaluation stops only if that action is terminating. The web ACL's default Allow or Block action applies only when evaluation finishes without a terminating action.
AWS WAF: client identification and matching: How IP addresses, forwarded-IP configuration, geographic labels, and JA3 or JA4 fingerprints identify clients for targeted request filtering.
An IP set matches addresses against CIDR ranges. Each set contains either IPv4 or IPv6 addresses; use separate sets when both families matter. By default, AWS WAF uses the request's origin IP: the source address it sees, which can belong to a proxy rather than the original client. Shared NAT addresses and changing client addresses make an IP match a network signal, not proof of identity.
AWS WAF: rate-based rules: How aggregation keys, evaluation windows, scope-down statements, and enforcement actions control excessive request rates without unnecessarily restricting legitimate traffic.
A rate-based rule tracks requests in separate aggregation instances and applies its action to instances whose estimated request rate exceeds the configured limit. The aggregation key defines those instances: source IP creates one per IP address; custom keys create one per distinct combination of values. The limit applies independently to each combination, not to the rule's combined traffic.
AWS WAF: managed rule group integration: How to deploy AWS and Marketplace managed rule groups and tune their behavior through version selection, scope-down statements, action overrides, and labels.
A managed rule group is maintained by AWS or a Marketplace seller; you reference it rather than edit its rules. For a Marketplace group, subscribe before adding it. Discover groups with ListAvailableManagedRuleGroups, and inspect the chosen group with DescribeManagedRuleGroup. Add a web ACL rule containing ManagedRuleGroupStatement with the exact VendorName and Name, a priority, and visibility settings. Use OverrideAction: None to preserve the group's resulting action. Associate the web ACL with the supported resource in the appropriate scope.
AWS IoT Core: least-privilege IoT policies: How IoT policies authorize device connections and MQTT operations using action-specific resources, thing policy variables, and conditions to prevent cross-device access and diagnose authorization failures.
For certificate-authenticated MQTT connections, authentication establishes the device's identity; an AWS IoT policy authorizes its operations. An active certificate alone grants no MQTT permissions. Policies attached to the certificate, including applicable thing-group policies, contribute permissions. A matching allow is required, and an applicable explicit deny overrides allows.
Geofencing: geographic policy evaluation at the edge: How CloudFront country restrictions and AWS WAF geographic rules enforce geographic boundaries through trusted client-IP selection, correct rule scope and ordering, and explicit handling of uncertain locations.
CloudFront geographic restrictions apply a country allowlist or denylist to an entire distribution. AWS WAF geographic rules can combine location with paths, methods, IP exceptions, and other request conditions. A native CloudFront geo block cannot be overridden by a WAF exception; requests blocked by that restriction do not reach WAF evaluation.
Client Fingerprinting: TLS signatures in edge rules: How AWS WAF uses JA3 and JA4 fingerprints to scope edge enforcement while accounting for signal availability, shared signatures, and missing fingerprints.
AWS WAF uses JA3 and JA4 fingerprints derived from TLS ClientHello characteristics to correlate requests with similar client implementations. JA3 hashes selected, ordered handshake parameters into a 32-character value. JA4 uses a different, normalized representation with 36 characters; sorting selected inputs reduces sensitivity to changes such as TLS extension ordering.
Rate Limiting: AWS WAF rate-based policies: How to configure scoped, rate-based rules using trustworthy aggregation keys and approximate enforcement thresholds to curb abuse without unnecessarily restricting legitimate traffic.
An AWS WAF rate-based rule combines a request population, an aggregation method, an evaluation window, a limit, and an action. The scope-down statement selects the population: for example, requests whose method is POST and whose URI path is /login. Requests outside that scope neither contribute to this rule’s rate nor receive its rate-based action.
OCSF: normalizing edge security telemetry: How to map edge-service and third-party security events to OCSF classes and attributes, preserving source semantics and validating schema and downstream interpretation independently of delivery.
OCSF is a schema framework, not a transport or an enforcement control. Start a mapping contract by pinning the OCSF version and describing what each source record asserts. Choose the event class from that assertion, not from the vendor name or the fact that the source is a security product.
AWS Marketplace: third-party WAF rule group subscriptions: How Marketplace subscriptions control entitlement and billing for third-party WAF managed rule groups, and how their lifecycle relates to activation in AWS WAF.
A third-party managed rule group has two separate lifecycles. An AWS Marketplace subscription establishes the subscribing account’s entitlement under the seller’s terms and pricing. AWS WAF configuration determines where the group evaluates requests. Subscribing does not create a web ACL, associate one with a resource, or insert the group into an existing ACL.
OS Hardening: EC2 guest OS baselines: How to encode and test a workload-specific AMI baseline that restricts guest OS services and privileges while preserving required security and management agents.
A workload-specific baseline states what must exist, what must be prohibited, and what evidence proves both. For a Linux web workload, record approved packages, listening services, application identities, writable paths, administrative access, auditing, and required management and security agents. Use a benchmark matched to the distribution and release as a starting point; give each exception an owner, justification, and review date.
Amazon EC2: hardened AMIs: How to build, test, and securely distribute AMIs with baked-in operating system hardening and host security controls.
A hardened AMI captures a reviewed operating system baseline, not a permanently secure instance. Bake in approved packages, current patches, restrictive file permissions, audit rules, host firewall configuration, and required security agents. Choose a benchmark profile appropriate to the workload; blindly applying every rule can break boot, management, or application behavior. Record justified exceptions alongside the baseline.
AWS Systems Manager: AMI creation runbooks: How Automation runbooks configure a temporary build instance, validate its hardening, create an AMI, and clean up build resources.
An AMI creation runbook is an Automation workflow that turns a known base image into a reusable machine image. Use a temporary EC2 instance, not a production server: the builder must contain only the software and configuration intended for future instances. Pin the source AMI ID, runbook version, and configuration inputs so that the build has a traceable starting point.
OS Hardening: Container image baselines: How to build and test minimal, non-root container images without embedded secrets, distinguishing image-enforced protections from controls required on the host or at runtime.
A container baseline defines the user-space files, dependencies, permissions, and default identity needed by one workload. Start with a trusted, supported base and pin it by digest so the build selects known content. Pinning provides repeatability, not freshness: regularly update the selected digest and rebuild. Minimal means removing unnecessary components, not choosing the smallest image regardless of compatibility.
Containers: hardened image builds: How to build and maintain hardened container images using minimal bases, multistage builds, non-root execution, secret-safe build practices, and automated security checks before deployment.
A minimal base reduces installed software and the dependencies you must maintain; small size alone does not establish trust. Choose a maintained source, verify compatibility, and pin each FROM to an approved digest. Pinning makes the input stable, but also freezes its vulnerabilities until you deliberately update it. A distroless image omits many administrative tools; scratch provides an empty filesystem. Neither supplies dependencies your application still needs, such as shared libraries or CA certificates.
Amazon ECR: hardened image integrity: How tag immutability, digest-pinned image references, and restricted repository writes prevent hardened container images from being silently replaced before deployment.
A hardened image can pass review and still be replaced before deployment if the deployment references a movable tag. In Amazon ECR, a tag names an image manifest; a digest identifies its content. With mutable tags, pushing different content under an existing tag changes what a later pull by that tag selects.
AWS STS and IAM: credential issuance versus identity management: How STS issuing temporary credentials differs from IAM defining identities, roles, and access policies.
IAM manages durable identity and authorization configuration: users, groups, roles, and policies. An IAM role is a persistent identity with a trust policy and permissions configuration, not a stored set of access keys. A role can exist while nobody is using it.
AWS IAM: workload role integration: How instance profiles, service roles, and execution roles attach permissions to workloads, including PassRole controls and service-specific role boundaries.
A service role is an IAM role that a service assumes to act on your behalf. An execution role names that role's purpose in a particular service; it is not a different IAM identity type. The integration determines where you configure the role and which service principal its trust policy must allow.
Amazon ECS: IAM role boundaries: How ECS separates application, task startup, container instance, and service permissions through distinct IAM roles, and how to configure and troubleshoot their trust and permission boundaries.
ECS does not use one role for everything. The task role authorizes application SDK calls; the task execution role authorizes supported agent operations such as private image retrieval, log delivery, and startup secret retrieval. Execution-role credentials are not exposed directly to application containers. ECR supplies container images, unlike source-code or software-package repositories.
Runtime Threat Detection vs. Vulnerability Assessment: How evidence of suspicious execution differs from evidence of exploitable weaknesses, and why neither detection approach substitutes for the other.
Vulnerability assessment asks whether an asset contains an identifiable weakness. For a known package vulnerability, an assessment matches package identity and version information against vulnerability intelligence. This supports the claim that a component is affected, subject to the accuracy of that information. It does not establish that the vulnerable code is reachable, that exploitation will succeed in this deployment, or that exploitation has occurred.
Vulnerability Assessment: compute workload scanning: How Amazon Inspector identifies weaknesses in EC2 software inventories, ECR images, and Lambda packages, and how inspection prerequisites and scan freshness determine assessment coverage.
Amazon Inspector identifies known software vulnerabilities by comparing discovered packages and versions with vulnerability intelligence, including vendor advisories. A finding ties an affected package to a resource and supplies remediation information when available. Package identity matters: a vendor can backport a fix without adopting the upstream version number, so version strings alone are not a reliable assessment.
AWS Lambda: deployment artifacts and vulnerability exposure: How function packages, layers, and runtime choices affect vulnerability scanning coverage and determine which components must be patched and redeployed.
A Lambda function's deployment package determines where its executable components come from. A ZIP function combines your package, any attached Lambda layer versions, and a managed or custom runtime. A container-image function gets its application, dependencies, and runtime from the image. Container-image functions do not attach Lambda layers; include equivalent content when building the image.
Amazon Inspector: compute vulnerability scanning coverage: How to configure and troubleshoot Inspector scanning prerequisites and coverage for EC2 instances, ECR images, and Lambda functions.
Amazon Inspector coverage is scoped to an account and Region. Enable the required scan types in each intended scope: EC2, ECR, Lambda standard scanning, and optionally Lambda code scanning. An organization's delegated administrator and automatic enablement settings help manage member accounts, but do not replace checking each account's actual activation status.
Amazon Inspector: vulnerability finding lifecycle: How Inspector rescan triggers and finding-state transitions support automated verification after Systems Manager patching, distinguishing successful remediation from missing scan coverage.
Systems Manager Patch Manager installs patches and reports patch-operation results. Amazon Inspector independently evaluates supported software for known vulnerabilities. A successful patch operation does not, by itself, prove that a particular Inspector finding has been remediated: the affected package might not have been updated by that operation.
Runtime Threat Detection: workload telemetry and coverage: How runtime sensors and provider-managed telemetry reveal suspicious workload behavior, and how deployment requirements and coverage health determine what can be detected.
Runtime sensors observe activity such as process execution, file access, and network connections on supported workloads. Amazon GuardDuty evaluates collected evidence using threat intelligence and behavioral detection. An unexpected shell or suspicious connection can support a finding, but a finding is an investigative lead, not proof of successful compromise.
Amazon GuardDuty: Runtime Monitoring coverage: How Runtime Monitoring collects workload behavior through security agents, and how deployment prerequisites and coverage health affect threat detection.
Runtime Monitoring adds workload-level visibility through a GuardDuty security agent. The agent observes operating-system activity, including process execution, file access, and network connections, and sends runtime events to GuardDuty. This is different from relying only on service logs: enabling GuardDuty alone does not install a working runtime collector everywhere.
Patch Management: controlled automated rollouts: How approval baselines and staged execution controls govern automated patch installation while preserving healthy compute capacity.
AWS Systems Manager Patch Manager separates approval policy from execution controls. A patch baseline defines which patches are approved through rules and explicit approvals or rejections. Rules can filter by properties such as classification and severity, with available filters depending on the operating system. Approval makes a patch eligible for installation; it neither schedules installation nor proves application compatibility.
Patch Management: verifying effective remediation: How to reconcile patch compliance results with vulnerability rescans and restart state to detect incomplete remediation and recurring patch drift.
Patch compliance and vulnerability assessment answer different questions. AWS Systems Manager Patch Manager evaluates patch state against the applicable baseline. Amazon Inspector identifies known vulnerabilities within its supported scanning coverage; it does not install fixes. A compliant baseline result does not establish that every known vulnerability is remediated.
Amazon EC2: secure access with EC2 Instance Connect: How EC2 Instance Connect authorizes temporary SSH access, including instance prerequisites and private connectivity through Instance Connect Endpoints.
EC2 Instance Connect lets an authorized caller publish an SSH public key for a particular instance and operating-system user. SendSSHPublicKey makes that key available through instance metadata for 60 seconds. It does not copy the private key to AWS or permanently add the public key to authorized_keys.
Secure remote access: controlled administrative sessions: How to constrain administrative sessions with Session Manager and EC2 Instance Connect, accounting for network prerequisites, IAM permissions, operating-system privileges, and audit limitations.
Controlled administrative access needs independent controls for AWS authorization, network reachability, operating-system privilege, and retained evidence. This design compares a restricted Session Manager shell with private SSH using EC2 Instance Connect. Arrows represent logical delivery, not TCP initiation; the managed node establishes its service connections outbound.
Shift-Left Security: pipeline vulnerability feedback loops: How to configure and troubleshoot pipeline vulnerability checks that route findings to developers, verify fixes, and prevent promotion of artifacts that fail security policy.
A vulnerability feedback loop needs three distinct outcomes: findings reach developers, fixes are checked again, and failed artifacts cannot advance. Here, CodePipeline orchestrates a managed CodeBuild job whose buildspec generates a software bill of materials, calls Amazon Inspector, and evaluates policy. CodeDeploy later deploys to an existing deployment group; neither orchestration nor deployment replaces buildspec execution.
Static Application Security Testing: reliable pipeline analysis: How to configure a pipeline SAST stage that detects vulnerable code paths and enforces verified remediation without treating incomplete scans as clean.
SAST examines code without running the application. A data-flow analyzer can follow an untrusted source, such as a request parameter, through function calls to a sensitive sink, such as SQL execution. Its value comes from recognizing whether an appropriate defense interrupts that path—not merely spotting suspicious text.
Amazon CodeWhisperer vs Amazon CodeGuru: code security roles: How Amazon Q Developer's developer-facing security assistance differs from Amazon CodeGuru's code analysis, and where each belongs in a secure development workflow.
Amazon CodeWhisperer capabilities became part of Amazon Q Developer. For this comparison, Q Developer is the developer-facing assistant: it helps developers write and understand code, identify security issues, and work on corrections close to the editing task. Generating a code suggestion and performing a security review are different activities; a suggestion is not evidence that the code is secure.
Amazon CodeWhisperer: security scans and suggested fixes: How to configure Amazon Q Developer security scanning, recognize coverage limits, and verify suggested vulnerability fixes before code enters a delivery pipeline.
Amazon CodeWhisperer capabilities are now part of Amazon Q Developer. For IDE-based scanning, install a supported Amazon Q Developer extension and authenticate with an AWS Builder ID or your organization's IAM Identity Center identity, as appropriate. Confirm that your IDE, extension version, language, and sign-in method support the scanning capability you intend to use. Successful code completion does not establish that a security scan has run.
Amazon CodeGuru: security scans in CI/CD pipelines: How to configure CodeGuru Security source-code scans in a pipeline, use their findings to gate builds, and rescan code to verify fixes.
Availability note: AWS discontinued support for Amazon CodeGuru Security on November 20, 2025. This lesson explains the historical integration and its control mechanics, not a service to select for a new deployment.
AWS CodeBuild vs AWS CodePipeline: execution and orchestration: How CodeBuild's execution of security checks differs from CodePipeline's orchestration of checks within a release workflow.
AWS CodeBuild supplies the environment that executes security-check commands. A scanner runs there as a tool or is invoked through an API. CodeBuild is not itself a vulnerability-analysis engine: the selected tool determines what is inspected and what findings mean.
AWS CodeBuild: buildspec-driven security gates: How buildspecs run vulnerability scanners, enforce failure thresholds, and verify fixes before allowing build artifacts to proceed.
A security gate is executable build logic, not merely a scanner report. In buildspec version 0.2, commands run in the same shell instance, so shell state can carry between commands. Keep candidate creation, scanning, and status propagation in a reviewed wrapper such as ./ci/build-and-gate.sh, called from the build phase.
AWS CodePipeline: vulnerability scan gates: How pipeline action ordering and failure propagation enforce vulnerability scan gates that block deployment until remediated artifacts pass security checks.
A vulnerability gate is a required dependency in the release path. Consider a pipeline that builds a release artifact, scans it, and then deploys it. Deployment must be downstream of successful scanning; putting a scan somewhere in the pipeline is not sufficient.
Security Quality Gates: enforcing artifact promotion policies: How to enforce promotion decisions using complete scan evidence tied to the exact artifact, fail closed on evaluation errors, and require validated remediation or an authorized, expiring exception before release.
A security quality gate must stop promotion, not merely publish findings. This architecture shows the forward flow from a container image to a mandatory release decision. Lines represent evidence and release handoffs, not every API call or the earlier build workflow.
Prompt Injection: application trust boundaries: How layered controls at model input, output, and tool-action boundaries contain direct and indirect prompt injection even when guardrails fail.
Prompt injection tries to turn model-readable content into instructions that override the application's intended behavior. Direct injection arrives in an attacker-controlled user message. Indirect injection arrives in retrieved documents, web pages, repository files, or tool responses. An instruction embedded in a document remains untrusted even when the document is stored in your own bucket.
Data Loss Prevention: disclosure controls at generative AI boundaries: How classification-aware disclosure policies authorize, inspect, and block or redact sensitive data transfers across model, retrieval, tool, response, and logging boundaries.
A classification-aware disclosure policy decides whether particular data may cross a particular boundary. Evaluate the authenticated principal, tenant, data classification, purpose, action, and destination. Authorization establishes permission; inspection checks actual content. A clean scan does not grant permission, and permission to read a document does not automatically permit sending it to a model or tool.
Output Validation: enforcing downstream trust boundaries: How to enforce destination-specific acceptance rules before consuming model responses, combining deterministic validation with guardrail checks and failing closed before unsafe content or unauthorized actions reach downstream systems.
A model response is untrusted input, even when it follows the requested format. Define an acceptance contract for each destination: what data it accepts, what content it prohibits, and which actions the authenticated caller may request. A refund proposal can be valid JSON yet name another customer's order. Generated markup can become executable when a browser renders it.
Stateful and Stateless Filtering: bidirectional traffic authorization: How connection state determines forward- and return-path authorization, including reverse-port rules, layered controls, and symmetric firewall inspection paths.
A stateless filter evaluates each packet independently. A stateful filter retains flow context, commonly using protocol, addresses, ports, and timeout information. For TCP, connection progress also matters. UDP can be tracked using flow attributes and timeouts despite having no TCP-style handshake.
AWS Network Firewall: firewall policy evaluation: How stateless actions, stateful rule ordering, and default actions interact to permit or block traffic and explain unexpected filtering decisions.
For traffic reaching AWS Network Firewall, stateless evaluation comes first. Stateless rule groups are evaluated by ascending group priority, and rules within a group by ascending rule priority: lower numbers run first. The first matching rule supplies the action; a later rule does not override it.
Asymmetric Routing: flow affinity through stateful inspection: How independent forward and return routes affect connection state, and how to trace and configure AWS routing so both directions traverse the required firewall endpoint or NAT mapping.
Forward and return routes are independent. Each routing decision uses the packet's current destination and the applicable routing table. A successful outbound route does not create its reverse. Asymmetry is not inherently invalid IP routing; it becomes a problem when a direction misses required inspection or connection state.
AWS Network Firewall: inspection traffic paths: How firewall endpoint placement and symmetric routing determine which traffic is inspected and why traffic can bypass inspection or lose connectivity.
AWS Network Firewall inspects traffic delivered to its firewall endpoints; deploying a firewall does not intercept every packet in a VPC. This example uses a VPC-subnet deployment, a workload with an associated public IPv4 address, and a dedicated firewall subnet. It shows only that workload’s internet connection and its replies.
Encryption in Transit: protection boundaries across hybrid networks: How TLS, IPsec tunnels, and MACsec protect different segments of hybrid and multi-cloud paths, and why private connectivity alone does not guarantee encryption.
Private connectivity controls how traffic reaches its destination. It does not, by itself, establish confidentiality, integrity, or peer authentication. AWS Direct Connect does not encrypt traffic by default; private addresses, private endpoints, and security groups are not evidence that a connection is encrypted.
AWS Direct Connect vs AWS Site-to-Site VPN: private transport and encrypted tunnels: How Direct Connect and Site-to-Site VPN differ in transport, encryption guarantees, and connectivity requirements, and why they can complement rather than replace each other.
AWS Direct Connect supplies connectivity that bypasses the public internet; it does not encrypt customer traffic by default. It requires connectivity to a Direct Connect location, directly or through a provider, plus a virtual interface and BGP routing. Its more consistent network path is not a guarantee of application latency or availability.
AWS Site-to-Site VPN: IPsec tunnel security: How peer authentication, IKE and IPsec policies, and rekeying secure hybrid and multi-cloud tunnels, and how to diagnose negotiation failures.
AWS Site-to-Site VPN uses IKE to authenticate tunnel peers and establish cryptographic state. A reachable peer IP address is not proof of identity. With a pre-shared key (PSK), each peer proves possession of the configured secret during authentication; the secret is not sent across the network. Configure the correct secret for each tunnel, protect its distribution, and avoid reusing it across unrelated connections.
Link-Layer Encryption: MACsec on hybrid access links: How MACsec peer configuration, link eligibility, and failure policy determine whether a hybrid access link is protected and where that protection ends.
MACsec protects Ethernet frames between participating devices, providing confidentiality, integrity, data-origin authentication, and replay protection. For AWS Direct Connect, protection runs between a compatible customer router and the AWS Direct Connect device—not all the way to an application. Direct Connect is not encrypted by default.
AWS Direct Connect: protecting traffic in transit: How to configure MACsec on eligible Direct Connect links, manage its keys and security modes, and identify where an IPsec overlay is needed beyond its protection boundary.
MACsec encrypts Ethernet traffic between your customer router and the AWS Direct Connect router. It is available on eligible dedicated connections at supported locations and port speeds, not on hosted connections. Check the connection’s MACsec capability and your router’s Direct Connect MACsec compatibility before configuring it; a private circuit alone does not provide encryption.
Amazon VPC: private access through VPC endpoints: How endpoint type, placement, access policies, and DNS determine private service access from VPC and hybrid clients, including the limits of gateway endpoints.
A gateway endpoint gives a VPC route-table access to Amazon S3 or DynamoDB. Associating a route table adds a route for the service's AWS-managed prefix list, targeting the endpoint. There are no endpoint network interfaces or endpoint security groups. For matching regional service traffic, this route is more specific than a default route through NAT.
AWS PrivateLink: securing interface endpoint access: How interface endpoints establish private service access and enforce consumer and provider access boundaries without replacing TLS or service authorization.
An interface endpoint creates endpoint network interfaces with private IP addresses in selected consumer subnets. Clients connect to those addresses, and AWS PrivateLink carries their traffic to the selected service without an internet gateway, NAT gateway, or VPC peering connection.
AWS Client VPN: secure remote-access endpoints: How endpoint authentication, authorization rules, routes, and security groups work together to restrict encrypted remote access to private resources.
AWS Client VPN terminates an encrypted, client-based VPN connection. A successful connection is not blanket access: authentication admits the client, authorization rules permit destination networks, routes provide paths, and security groups constrain traffic. The diagram follows only the outbound request, not its replies or authentication exchanges.
Zero Trust: identity-aware access to private applications: How to enforce application-specific access using identity and device context through AWS Verified Access without granting trust based on network location or allowing backend bypass.
AWS Verified Access evaluates access to a particular application using trusted context. An office address, private route, or successful VPN connection is not permission to use that application. For this design, require both an authenticated workforce identity and acceptable device posture.
Secure remote access: hybrid access boundaries: How to enforce appropriate access boundaries with routed VPN access or application-specific Verified Access, distinguishing user access from site-to-site connectivity and private reachability from authorization and encryption.
Routed user access and application-specific access grant different capabilities. AWS Client VPN authenticates a remote client and provides an encrypted tunnel for routed access to permitted destinations. AWS Verified Access evaluates access to configured applications using policies and trusted identity or device context, without requiring a traditional VPN.
Network Segmentation: enforcing trust boundaries: How to translate workload communication requirements into enforced boundaries that restrict north/south and east/west traffic, preserve subnet isolation, and prevent bypass paths.
Start with an allowed-flow contract: source workload or network, destination, protocol, destination port, and purpose. Record who initiates the connection. For this lesson, external clients may initiate TCP 443 to an HTTPS application, and only that application may initiate TCP 5432 to PostgreSQL. Other workload connections are not required.
Attack Surface Reduction: unnecessary network exposure: How to evaluate complete network paths against required connectivity and remove unnecessary exposure using network restrictions or identity-aware access without leaving bypass paths.
Start with a connectivity contract: the permitted source, destination, protocol, port, purpose, and, where relevant, user or device conditions. Then evaluate every complete path against it. A rule allowing 0.0.0.0/0 is not proof of internet reachability: addressing, routes, gateways, security groups, and network ACLs determine whether the path exists. Review IPv6 separately, including ::/0.
Identity Federation: assertion-to-session trust: How relying parties validate identity assertions and tokens, enforce claim constraints, and map human or workload identities to locally authorized roles and sessions.
Identity federation separates authentication at an identity provider from acceptance at a relying party. The relying party must establish both that the evidence is authentic and that it is acceptable for this particular use. A valid signature alone does not establish either a local role assignment or permission to read data.
Cross-Account Access vs. Identity Federation: How granting access across account boundaries differs from accepting an external identity, and why federation alone does not authorize cross-account access.
Identity federation lets a relying party accept identity evidence from an external identity provider. Cross-account access authorizes access across AWS account boundaries. These answer different questions: whose identity evidence is accepted, and which account's principals may access another account's roles or resources.
AWS IAM: federated identity and role trust: How role trust policies authorize federated and cross-account principals through provider configuration, principal selection, and trust conditions.
A role's trust policy is a resource-based policy that controls who may assume that role. It selects a Principal, permits an assumption action, and can require conditions. The role itself is the resource, so its trust policy does not need a Resource element. The role's permissions policies answer a different question: what an established session may do.
Amazon Cognito and AWS IAM Identity Center: application versus workforce identity: How application identity through Cognito differs from workforce access through IAM Identity Center, and which authentication requirements belong to each service.
Amazon Cognito supplies identity capabilities for applications you build. A Cognito user pool provides an application-facing user directory and authentication service, including self-service registration and federation. Its contract is with your application's clients and token consumers. IAM Identity Center organizes workforce access to AWS accounts and business applications. Its contract is with organizational identities, assignments, and supported access integrations.
AWS IAM vs AWS IAM Identity Center: permissions and workforce access: How IAM's account-level identities and authorization differ from Identity Center's workforce assignments, permission sets, and multi-account sign-in.
IAM defines identities and permissions within an AWS account. IAM users and roles belong to an account; an IAM group collects IAM users for policy attachment and is not itself a principal. A role can support cross-account access, but it still belongs to one account.
AWS Directory Service vs AWS IAM Identity Center: directory identities and workforce access: How Directory Service's domain identity role differs from IAM Identity Center's workforce access role, distinguishing directory authentication failures from permission-set authorization failures.
AWS Directory Service supports directory-based identity. With AWS Managed Microsoft AD, it operates a Microsoft Active Directory domain for domain identities, authentication, and directory-aware workloads. An AD group can influence domain access without granting any AWS API permissions.
Amazon Cognito: user pool authentication flows: How user pool app-client settings, federation, and authentication challenges govern token issuance, and how to diagnose failures along that flow.
A user pool has two distinct entry paths. User-pool authentication APIs, such as InitiateAuth, authenticate local users through flows admitted by the app client's ExplicitAuthFlows. For example, USER_SRP_AUTH uses SRP, while USER_PASSWORD_AUTH submits a password over TLS. Enabling one does not enable the other. AdminInitiateAuth is a separate, IAM-authorized operation; giving a caller IAM permission does not enable a disabled app-client flow.
Amazon Cognito: identity pool credential exchange: How identity pools exchange application identities for temporary AWS credentials, including how provider configuration, role mappings, and role trust cause or prevent exchange failures.
An identity pool exchanges evidence of an application identity for temporary AWS credentials. A user pool supplies authentication tokens; it does not itself issue the AWS access key, secret key, and session token used to sign AWS API requests.
Multi-Factor Authentication: Enforcement across human access paths: How to enforce and verify MFA assurance across federated sign-in and IAM temporary sessions without assuming that device enrollment or console MFA protects every request.
MFA assurance belongs to an authentication event and its resulting session, not permanently to a person. Enrolling an authenticator does not enforce its use. Signing in to the console with MFA does not change requests signed separately with long-term access keys.
Workload Identity: binding software to temporary role sessions: How runtime bindings and constrained federation authenticate individual workloads and supply renewable role credentials without relying on human sign-in or stored access keys.
Workload identity authenticates software without borrowing a person's sign-in or storing an IAM user's access keys. The runtime binding determines which software receives which role credentials: an EC2 instance profile binds a role to an instance, an ECS task role serves application containers, and a Lambda execution role serves a function. Choose the smallest practical workload boundary; a shared host role cannot distinguish every application on that host.
Credential Rotation and Temporary Credentials: replacement versus expiration: How explicit replacement of persistent credentials differs from expiration and renewal of temporary credentials, including why rotating a source credential does not necessarily revoke sessions already issued.
A persistent credential, such as an IAM user access key, remains usable until explicitly disabled or deleted. Rotation replaces it and retires its predecessor. Creating another key does not invalidate the first one. Likewise, changing a stored secret does not change what the authenticating system accepts unless a rotation integration performs that change.
AWS STS: AssumeRole credential exchange: How an AWS-authenticated caller satisfies a role's trust requirements to obtain and use temporary role credentials through AssumeRole.
AssumeRole is an authenticated STS API request. The caller signs it with existing AWS credentials and supplies the target RoleArn and a RoleSessionName. The existing credentials identify the caller; knowing a role ARN does not authorize assuming it.
AWS STS: federated credential exchange: How STS validates SAML assertions or OIDC tokens against a role's federation trust configuration before issuing temporary role credentials.
Federation exchanges an external identity proof for temporary AWS role credentials. The client submits a SAML assertion to AssumeRoleWithSAML, or an OIDC token to AssumeRoleWithWebIdentity. Neither operation requires the caller to sign the request with existing AWS credentials.
Amazon S3: presigned access: How signing credentials, request constraints, expiration, and bucket policies determine the effective access granted by presigned URLs.
A presigned URL is an S3 request authenticated with the creator’s signing credentials through query parameters. The recipient does not need AWS credentials. S3 evaluates the request using the signing principal’s authority, not the recipient’s identity. Creating the signature is a local operation: successfully generating a URL does not prove that S3 will authorize its use.
Token Validation: request-time trust boundaries: How validators enforce trusted signing keys and token claim requirements, and how rejection evidence distinguishes validation failures from issuance or authorization failures.
A signed JWT starts as untrusted input. Decoding exposes its claims; it does not authenticate them. Configure the allowed issuer, signing algorithms, and trusted JWKS location outside the token. A kid selects a candidate key within that issuer's key set; it is not a trust decision. Never follow an arbitrary token-supplied key URL or accept an algorithm merely because the header requests it.
Clock Skew: authentication validity windows: How clock offsets between clients, identity providers, and validators cause authentication failures, and how to diagnose and correct them without weakening replay protection.
Clock skew is a difference between clock readings; drift is the rate at which that difference changes. Authentication compares timestamps created on one system with the current time on another. A valid signature proves integrity and origin, not that the signed material is currently usable.
AWS Directory Service: domain authentication paths: How authentication flows through AWS Managed Microsoft AD and AD Connector, and how DNS, network connectivity, trusts, and account state affect successful sign-ins.
AWS Managed Microsoft AD runs Microsoft AD domain controllers in AWS. In the new-forest deployment used here, accounts created in that managed domain are authenticated by its domain controllers. Corporate accounts remain in their original domain; a supported trust can let them access resources in the managed forest without copying their passwords into it.
AWS IAM: effective permissions and policy boundaries: How identity policies, resource policies, permissions boundaries, session policies, and organization guardrails combine to determine effective access.
Effective permissions are evaluated for a particular principal, action, resource, and request context. A statement matters only when it matches that request, including its conditions. An applicable explicit Deny overrides an Allow; an implicit deny means that a required permission was not granted. Adding another Allow cannot defeat an explicit Deny.
Cross-Account Access: two-sided authorization: How caller-side and destination-side policies authorize role assumption or direct resource access, narrow trust, and determine where a cross-account request is denied.
Cross-account role assumption separates permission to obtain a role session from permission to use that session. Here, an application in account A assumes ReadB in account B, then reads an encrypted report. Its compute location does not change; its signing identity does.
Confused Deputy Problem: binding delegated authority: How trusted tenant context and policy conditions such as sts:ExternalId, aws:SourceArn, and aws:SourceAccount bind a deputy’s authority to the intended customer or source resource.
A confused deputy authenticates successfully and uses legitimate privileges, but uses them for the wrong caller. A monitoring provider trusted by several customers can become a deputy if a caller supplies another customer's role ARN and the provider assumes it. The ARN is a resource identifier, not proof that the caller may direct access to that resource.
AWS IAM: attribute-based access control: How principal, session, and resource tags govern authorization, including tag propagation, tag-mutation restrictions, and integration with role-based permissions.
Attribute-based access control (ABAC) uses attributes in policy conditions. A common rule compares aws:ResourceTag/Project with the policy variable ${aws:PrincipalTag/Project}. For supported actions, a StringEquals comparison can restrict an allow to resources whose Project value matches the caller's effective Project value. Matching tags alone grant nothing: the request must still have applicable permission for the action and resource.
AWS IAM: permission analysis tools: How Policy Simulator and IAM Access Analyzer expose denied, unintended, and unused permissions, and what their results can and cannot establish.
IAM Policy Simulator evaluates selected policies for an action, resource, and request context without making the service request. Use it to isolate an authorization question: for example, whether s3:GetObject is allowed for one object ARN when a particular condition key has a particular value. You can evaluate existing identity policies or test proposed policy documents before attaching them.
Attribute-Based Access Control vs Role-Based Access Control: How attribute-driven and role-driven rules differ in defining access boundaries and scaling permissions as teams and resources change.
Role-Based Access Control (RBAC) grants permissions through approved responsibilities. A developer role might permit deployment to a defined set of development resources; an auditor role might permit inspection without modification. The boundary depends on both the role's permitted actions and its resource scope—not merely its name. Assignment determines who can use that permission set.
Role-Based Access Control: scoped roles and controlled assignments: How to translate job responsibilities into least-privilege roles with appropriate resource scopes, controlled assignments, and separation of duties, and test the resulting access.
Start with a task contract, not a job title: what must the person accomplish, on which resources, and what must remain impossible? A finance report reader needs to list published reports and read their contents, not upload reports, delete them, or administer access. Keep unrelated responsibilities in separate roles so that assignments remain understandable and reviewable.
Attribute-Based Access Control: secure tag-based authorization: How to implement and test tag-matching policies that preserve access boundaries through trusted attribute assignment, resource creation, and tag changes.
A tag-matching policy is an authorization rule, not a property of tagging itself. For a concrete implementation, let Project be the security attribute and use AWS Secrets Manager secrets as the resources. First check the Service Authorization Reference for each action: support for tagging does not imply support for resource-tag conditions, and list operations need separate treatment.
Effective Permissions: request-level authorization evaluation: How grants, policy limits, principal type, and request context combine to authorize or deny an AWS request, and how to trace a failure through that evaluation.
Effective permissions are the authorization result for a particular principal, action, resource, and request context. Authentication identifies the caller; it does not authorize the operation. Ordinary IAM authorization starts with implicit deny: an applicable authorization path must grant access. An applicable explicit deny overrides an Allow.
Explicit Deny Precedence: tracing applicable denials: How to trace a failed AWS request to an applicable deny statement using its authorization context and diagnostic evidence, and determine why adding allows cannot resolve it.
An explicit deny is an applicable policy statement whose effect is Deny. In AWS IAM authorization, it defeats an allow for the same request, even if the allow names a more specific resource or appears later in a policy. Evaluation is not a first-match list, and administrator permissions do not override an applicable explicit deny.
Privilege Escalation: indirect authorization paths: How combined permissions and trust relationships enable unintended privilege gains, and how targeted authorization restrictions break those paths.
Indirect privilege escalation combines individually valid permissions into an unintended capability. Consider a deployer who cannot read sensitive S3 objects. If that deployer can supply code to a function whose execution role can read those objects, the deployer can cause the read without ever receiving direct S3 permission. Review effective capabilities, not just attached administrator policies.
Mutual TLS and Transport Layer Security: mutual authentication versus encryption alone: How mutual TLS differs from server-authenticated TLS, and why an encryption-in-transit setting does not necessarily authenticate both peers.
Encryption protects traffic from disclosure, and TLS record protection also detects modification. Peer authentication establishes which endpoint holds the credentials used in the handshake. An encrypted connection is not, by itself, evidence that both application peers have been authenticated.
Transport Layer Security: enforcing protection on every hop: How to require TLS across resource-to-resource connection paths, enforcing protocol and peer-validation requirements at each hop rather than assuming termination or managed network encryption protects the whole path.
TLS coverage follows TLS sessions, not subnet boundaries. This application path has two sessions: the calling application establishes HTTPS with an application pod through a TCP pass-through load balancer; the pod then establishes a separate TLS connection to PostgreSQL. Arrows show the request path, not response traffic.
Certificate management: certificates at TLS termination points: How to deploy certificates that satisfy endpoint identity and trust requirements, paired with listener settings that enforce encrypted connections on each required network segment.
Start at each TLS termination point: which peer verifies its identity, which DNS name does that peer use, and which certificate authorities does it trust? A server certificate must cover that name in its subject alternative names (SANs), be within its validity period, and chain to a trusted root. The server must also prove possession of the corresponding private key. Domain validation during issuance does not install trust in clients.
Elastic Load Balancing (ELB): enforcing TLS connections: How listener protocols, TLS security policies, and target-group protocols enforce encryption on client-facing and backend connections, including the limits of backend certificate validation.
When an Application Load Balancer (ALB) terminates TLS, the client connection ends at the load balancer. An HTTPS target group creates a separate TLS connection to the target. Encryption on the first connection does not automatically encrypt the second.
Mutual TLS: enforcing workload peer authentication: How to enforce certificate trust and workload-identity checks on every service-to-service connection, including connections re-established by proxies.
Configure each TLS endpoint to validate the peer's certificate chain against an explicit trust bundle, check validity periods and appropriate certificate usages, and require proof of possession of the corresponding private key. On the receiving side, require a client certificate rather than merely requesting one optionally. A trusted issuer alone is not an access policy.
Amazon EMR: inter-node encryption in transit: How EMR security configurations enable inter-node encryption, including certificate provisioning and the protection boundaries of supported framework traffic.
For Amazon EMR on EC2, a security configuration tells EMR how to configure encryption on cluster nodes. Set EncryptionConfiguration.EnableInTransitEncryption to true and supply the certificate-provider settings under InTransitEncryptionConfiguration.
Amazon EKS: encryption for pod-to-pod traffic: How to enforce and verify mutual TLS between EKS workloads and recognize the coverage limits of node-level encryption.
Amazon EKS does not automatically require mutual TLS for application traffic between pods. Kubernetes API TLS, encrypted Kubernetes Secrets, and application traffic are separate protection boundaries. For pod-to-pod mTLS, configure TLS in the applications or deploy a service mesh that authenticates workloads and enforces encrypted connections.
Amazon SageMaker: inter-container traffic encryption: How to configure and verify encryption between distributed training containers, including its protection boundaries and performance trade-offs.
Inter-container traffic encryption protects communication between containers in a distributed SageMaker AI training job. Workers exchange information such as model parameters and gradients; protecting the input files alone does not protect that exchange.
Client-Side Encryption vs. Server-Side Encryption: How the location of encryption determines whether the storage service receives plaintext, regardless of who supplies the key.
Client-side encryption means the application encrypts the payload before submitting it to the receiving storage service. Server-side encryption means the receiving service performs encryption before persisting the data. The boundary is the storage service, not the cloud provider: an application running on cloud compute can still perform client-side encryption before uploading to Amazon S3.
Envelope Encryption: designing the DEK–KEK hierarchy: How to protect bulk data with wrapped data keys while aligning key custody and encryption location with trust-boundary requirements.
Envelope encryption separates bulk encryption from key protection. A random data encryption key (DEK) encrypts the payload, normally through an established authenticated-encryption format. A key-encryption key (KEK) wraps the DEK. Both keys can be symmetric; a hierarchy does not require public-key cryptography.
Server-Side Encryption: service boundaries and key controls: How a service’s encryption boundary and supported key-management configurations determine which data-at-rest protection requirements it can satisfy.
Server-side encryption protects data within the receiving service’s documented storage boundary. In this example, S3 encrypts object data, while KMS controls the key protecting the data key. The object payload does not pass through KMS.
Client-Side Encryption: application-controlled encryption workflows: How to design an application encryption workflow whose key custody, decryption permissions, and recovery behavior satisfy the required trust boundary.
Start with the trust boundary: which processes may hold plaintext, who may authorize decryption, and who must remain unable to recover the data? Client-side encryption puts the application inside that boundary. A compromised application can expose the plaintext and keys it is authorized to use.
AWS KMS: regional and multi-Region customer managed keys: How to create and manage regional and multi-Region customer managed keys for envelope encryption at rest, with independently configured regional access controls.
In envelope encryption, a data key encrypts the payload locally; a symmetric KMS key protects that data key. GenerateDataKey returns a plaintext data key and an encrypted copy. Use the plaintext only in memory, then remove it as soon as practical. Store the encrypted data key with the encrypted payload, never the plaintext key.
AWS KMS: key material origins and custody: How importing key material or using external key stores changes material provisioning, rotation, availability, and recovery compared with AWS-generated key material.
A KMS key is a resource with an identity, policies, and lifecycle state. Its key material supplies the cryptographic secret. For customer managed keys in the standard KMS key store, origin AWS_KMS means KMS generates and protects the material; origin EXTERNAL means you generate material outside KMS and import it. Importing changes who provisions the secret, not where KMS uses its imported copy.
AWS CloudHSM: HSM-backed envelope encryption: How applications use CloudHSM cryptographic users and client libraries to wrap data keys for encryption at rest while keeping wrapping keys nonextractable inside the HSM.
In envelope encryption, a data encryption key, or DEK, encrypts the payload. A longer-lived key encryption key, or KEK, protects the DEK. The stored envelope contains encrypted data, the protected DEK, and the information needed to decrypt them—not either plaintext key.
AWS CloudHSM vs AWS KMS: choosing key custody: How CloudHSM and KMS differ in key custody, access control, application integration, and operational responsibility when selecting encryption-at-rest controls.
Both AWS KMS and AWS CloudHSM protect keys with hardware security modules. The distinction is who controls the HSM environment and how permission to use a key is enforced. For this comparison, standard KMS means customer managed keys in the default KMS key store; custom key stores are a separate option.
Write Once, Read Many (WORM) Storage: retention enforcement: How version-level and vault-level retention locks enforce immutability, and how legal holds and administrative bypass rules affect their guarantees.
S3 Object Lock protects individual object versions, not an object key as a whole. It requires S3 Versioning. Writing to an existing key creates another version; it does not replace the bytes of a protected version. Versioning alone is not WORM because authorized users can permanently delete unprotected versions.
Amazon S3 Glacier: Vault Lock policies: How to define and test archive retention policies during the 24-hour validation window and complete Vault Lock to make the policy immutable.
A Vault Lock policy is a resource-based policy attached to an Amazon S3 Glacier vault. Define retention by denying glacier:DeleteArchive while an archive is younger than the required age. An explicit deny overrides an allow, so granting an administrator deletion permission does not bypass the retention rule.
Cryptographic Hashing: trusted-digest integrity verification: How to verify cloud artifacts against protected reference digests using collision-resistant hashes, consistent byte representations, and valid checksum evidence.
A cryptographic hash maps bytes to a fixed-length digest. SHA-256 is deterministic: identical input bytes produce identical digests. A match provides strong evidence of byte equality under the algorithm’s security assumptions; it does not provide confidentiality, prevent changes, or recover damaged data.
Cryptographic Hashing vs Digital Signatures: Why digest equality alone does not authenticate an artifact, while a valid digital signature binds its content to a signing key whose identity must be trusted.
A cryptographic digest is a deterministic summary of bytes, not a credential. For an artifact m and reference digest d, checking H(m) = d establishes consistency with that reference. With a suitable collision-resistant hash, this is useful integrity evidence—but the comparison says nothing about who supplied either value.
Digital Signatures: Trusted verification of stored artifacts: How to enforce signature verification against approved signing keys for the exact artifact version being used, including rejection of untrusted keys and rollback attempts.
A production verifier makes two decisions. Cryptographic validity asks whether a signature verifies for the supplied message and public key. Release authorization asks whether that key, artifact identity and release are permitted here. Admission requires both: a correctly signed release can still come from an unapproved key or be too old to use.
Amazon EFS: lifecycle policies: How access-based lifecycle policies move eligible files among EFS storage classes, including transition constraints, access costs, and why tiering does not enforce retention or prevent deletion.
EFS lifecycle management moves eligible file data among storage classes within the same file system. Applications continue using the same paths and file interfaces: tiering does not create a backup or move files into an S3 bucket. Lifecycle policies apply at the file-system level, rather than selecting directories by prefix.
Amazon FSx for Lustre: automatic backups and retention: How backup eligibility, daily backup windows, retention settings, and restore behavior determine protection for FSx for Lustre file systems.
FSx for Lustre backups protect eligible file systems, not every Lustre deployment. Persistent file systems using SSD or HDD storage support backups when they are not linked to an Amazon S3 bucket. Scratch file systems and file systems linked to S3 do not support these backups. Check eligibility before treating a backup setting as protection.
Legal Holds: enforcing preservation against automated deletion: How object-version and recovery-point holds prevent automated disposal, including preservation coverage, lifecycle behavior, and controlled release.
A legal hold enforces preservation on identified evidence, not on a case label. Build a preservation manifest containing resource identifiers, relevant dates, owners, case references, and required metadata. Include historical evidence and relevant copies; discovering an object or backup is not proof that it is protected.
AWS Backup vs AWS DataSync: recovery points or data transfer: How managed backup retention and point-in-time recovery differ from transferring or synchronizing data with AWS DataSync.
AWS Backup manages recovery history for supported resources. Backup plans associate resource selections with rules for scheduling backups and retaining recovery points. A recovery point represents recoverable backup data; it is not a destination file tree that must keep matching the live source.
Backup Isolation: independent recovery boundaries: How to establish a separately administered backup destination whose recovery copies, retention settings, and decryption keys remain protected when production credentials are compromised.
Backup isolation means production credentials cannot administer the destination copies, their retention, or the keys needed to recover them. This architecture uses AWS Backup copies of Amazon EFS backups in a separately administered account. AWS Backup cross-account copying requires supported resources, accounts in the same AWS Organization, and cross-account backup enabled.
Immutable Backups: storage-enforced retention: How retention locks protect recovery points from privileged deletion, including bypass permissions, irreversible settings, and retention-policy compatibility.
A backup schedule expresses intent: create recovery points and expire them later. A retention lock adds enforcement: the storage service rejects prohibited deletion or retention changes, even when ordinary access permissions would allow them. The protection applies to a particular recovery point, snapshot, or object version—not automatically to every copy of the data.
Backup Isolation vs Immutable Backups: Why independence from production administration and enforced protection against backup modification or deletion address different threats and do not substitute for each other.
Backup isolation asks: which identities can control recovery? Its purpose is to keep production administrators from automatically controlling backup deletion, retention, and recovery dependencies. A separate account is useful only when production credentials cannot also obtain administrative authority there. Separation of storage locations is not necessarily separation of authority.
Amazon EBS: protected snapshot lifecycles: How Data Lifecycle Manager policies, encrypted cross-Region snapshot copies, and Snapshot Lock protect recoverable EBS volume backups.
Amazon Data Lifecycle Manager (DLM) turns an EBS snapshot policy into recurring work: select resources by tags, create snapshots on schedules, and expire policy-managed snapshots using retention rules. A custom snapshot policy can target volumes or instances; instance targeting supports multi-volume snapshots. Count-based retention keeps a specified number of snapshots, while age-based retention keeps them for a specified period.
AWS DataSync: secure replication tasks: How to configure DataSync replication into encrypted storage with least-privilege access and controlled overwrite and deletion behavior.
This lesson configures an S3-to-S3 DataSync task that copies new objects into an encrypted destination without replacing existing objects or deleting destination-only objects. The diagram separates the object path from role assumption and encryption requests; it does not show every API call or response. These AWS storage locations do not require a DataSync agent.
Disaster recovery: protecting recovery data: How to combine replication with isolated, immutable backup history so recovery data remains trustworthy and decryptable after compromise, and how restore tests verify that protection.
Replication reduces the gap between production and another usable copy. It can also carry malicious writes, corrupted objects, or ransomware-encrypted content. A recent replica is therefore not automatically a safe recovery point.
Credential Rotation: coordinated credential cutovers: How to coordinate credential replacement across the validating system, secret store, and consumers, using verified cutover, bounded overlap, and failure recovery before retiring the old credential.
A credential cutover must align the validating system, the secret store, and the consumers. This example uses a Lambda-based rotation callback, Secrets Manager versions, RDS database login accounts, and ECS applications. Updating any one of these does not atomically update the others.
AWS Secrets Manager vs. AWS Systems Manager Parameter Store: When credential lifecycle and managed rotation requirements favor Secrets Manager over Systems Manager Parameter Store for storing sensitive values.
Sensitive data does not automatically require Secrets Manager. Systems Manager Parameter Store can store sensitive configuration as SecureString, encrypted with AWS KMS. Secrets Manager also uses KMS encryption. Both support IAM-controlled access and API activity logging through CloudTrail, so encryption and auditability alone do not decide between them.
AWS Secrets Manager: safe credential rotation: How scheduled rotation coordinates Lambda rotation steps, version staging labels, permissions, and single-user or alternating-user strategies to update credentials without disrupting consumers.
Lambda-based rotation coordinates two systems: a versioned secret and the account that accepts its credential. Secrets Manager owns the rotation schedule and invokes a Lambda handler during the configured rotation window. A schedule is not a promise of execution at one exact instant.
Bring Your Own Key: imported material lifecycle: How to securely import independently generated key material into AWS KMS and preserve decryptability through expiration, reimport, rotation, and retirement.
Imported BYOK separates who generates key material from where it is used. AWS KMS receives and uses the imported material; this is not an external key store. This lesson follows symmetric encryption keys: generate suitable 256-bit symmetric material in an approved environment, then create a KMS key with Origin=EXTERNAL and KeySpec=SYMMETRIC_DEFAULT. The new key starts in PendingImport.
Bring Your Own Key: external key custody: How an AWS KMS external key store uses proxy connectivity, authentication, and external key identifiers to use externally held material, with availability and revocation consequences.
An external key store (XKS) lets AWS KMS use key material held by an external key manager without importing that material. Applications address a KMS key through the usual KMS API; KMS delegates the external cryptographic operation through an XKS proxy. KMS also applies its own encryption layer: external custody does not mean KMS never handles plaintext.
Key Management: key material origin: How AWS-generated and imported key material differ in control, protection, rotation, and recovery responsibilities.
A customer-managed KMS key is a logical resource with an identity, permissions, and lifecycle settings. Its key material origin tells you where the cryptographic material comes from, not who administers the resource. This lesson compares single-Region, symmetric encryption keys in the standard KMS key store.
Key Custody: AWS KMS-generated and imported material: How key-material origin determines who holds copies, who must protect backups, and what expiration or deletion makes recoverable in AWS KMS.
A KMS key is a logical resource with an identifier, policy, and lifecycle state. Its key material supplies the cryptographic secret. Customer-managed describes control over the resource; it does not mean the customer generated the material or can export it. This lesson compares symmetric encryption keys in the standard AWS KMS key store.
Key Rotation: AWS-generated and imported material: How key-material origin determines AWS KMS rotation options and the requirements for keeping older ciphertext decryptable.
A KMS key is a logical resource; its key material performs the cryptographic operations. Rotation can change the material without changing the key ID, ARN, policies, or aliases. First inspect the key's origin, type, and configuration: origin alone does not establish rotation eligibility.
Amazon CloudWatch: Logs data protection policies: How data identifiers, policy scope, audit destinations, and unmask permissions govern sensitive-data detection and masking in CloudWatch Logs.
A CloudWatch Logs data protection policy selects the sensitive data to detect using data identifiers. Managed identifiers recognize supported categories such as email addresses and credentials; some also use contextual keywords rather than pattern matching alone. Custom identifiers use regular expressions for organization-specific formats. Detection is therefore only as complete as the identifiers and matching rules you select: masking is not a guarantee that every secret has been found.
Amazon SNS: message data protection policies: How data identifiers and inbound or outbound policy rules detect sensitive message data and audit, deny, mask, or redact it.
An Amazon SNS message data protection policy detects selected sensitive data and applies a response at a message boundary. It is supported on Standard topics. It is separate from the topic access policy: permission to publish does not mean that the message content passes data protection checks.
Data Masking: policy-based disclosure controls: How to scope and test CloudWatch Logs and SNS data protection policies so sensitive values are masked at intended exposure boundaries while accounting for bypass permissions and unprotected copies.
A data protection policy controls disclosure at a particular service boundary. It does not follow a sensitive value through every system. Trace each copy and identify which reader or delivery must receive masked content. The diagram uses synthetic values and deliberately includes an independent raw archive.
AWS Certificate Manager (ACM) vs AWS Private Certificate Authority: When certificate management through ACM is sufficient and when operating a private certificate authority requires AWS Private CA.
ACM manages certificates; AWS Private CA operates private certificate authorities. These are different layers, not competing implementations of the same task. ACM can request publicly trusted certificates, import existing certificates, and request private certificates from an authorized AWS Private CA.
AWS Certificate Manager (ACM): Certificate lifecycle across Regions: How certificate source and Regional scope govern provisioning, renewal, and deployment, including imported and exported certificates and CloudFront's Region requirement.
An ACM certificate has both a source and a Regional identity. Start with its source: requesting a public certificate through ACM gives ACM responsibility for issuance and, when eligible, managed renewal. You must validate control of every requested domain name before ACM can issue it.
AWS Private Certificate Authority: private certificate lifecycle: How private certificates progress through controlled issuance, renewal by replacement, and revocation using AWS Private CA.
Controlled issuance starts before signing. For direct API issuance, the requester generates a key pair and a certificate signing request (CSR); AWS Private CA receives the CSR, not the leaf certificate’s private key. The CSR proves possession of the corresponding key, but it does not establish permission to claim a particular service name. Your enrollment workflow must authorize the requested identity.
Public Key Infrastructure: multi-Region CA hierarchies: How protected regional subordinate CAs support certificate issuance and lifecycle continuity under a shared trust hierarchy without assuming that CA keys, certificates, or trust stores replicate automatically.
A shared root can certify separate regional subordinate CAs without sharing their signing keys. Each AWS Private CA has its own protected, non-exportable CA private key. The diagram shows certificate delivery, not request traffic, authorization calls, trust-store distribution, or key replication.
AWS Private Certificate Authority: cross-Region CA hierarchies: How regional subordinate CAs share a root of trust while keeping each CA's private key protected and confined to its Region.
A cross-Region CA hierarchy connects separate regional certificate authorities through certificate signatures. Each subordinate has its own key pair; the root signs a CA certificate binding that subordinate's public key to its identity and authority. Both subordinates can therefore lead back to the same root of trust without sharing a private key.
AWS Organizations: account hierarchy and membership: How to configure an organization's feature set and safely manage member accounts through creation, invitations, OU placement, and removal.
The management account creates and administers the organization and pays its consolidated bill. Consolidated billing only combines billing without policy-based governance. All features includes consolidated billing and enables governance capabilities such as service control policies (SCPs). An SCP limits available permissions; it does not grant permissions.
AWS Control Tower vs AWS Organizations: managed governance and organizational primitives: How Control Tower's orchestrated governance differs from the account hierarchy and policy primitives provided by Organizations.
AWS Organizations owns the account hierarchy: the organization root, organizational units (OUs), and accounts. It provides account creation and invitations, consolidated billing, and organization policies. Policy-based governance such as service control policies (SCPs) requires all features, not the consolidated-billing-only feature set.
AWS Control Tower: landing-zone baselines and account enrollment: How landing-zone baselines establish governance in new or existing organizations and extend it through OU registration and account enrollment.
A landing zone is the managed foundation for a multi-account environment: shared accounts, governance configuration, and supporting resources deployed by AWS Control Tower. In a new environment, setup establishes the organization and its foundation. In an existing organization, setup uses the existing management account; it does not require rebuilding the account hierarchy or automatically enrolling every existing workload account.
AWS Control Tower: optional controls and custom control extensions: How to deploy and verify optional controls and custom governance extensions across governed OUs, accounting for control behavior and deployment prerequisites.
An optional control's guidance and behavior answer different questions. Guidance such as strongly recommended or elective helps you prioritize adoption. Behavior determines what the control actually does: prevent an operation, detect a resource's state, or check a CloudFormation deployment before provisioning.
Policy Inheritance: permission ceilings across the hierarchy: How inherited SCPs and RCPs determine effective permission boundaries through level-by-level evaluation, explicit denies, and policy-specific applicability.
Service control policies (SCPs) bound the permissions of principals in member accounts. Resource control policies (RCPs) bound access to resources in member accounts for supported services. Neither grants permission: passing these ceilings still leaves IAM authorization and other applicable controls to evaluate.
Policy Inheritance: configuration merging and controlled overrides: How AI services opt-out and declarative policies produce effective configurations through parent–child merging and inheritance operators that constrain descendant overrides.
Management-policy inheritance combines policy settings along an account’s path through the AWS Organizations hierarchy. The result is an effective policy, not simply a copy of the document attached directly to the account. An account with no directly attached policy can still inherit configuration.
Separation of Duties: delegated security administration boundaries: How account ownership and effective access keep centralized security administration independent from organization governance and workload administration, without allowing one actor to bypass those boundaries.
Delegated administration lets a designated member account operate a supported service across organization accounts. Keep routine security operations in a dedicated security account, organization governance in the management account, and application administration in workload accounts. This separates responsibilities only if incompatible administrative powers remain under independent control.
AWS Firewall Manager: organization-wide policy enforcement: How centrally defined firewall policies use account and resource scope, compliance evaluation, and automatic remediation to maintain protections as an organization changes.
AWS Firewall Manager defines and maintains security policy across accounts; the underlying protection service enforces traffic rules. This diagram follows a regional AWS WAF policy's control-plane dependencies, not application traffic.
Multi-Factor Authentication: Root authenticator lifecycle and recovery: How to protect root authenticators and recovery channels while preserving controlled emergency access, including where centralized root access removes the need for member-account authenticators.
Root credential management starts with eliminating credentials where they are unnecessary, not distributing more authenticators. In AWS Organizations, centralized root access supports two distinct capabilities: managing member-account root credentials and performing supported privileged tasks through temporary root sessions. With root credentials removed and password recovery blocked, a member account does not need a standing root password or root MFA device.
Infrastructure as code (IaC): secure multi-account rollouts: How reusable infrastructure definitions, predeployment validation, and staged deployment controls prevent unsafe changes from propagating across accounts.
A reusable definition reduces variation, but also amplifies mistakes: an unsafe default can reach every account. Treat the release as a versioned bundle of templates or modules, pinned dependencies, validation rules, and reviewed environment inputs. Promote the same bundle between deployment waves rather than rebuilding from a moving branch.
Policy as Code vs. Infrastructure as Code: Why infrastructure definitions and secure defaults describe intended resources, while independent policy checks determine whether deployments satisfy requirements.
Infrastructure as code (IaC) describes intended resources and their configuration. Policy as Code expresses requirements against which definitions or running resources are evaluated. Both can be versioned, reviewed, and tested, but they answer different questions: what should be created, and is that configuration acceptable?
Static Analysis: IaC validation gates: How schema checks and security rules, using cfn-lint and CloudFormation Guard, enforce pre-deployment standards across accounts despite unresolved values and other analysis limits.
Static analysis inspects a template without deploying its resources. For CloudFormation, combine cfn-lint with CloudFormation Guard: they answer different questions, and neither tool's success substitutes for the other's.
AWS CloudFormation: template validation gates: How cfn-lint and CloudFormation Guard provide complementary template checks that block invalid or noncompliant infrastructure before deployment.
cfn-lint checks CloudFormation templates against resource schemas and additional lint rules. It can identify unsupported properties, incorrect property types, invalid references, and other template problems without creating resources. For example, a misspelled RDS property such as StorageEncryped is a structural defect. Run linting for the intended deployment Regions because resource support can differ.
Policy as Code: enforcing deployment policy gates: How tested CloudFormation Guard rules evaluate deployment artifacts and block noncompliant changes consistently across accounts, including handling unresolved values and protecting checks from bypass.
CloudFormation Guard evaluates structured input against authored rules; it does not deploy resources or automatically block CloudFormation. A blocking gate exists only when automation runs Guard, checks the outcome, and withholds deployment on failure. cfn-lint checks template validity and configuration issues; passing it does not prove that your security rules passed.
AWS CloudFormation: secure multi-account StackSets: How StackSets permission models, account targeting, and rollout controls govern consistent deployments across accounts and Regions.
A StackSet holds a template and deployment settings; a stack instance represents its deployment into one account and Region. The permission model determines how CloudFormation gets authority in target accounts. It does not determine which accounts should receive a deployment.
Resource Tagging: consistent metadata for operational groups: How standardized tag keys and values define overlapping resource groups for management, with controls to prevent missing or unauthorized changes to grouping tags.
A tagging contract defines canonical keys, allowed values, ownership, and which resources must carry each key. For example, standardize Department=Finance, CostCenter=CC104, and Environment=Production. Spelling and capitalization matter: Environment and environment can be distinct resource tag keys. Use stable business identifiers, and keep secrets and sensitive personal data out of tags.
AWS Resource Groups and Tag Editor: tag-based group membership: How tag-query filters determine dynamic group membership, including account and Region boundaries, supported resource types, and the effects of bulk tag changes through Tag Editor.
A tag-based resource group saves a query, not a fixed list of resource identifiers. Its TAG_FILTERS_1_0 query combines ResourceTypeFilters with TagFilters. A resource must pass the type filter and every tag filter. Membership changes as matching resources and their tags change; resources are not manually pinned into this kind of group.
AWS Service Catalog vs AWS Resource Access Manager: what sharing grants: How sharing approved product definitions through Service Catalog differs from granting access to supported existing resources through AWS RAM.
AWS Service Catalog shares approved product definitions through portfolios. A product has provisioning artifacts, such as versions of a CloudFormation template. Sharing the portfolio makes those offerings available to a recipient account; it does not give that account access to resources previously provisioned from them.
AWS RAM: least-privilege resource shares: How share principals and managed permissions govern access within an organization and across external accounts, from invitation through revocation.
An AWS RAM resource share associates supported resources, principals, and managed permissions. Principals identify the recipients; managed permissions define the actions those recipients can perform on the shared resource types. Ownership stays with the resource owner.
AWS Service Catalog: secure cross-account portfolio sharing: How portfolio sharing distributes approved products to accounts and organizational units, with recipient access and provisioning privileges governed by principal associations and launch constraints.
A portfolio share makes a publisher's approved products and provisioning artifacts available in another account. The publisher retains control of the shared definitions; recipients do not receive an independently editable copy. Portfolio sharing is Regional, so configure sharing in each Region where the products are needed.
AWS shared responsibility model: compliance control ownership and evidence: How service-specific responsibility boundaries determine control ownership and which AWS assurance reports or customer evidence substantiate each compliance requirement.
A compliance requirement does not become an AWS responsibility simply because the workload runs on AWS. Identify the control activity, the layer where it operates, and the party authorized to perform it. AWS protects the underlying infrastructure; customers remain responsible for their data, identities, permissions, and customer-controlled configurations.
AWS Artifact and AWS Audit Manager: evidence sources: How AWS Artifact's provider compliance documentation differs from AWS Audit Manager's collection and organization of evidence for customer assessments.
AWS Audit Manager has been in maintenance since 2026-03-31. It is closed to new customers; existing customers can keep using it. This lesson describes the service as AWS offered it, not as a recommendation for new workloads. AWS's migration guide is https://docs.aws.amazon.com/audit-manager/latest/userguide/audit-manager-availability-change.html.
AWS Artifact: compliance reports as audit evidence: How to obtain AWS compliance reports and assess their applicability using service coverage, reporting periods, and shared-responsibility boundaries.
AWS Artifact Reports provides access to AWS compliance documents, including SOC reports, PCI documentation, and ISO certificates. Choose the document that supports the control assertion you need to evaluate: a certificate and an auditor’s detailed report do not provide the same evidence.
AWS Audit Manager: assessment evidence collection: How assessment scope and control data sources determine which evidence is collected, supplemented manually, and organized for audit review.
AWS Audit Manager has been in maintenance since March 31, 2026: it is closed to new customers, while existing customers can continue using it. This lesson explains its existing assessment model, not a recommendation for new workloads. AWS's migration guide is https://docs.aws.amazon.com/audit-manager/latest/userguide/audit-manager-availability-change.html.
AWS Well-Architected Framework: security architecture reviews: How workload scope, security pillar questions, and supporting evidence produce architectural risk assessments and prioritized improvements without substituting for automated checks or compliance audits.
A security architecture review examines whether a workload's design and operating practices address its business and security requirements. The workload is the business capability, not merely its resources: it includes applications, infrastructure, data, procedures, and accountable people. Define the environment, accounts, Regions, data classifications, critical flows, and business impact before interpreting review answers.
AWS Well-Architected Tool: Security pillar reviews: How evidence-backed answers in a workload's Security pillar review produce architectural risk ratings and improvement guidance, with milestones tracking changes rather than certifying compliance.
An AWS Well-Architected Tool review evaluates a defined workload against a lens. For this lesson, use the AWS Well-Architected Framework lens and its Security pillar. Establish the workload boundary first: the application, environments, accounts, dependencies, and responsibilities being reviewed. Otherwise, evidence from one component can be mistaken for evidence covering the whole workload.
AWS Trusted Advisor: security best-practice checks: How security checks identify resource-level risks, and how check coverage, result freshness, and exclusions limit the compliance conclusions their recommendations support.
AWS Trusted Advisor security checks evaluate selected configuration conditions against AWS best practices. A resource-level result connects a condition to an identifiable resource, such as a security group or S3 bucket. Some checks instead evaluate account-level settings, so not every result describes an individual workload resource.
AWS Well-Architected Tool vs AWS Trusted Advisor: When to use questionnaire-based architectural reviews rather than automated resource checks to assess alignment with AWS security best practices.
AWS Well-Architected Tool supports a questionnaire-based review of a defined workload against AWS architectural best practices. For security, it helps reviewers examine how identity, data protection, detection, and incident response work together. Its unit of reasoning is the workload: components and operational practices that deliver business value, potentially spanning multiple accounts.
AWS Trusted Advisor vs AWS Security Hub: security recommendations and compliance controls: How Trusted Advisor's best-practice recommendations differ from Security Hub's standards-based security controls and consolidated findings.
AWS Trusted Advisor asks where an AWS environment could better follow AWS best practices. Its security recommendations sit alongside recommendations for cost, performance, reliability, and other operational concerns. A check identifies a condition worth reviewing and provides guidance; it is not inherently an assessment against a selected compliance standard.