<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Isaac Oppong-Amoah</title>
    <description>The latest articles on Forem by Isaac Oppong-Amoah (@isec101).</description>
    <link>https://forem.com/isec101</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1012304%2Fe3c5f6d0-6716-4bfe-a2d5-2f24f06565f1.png</url>
      <title>Forem: Isaac Oppong-Amoah</title>
      <link>https://forem.com/isec101</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/isec101"/>
    <language>en</language>
    <item>
      <title>The Unofficial Guide to Reconstructing a Cloud Breach in Minutes</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Fri, 27 Feb 2026 12:53:07 +0000</pubDate>
      <link>https://forem.com/aws-builders/the-unofficial-guide-to-reconstructing-a-cloud-breach-in-minutes-194g</link>
      <guid>https://forem.com/aws-builders/the-unofficial-guide-to-reconstructing-a-cloud-breach-in-minutes-194g</guid>
      <description>&lt;p&gt;Most security conversations in the cloud start with the wrong question.&lt;/p&gt;

&lt;p&gt;We ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are all regions secured?&lt;/li&gt;
&lt;li&gt;Are backups enabled?&lt;/li&gt;
&lt;li&gt;Is SSO working?&lt;/li&gt;
&lt;li&gt;Is encryption turned on?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If we were breached right now, could we reconstruct exactly what happened within minutes?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Cloud security maturity isn’t about enabled services.&lt;br&gt;
It’s about forensic clarity under pressure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Region Control: The Illusion of Coverage
&lt;/h2&gt;

&lt;p&gt;AWS Security Hub allows you to aggregate findings across regions. At scale, many organizations want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One approved region&lt;/li&gt;
&lt;li&gt;All other regions disabled&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the organization level, this is governed via AWS Organizations and its policy types.&lt;/p&gt;

&lt;p&gt;The critical nuance: Organizations policy operators are deterministic — not expressive.&lt;/p&gt;

&lt;p&gt;They evaluate literally.&lt;br&gt;
They don’t “subtract dynamically.”&lt;br&gt;
They don’t infer intent.&lt;/p&gt;

&lt;p&gt;Relying on implicit behavior (e.g, enabling “all supported regions except one”) introduces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drift&lt;/li&gt;
&lt;li&gt;Silent misconfiguration&lt;/li&gt;
&lt;li&gt;Inconsistent security posture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The mature pattern is explicit region assignment using supported policy constructs.&lt;/p&gt;

&lt;p&gt;Security guardrails should be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit&lt;/li&gt;
&lt;li&gt;Testable&lt;/li&gt;
&lt;li&gt;Predictable&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Backups Don’t Equal Recovery
&lt;/h2&gt;

&lt;p&gt;AWS Backup makes centralized protection elegant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tag-based backup plans&lt;/li&gt;
&lt;li&gt;Cross-account vault copies&lt;/li&gt;
&lt;li&gt;Automated scheduling&lt;/li&gt;
&lt;li&gt;Policy-based governance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But complexity increases when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using customer-managed KMS keys&lt;/li&gt;
&lt;li&gt;Performing cross-account restores&lt;/li&gt;
&lt;li&gt;Protecting services with limited integration support&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Encryption boundaries matter.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AWS-managed keys cannot be shared across accounts for cross-account copy.&lt;br&gt;
Customer-managed keys require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit key policies&lt;/li&gt;
&lt;li&gt;Grants&lt;/li&gt;
&lt;li&gt;Proper principal scoping&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most organizations validate backup jobs.&lt;br&gt;
Few validate cross-account restore under incident constraints.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your incident response role cannot decrypt your backup during a breach,&lt;br&gt;
you don’t have recovery — you have storage.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Identity: The Quiet Failure Plane
&lt;/h2&gt;

&lt;p&gt;AWS IAM Identity Center (formerly AWS SSO) issues temporary credentials.&lt;/p&gt;

&lt;p&gt;Console sessions may appear active.&lt;/p&gt;

&lt;p&gt;But underneath:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Temporary credentials expire&lt;/li&gt;
&lt;li&gt;SigV4 signatures have time validation&lt;/li&gt;
&lt;li&gt;Services re-authenticate per request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An expired signature error doesn’t necessarily mean the session ended — it often means the underlying temporary credentials exceeded their validity window.&lt;/p&gt;

&lt;p&gt;In incident response scenarios, this can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interrupt forensic log retrieval&lt;/li&gt;
&lt;li&gt;Break console queries mid-analysis&lt;/li&gt;
&lt;li&gt;Cause confusion around privilege changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The identity plane in AWS is intentionally ephemeral.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Security operations must treat credential lifecycle as a first-class operational dependency.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Shift: From Configuration to Reconstruction
&lt;/h2&gt;

&lt;p&gt;Cloud-native security leadership requires three shifts:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Deterministic Guardrails
&lt;/h3&gt;

&lt;p&gt;Test the organization's policies before deployment.&lt;br&gt;
Avoid assumption-based logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Recovery Engineering
&lt;/h3&gt;

&lt;p&gt;Quarterly restore drills.&lt;br&gt;
Cross-account decryption validation.&lt;br&gt;
Isolated forensic restore environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Identity Observability
&lt;/h3&gt;

&lt;p&gt;Monitor session duration.&lt;br&gt;
Correlate session activity using AWS CloudTrail.&lt;br&gt;
Detect anomalous token usage.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Metric of Security Maturity
&lt;/h2&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Number of services enabled&lt;/li&gt;
&lt;li&gt;Number of findings resolved&lt;/li&gt;
&lt;li&gt;Number of policies attached&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Time to reconstruct the incident timeline.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Can you answer, within minutes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which role was assumed?&lt;/li&gt;
&lt;li&gt;From where?&lt;/li&gt;
&lt;li&gt;Which API calls were made?&lt;/li&gt;
&lt;li&gt;What data was accessed?&lt;/li&gt;
&lt;li&gt;Whether backups are clean and restorable?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If not, your environment isn’t necessarily insecure.&lt;/p&gt;

&lt;p&gt;It’s opaque.&lt;/p&gt;




&lt;h2&gt;
  
  
  👤👤👤 What Organizations on AWS Should Do
&lt;/h2&gt;

&lt;p&gt;If you're running workloads on AWS at scale, this is non-negotiable:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Make Policy Behavior Explicit
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;@@assign&lt;/code&gt; in the organization's policies.&lt;/li&gt;
&lt;li&gt;Standardize approved regions.&lt;/li&gt;
&lt;li&gt;Continuously validate guardrails in a test OU before production rollout.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Engineer for Recovery, Not Reporting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Perform quarterly cross-account restore drills.&lt;/li&gt;
&lt;li&gt;Validate KMS key grants from incident response roles.&lt;/li&gt;
&lt;li&gt;Simulate ransomware-style account lockouts and test recovery paths.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Centralize and Protect Logs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enable organization-wide AWS CloudTrail.&lt;/li&gt;
&lt;li&gt;Send logs to a dedicated log archive account.&lt;/li&gt;
&lt;li&gt;Enable immutable storage and restricted access.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Treat Identity as Tier-0 Infrastructure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Standardize session duration policies.&lt;/li&gt;
&lt;li&gt;Monitor STS token usage.&lt;/li&gt;
&lt;li&gt;Alert on unusual AssumeRole patterns.&lt;/li&gt;
&lt;li&gt;Enforce MFA everywhere possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Measure Reconstruction Time
&lt;/h3&gt;

&lt;p&gt;Track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Time to detect&lt;/li&gt;
&lt;li&gt;Time to identify compromised role&lt;/li&gt;
&lt;li&gt;Time to confirm data access&lt;/li&gt;
&lt;li&gt;Time to validate backup integrity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make &lt;strong&gt;incident timeline reconstruction speed&lt;/strong&gt; a board-level KPI.&lt;/p&gt;




&lt;h2&gt;
  
  
  👤 What Individuals (Engineers &amp;amp; Security Practitioners) Should Do
&lt;/h2&gt;

&lt;p&gt;Cloud resilience isn’t only organizational; it’s personal.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Understand Evaluation Models
&lt;/h3&gt;

&lt;p&gt;Don’t just use services — understand how they evaluate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organizations policies&lt;/li&gt;
&lt;li&gt;IAM policy logic&lt;/li&gt;
&lt;li&gt;SCP inheritance&lt;/li&gt;
&lt;li&gt;Region enforcement behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read the documentation. Test edge cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Practice Restore Drills Yourself
&lt;/h3&gt;

&lt;p&gt;Spin up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A test account&lt;/li&gt;
&lt;li&gt;Cross-account KMS encryption&lt;/li&gt;
&lt;li&gt;Backup copy and restore workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Break it intentionally. Learn how it fails.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Monitor Your Own Credential Behavior
&lt;/h3&gt;

&lt;p&gt;Understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Session duration&lt;/li&gt;
&lt;li&gt;Temporary credential expiration&lt;/li&gt;
&lt;li&gt;SigV4 signing validity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Know why “Signature expired” happens — before it happens during an incident.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Think Like an Investigator
&lt;/h3&gt;

&lt;p&gt;When you build something, ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If this is abused, will I see it?&lt;/li&gt;
&lt;li&gt;Where will the logs appear?&lt;/li&gt;
&lt;li&gt;Can I correlate this action in under 5 minutes?&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Design for your future stressed self.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  To Conclude
&lt;/h2&gt;

&lt;p&gt;Cloud security isn’t about stacking services.&lt;/p&gt;

&lt;p&gt;It’s about deeply understanding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Policy evaluation models&lt;/li&gt;
&lt;li&gt;Encryption boundaries&lt;/li&gt;
&lt;li&gt;Identity lifecycle behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because protection is prevention.&lt;br&gt;
But resilience is reconstruction speed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;And the organizations that lead in the cloud&lt;br&gt;
are the ones that can explain exactly what happened without guessing.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_security_hub.html" rel="noopener noreferrer"&gt;AWS Organizations – Security Hub policy type&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-accounts.html" rel="noopener noreferrer"&gt;AWS Security Hub multi-account configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/aws-backup/latest/devguide/manage-cross-account.html" rel="noopener noreferrer"&gt;AWS Backup cross-account management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html" rel="noopener noreferrer"&gt;AWS KMS key policies and cross-account access&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html" rel="noopener noreferrer"&gt;Temporary security credentials in IAM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/how-session-duration.html" rel="noopener noreferrer"&gt;IAM Identity Center session duration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html" rel="noopener noreferrer"&gt;AWS Signature Version 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/best-practices-security.html" rel="noopener noreferrer"&gt;AWS CloudTrail security best practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sygnia.co/blog/incident-response-to-cloud-security-incidents-aws-azure-and-gcp-best-practices/" rel="noopener noreferrer"&gt;Incident Response to Cloud Security Incidents: AWS, Azure, and GCP Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>security</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Beyond Firewalls: How AWS WAF Becomes Your First Line of Cloud Defense</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Tue, 10 Feb 2026 16:15:09 +0000</pubDate>
      <link>https://forem.com/aws-builders/beyond-firewalls-how-aws-waf-becomes-your-first-line-of-cloud-defense-2hdh</link>
      <guid>https://forem.com/aws-builders/beyond-firewalls-how-aws-waf-becomes-your-first-line-of-cloud-defense-2hdh</guid>
      <description>&lt;p&gt;Most cloud breaches don’t start with zero-days or kernel exploits.&lt;br&gt;
They start with &lt;strong&gt;a login endpoint&lt;/strong&gt;, &lt;strong&gt;an exposed API&lt;/strong&gt;, or &lt;strong&gt;an unvalidated input field&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s where &lt;strong&gt;AWS WAF&lt;/strong&gt; quietly decides whether your application survives the internet.&lt;/p&gt;

&lt;p&gt;This isn’t a beginner’s overview.&lt;br&gt;
This is how AWS WAF works &lt;strong&gt;in real environments&lt;/strong&gt;, how security teams actually use it, and why it’s a non-negotiable control for production workloads.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why Application-Layer Security Is the Real Battleground
&lt;/h2&gt;

&lt;p&gt;Infrastructure security answers &lt;em&gt;who can reach your system&lt;/em&gt;.&lt;br&gt;
Application security answers &lt;em&gt;what they can do once they get there&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Attackers don’t brute-force IAM roles — they:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inject SQL through query strings&lt;/li&gt;
&lt;li&gt;Abuse APIs at scale&lt;/li&gt;
&lt;li&gt;Weaponize bots against login flows&lt;/li&gt;
&lt;li&gt;Probe business logic, not ports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS WAF exists precisely at that intersection: &lt;strong&gt;before code execution, after network routing&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  What AWS WAF Really Is (and Isn’t)
&lt;/h2&gt;

&lt;p&gt;AWS WAF is a &lt;strong&gt;Layer 7 policy engine&lt;/strong&gt;, not a traditional firewall.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ceha0du0wz8wafzc5ha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ceha0du0wz8wafzc5ha.png" alt="Image3" width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inspects HTTP/S requests in real time&lt;/li&gt;
&lt;li&gt;Evaluates them against ordered rules&lt;/li&gt;
&lt;li&gt;Applies deterministic actions: &lt;em&gt;allow, block, or observe&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does &lt;strong&gt;not&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Replace secure coding&lt;/li&gt;
&lt;li&gt;Patch vulnerable applications&lt;/li&gt;
&lt;li&gt;Protect resources exposed directly via public IPs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of AWS WAF as &lt;strong&gt;programmable intent enforcement&lt;/strong&gt; for your application edge.&lt;/p&gt;


&lt;h2&gt;
  
  
  Where AWS WAF Lives in the Request Path
&lt;/h2&gt;

&lt;p&gt;AWS WAF is enforced &lt;em&gt;before&lt;/em&gt; traffic reaches your application logic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl5v13p8eq3ur23nn408v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl5v13p8eq3ur23nn408v.png" alt="Image" width="800" height="790"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request lifecycle&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client sends request&lt;/li&gt;
&lt;li&gt;CloudFront / ALB / API Gateway receives it&lt;/li&gt;
&lt;li&gt;AWS WAF evaluates the Web ACL (top-down)&lt;/li&gt;
&lt;li&gt;Decision is made in milliseconds&lt;/li&gt;
&lt;li&gt;Only clean traffic reaches your app&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is why WAF mistakes are expensive — and why tuning matters.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Rule Engine: Where Security Becomes Strategy
&lt;/h2&gt;

&lt;p&gt;AWS WAF doesn’t “detect threats.”&lt;br&gt;
It &lt;strong&gt;enforces intent&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Managed Rules: Your Baseline
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs244e1in5pwcwr826nph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs244e1in5pwcwr826nph.png" alt="waf rules" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AWS-managed rule groups protect against:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQL injection&lt;/li&gt;
&lt;li&gt;Cross-site scripting (XSS)&lt;/li&gt;
&lt;li&gt;Known bad inputs&lt;/li&gt;
&lt;li&gt;OS command injection&lt;/li&gt;
&lt;li&gt;Common scanners and exploits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They are continuously updated and should be &lt;strong&gt;enabled by default&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But managed rules alone don’t win wars.&lt;/p&gt;


&lt;h3&gt;
  
  
  Custom Rules: Where You Win
&lt;/h3&gt;

&lt;p&gt;Custom rules encode &lt;strong&gt;business logic security&lt;/strong&gt; — the things attackers can’t predict.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs that must only be called with a custom header&lt;/li&gt;
&lt;li&gt;Admin paths restricted to VPN IPs&lt;/li&gt;
&lt;li&gt;Requests missing mandatory tokens&lt;/li&gt;
&lt;li&gt;Abnormal payload structures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: Block requests without a required header&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"NotStatement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"ByteMatchStatement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"FieldToMatch"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"SingleHeader"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"x-internal-token"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"SearchString"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"expected-value"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"TextTransformations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NONE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Priority"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"PositionalConstraint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"EXACTLY"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Block"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where AWS WAF stops being generic — and starts being powerful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rate Limiting: The Most Underrated Control
&lt;/h2&gt;

&lt;p&gt;Most real attacks aren’t clever. They’re &lt;strong&gt;loud and fast&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Rate-based rules stop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Credential stuffing&lt;/li&gt;
&lt;li&gt;API scraping&lt;/li&gt;
&lt;li&gt;Login brute-force attempts&lt;/li&gt;
&lt;li&gt;Layer 7 denial-of-service attacks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F62oepcchp5qf1hmg62y7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F62oepcchp5qf1hmg62y7.png" alt="Image6" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They work because &lt;strong&gt;legitimate users behave predictably&lt;/strong&gt;.&lt;br&gt;
Attack tools don’t.&lt;/p&gt;

&lt;p&gt;One well-placed rate rule can eliminate entire attack classes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bot Control: Defending Against Automation, Not Humans
&lt;/h2&gt;

&lt;p&gt;Bots don’t look like attackers.&lt;br&gt;
They look like browsers.&lt;/p&gt;

&lt;p&gt;AWS WAF Bot Control uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Behavioral analysis&lt;/li&gt;
&lt;li&gt;Browser fingerprinting&lt;/li&gt;
&lt;li&gt;Reputation intelligence&lt;/li&gt;
&lt;li&gt;Request pattern modeling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is critical for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public APIs&lt;/li&gt;
&lt;li&gt;E-commerce platforms&lt;/li&gt;
&lt;li&gt;Authentication endpoints&lt;/li&gt;
&lt;li&gt;SaaS applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your app is public and valuable, bots &lt;em&gt;will&lt;/em&gt; find it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Visibility: Turning Blocks into Intelligence
&lt;/h2&gt;

&lt;p&gt;A WAF that blocks without logging is blind.&lt;/p&gt;

&lt;p&gt;AWS WAF integrates with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CloudWatch (metrics)&lt;/li&gt;
&lt;li&gt;S3 (full request logs)&lt;/li&gt;
&lt;li&gt;Kinesis Firehose&lt;/li&gt;
&lt;li&gt;SIEM platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Production rule lifecycle&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deploy in &lt;code&gt;COUNT&lt;/code&gt; mode&lt;/li&gt;
&lt;li&gt;Observe real traffic&lt;/li&gt;
&lt;li&gt;Tune false positives&lt;/li&gt;
&lt;li&gt;Enforce with &lt;code&gt;BLOCK&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Re-evaluate continuously&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Security without feedback loops fails quietly.&lt;/p&gt;




&lt;h2&gt;
  
  
  AWS WAF and DDoS: Know the Boundary
&lt;/h2&gt;

&lt;p&gt;AWS WAF and AWS Shield are complementary.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;L3/L4&lt;/td&gt;
&lt;td&gt;Shield&lt;/td&gt;
&lt;td&gt;Volume-based attacks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L7&lt;/td&gt;
&lt;td&gt;WAF&lt;/td&gt;
&lt;td&gt;Logic-based attacks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F87meucn7mxxukfw9eklt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F87meucn7mxxukfw9eklt.png" alt="Image7" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WAF filters intent.&lt;br&gt;
Shield absorbs force.&lt;/p&gt;

&lt;p&gt;You need both for public-facing workloads.&lt;/p&gt;




&lt;h2&gt;
  
  
  Operating at Scale: The Enterprise Reality
&lt;/h2&gt;

&lt;p&gt;In multi-account environments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web ACLs should be centrally managed&lt;/li&gt;
&lt;li&gt;Policies should be shared consistently&lt;/li&gt;
&lt;li&gt;Drift should be prevented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS Firewall Manager enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organization-wide WAF enforcement&lt;/li&gt;
&lt;li&gt;Standardized protections&lt;/li&gt;
&lt;li&gt;Easier audits&lt;/li&gt;
&lt;li&gt;MSSP-scale operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security should scale faster than engineering teams.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hard-Won Best Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Always protect CloudFront, not just ALBs&lt;/li&gt;
&lt;li&gt;Enable managed rules first — customize second&lt;/li&gt;
&lt;li&gt;Never deploy directly in BLOCK mode&lt;/li&gt;
&lt;li&gt;Log everything, sample nothing&lt;/li&gt;
&lt;li&gt;Separate prod and non-prod Web ACLs&lt;/li&gt;
&lt;li&gt;Treat WAF alerts as &lt;strong&gt;security signals&lt;/strong&gt;, not noise&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Verdict
&lt;/h2&gt;

&lt;p&gt;AWS WAF isn’t flashy.&lt;br&gt;
It doesn’t replace secure code or zero trust.&lt;br&gt;
It doesn’t stop every breach.&lt;/p&gt;

&lt;p&gt;But it &lt;strong&gt;buys time&lt;/strong&gt;, &lt;strong&gt;reduces blast radius&lt;/strong&gt;, and &lt;strong&gt;filters chaos before it hits your code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In cloud security, that difference is everything.&lt;/p&gt;

&lt;p&gt;If your application is public and AWS WAF isn’t in front of it —&lt;br&gt;
you’re not exposed.&lt;/p&gt;

&lt;p&gt;You’re &lt;em&gt;unguarded&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/waf/" rel="noopener noreferrer"&gt;AWS WAF – Official Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/how-aws-waf-works.html" rel="noopener noreferrer"&gt;AWS WAF Rule Evaluation Order&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups.html" rel="noopener noreferrer"&gt;AWS Managed Rule Groups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-rate-based.html" rel="noopener noreferrer"&gt;Rate-Based Rules (Brute Force &amp;amp; API Abuse)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://owasp.org/www-project-top-ten/" rel="noopener noreferrer"&gt;OWASP Top 10 Web Application Risks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html" rel="noopener noreferrer"&gt;AWS Shield vs WAF (DDoS Context)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/" rel="noopener noreferrer"&gt;AWS Well-Architected Framework – Security Pillar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>aws</category>
      <category>cybersecurity</category>
      <category>security</category>
    </item>
    <item>
      <title>The Definitive Blueprint for Constructing a Fortified Cloud Infrastructure: A Focus on AWS</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Fri, 30 Jan 2026 17:46:18 +0000</pubDate>
      <link>https://forem.com/aws-builders/the-definitive-blueprint-for-constructing-a-fortified-cloud-infrastructure-a-focus-on-aws-28gp</link>
      <guid>https://forem.com/aws-builders/the-definitive-blueprint-for-constructing-a-fortified-cloud-infrastructure-a-focus-on-aws-28gp</guid>
      <description>&lt;p&gt;Cloud isn’t the future anymore.&lt;br&gt;
It’s the battlefield.&lt;/p&gt;

&lt;p&gt;Every modern organization runs on cloud infrastructure, and every attacker knows it. The question is no longer &lt;em&gt;“Should we secure the cloud?”&lt;/em&gt;—it’s &lt;em&gt;“How do we design cloud security so deeply that failure becomes expensive, loud, and recoverable?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is not a checklist.&lt;br&gt;
This is a &lt;strong&gt;blueprint&lt;/strong&gt;—the kind used by teams that expect to scale &lt;em&gt;and&lt;/em&gt; survive.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 First Principle: Cloud Security Is Architecture, Not a Tool
&lt;/h2&gt;

&lt;p&gt;If your cloud security strategy starts with a product, you’re already late.&lt;/p&gt;

&lt;p&gt;Real security starts with &lt;strong&gt;architectural intent&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identity before network&lt;/li&gt;
&lt;li&gt;Automation before humans&lt;/li&gt;
&lt;li&gt;Detection before prevention&lt;/li&gt;
&lt;li&gt;Recovery before perfection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On AWS, this mindset is formalized in the &lt;strong&gt;Well-Architected Framework (Security Pillar)&lt;/strong&gt;—a model that treats security as a system, not a feature.&lt;br&gt;
👉 &lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ Step 1: Choose a Cloud Provider That Assumes Breaches Will Happen
&lt;/h2&gt;

&lt;p&gt;Security maturity shows in what a provider prepares for—not what they market.&lt;/p&gt;

&lt;p&gt;What actually matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Independent compliance validation (ISO 27001, SOC 2, GDPR)&lt;/li&gt;
&lt;li&gt;Native DDoS and application-layer protection&lt;/li&gt;
&lt;li&gt;Clear shared responsibility boundaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS doesn’t just claim compliance—it publishes it, audits it, and operationalizes it.&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/compliance" rel="noopener noreferrer"&gt;https://aws.amazon.com/compliance&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/shield" rel="noopener noreferrer"&gt;https://aws.amazon.com/shield&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/waf" rel="noopener noreferrer"&gt;https://aws.amazon.com/waf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design assumption:&lt;/strong&gt; attacks are inevitable. Survival is optional.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Step 2: Encrypt Everything (Then Control the Keys)
&lt;/h2&gt;

&lt;p&gt;Encryption is table stakes. &lt;strong&gt;Key ownership is power.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Minimum baseline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TLS everywhere (no exceptions)&lt;/li&gt;
&lt;li&gt;Encryption at rest by default&lt;/li&gt;
&lt;li&gt;Centralized key lifecycle control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS makes this boring—in a good way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS KMS&lt;/strong&gt; for managed encryption&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CloudHSM&lt;/strong&gt; for high-assurance key control&lt;/li&gt;
&lt;li&gt;Native encryption across S3, EBS, RDS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://aws.amazon.com/kms" rel="noopener noreferrer"&gt;https://aws.amazon.com/kms&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/cloudhsm" rel="noopener noreferrer"&gt;https://aws.amazon.com/cloudhsm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If your data leaks and it isn’t encrypted, the incident becomes a headline.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧍 Step 3: Identity Is the New Perimeter
&lt;/h2&gt;

&lt;p&gt;Firewalls don’t stop credential abuse.&lt;br&gt;
Identity design does.&lt;/p&gt;

&lt;p&gt;Modern cloud security assumes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No implicit trust&lt;/li&gt;
&lt;li&gt;No standing privileges&lt;/li&gt;
&lt;li&gt;No shared credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS IAM enables this through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Least-privilege policies&lt;/li&gt;
&lt;li&gt;Mandatory MFA&lt;/li&gt;
&lt;li&gt;Permission analysis with &lt;strong&gt;IAM Access Analyzer&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Full activity logging via &lt;strong&gt;CloudTrail&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://aws.amazon.com/iam" rel="noopener noreferrer"&gt;https://aws.amazon.com/iam&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/cloudtrail" rel="noopener noreferrer"&gt;https://aws.amazon.com/cloudtrail&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If identity fails, everything else is decoration.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 4: Network Security Still Matters—Just Differently
&lt;/h2&gt;

&lt;p&gt;Yes, zero trust matters.&lt;br&gt;
No, networks are not obsolete.&lt;/p&gt;

&lt;p&gt;Strong cloud networks provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Isolation via VPCs&lt;/li&gt;
&lt;li&gt;Explicit traffic control via Security Groups and NACLs&lt;/li&gt;
&lt;li&gt;Behavioral threat detection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS &lt;strong&gt;GuardDuty&lt;/strong&gt; continuously watches for malicious activity using threat intelligence and ML—without agents, tuning, or fatigue.&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/guardduty" rel="noopener noreferrer"&gt;https://aws.amazon.com/guardduty&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/vpc" rel="noopener noreferrer"&gt;https://aws.amazon.com/vpc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Design for containment, not just prevention.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 Step 5: Continuous Security Is the Only Real Security
&lt;/h2&gt;

&lt;p&gt;Annual audits don’t stop real attackers.&lt;/p&gt;

&lt;p&gt;Modern security is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always on&lt;/li&gt;
&lt;li&gt;Always measuring&lt;/li&gt;
&lt;li&gt;Always verifying assumptions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS enables this with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon Inspector&lt;/strong&gt; for vulnerability scanning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon Macie&lt;/strong&gt; for sensitive data discovery&lt;/li&gt;
&lt;li&gt;Continuous configuration tracking via &lt;strong&gt;AWS Config&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://aws.amazon.com/inspector" rel="noopener noreferrer"&gt;https://aws.amazon.com/inspector&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/macie" rel="noopener noreferrer"&gt;https://aws.amazon.com/macie&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Security that sleeps is security that fails.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 Step 6: Incident Response Is a Feature, Not a Document
&lt;/h2&gt;

&lt;p&gt;If your incident response plan lives in a PDF, it won’t survive first contact.&lt;/p&gt;

&lt;p&gt;Cloud-native IR requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time detection&lt;/li&gt;
&lt;li&gt;Automated containment&lt;/li&gt;
&lt;li&gt;Forensic-grade logging&lt;/li&gt;
&lt;li&gt;Post-incident accountability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS operationalizes this with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CloudWatch&lt;/strong&gt; for signals&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CloudTrail&lt;/strong&gt; for evidence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAF &amp;amp; Shield&lt;/strong&gt; for active defense&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Config&lt;/strong&gt; for state reconstruction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://aws.amazon.com/cloudwatch" rel="noopener noreferrer"&gt;https://aws.amazon.com/cloudwatch&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resilience is the ability to respond &lt;em&gt;without panic&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔄 Step 7: Patch Like an Engineer, Not a Hero
&lt;/h2&gt;

&lt;p&gt;Unpatched systems remain the easiest way in.&lt;/p&gt;

&lt;p&gt;Manual patching does not scale.&lt;br&gt;
Automation does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Systems Manager&lt;/strong&gt; handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Patch automation&lt;/li&gt;
&lt;li&gt;Compliance reporting&lt;/li&gt;
&lt;li&gt;Hybrid environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If patching depends on memory, it will fail.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Step 8: Humans Are Part of the Attack Surface
&lt;/h2&gt;

&lt;p&gt;Most breaches still start with people—not packets.&lt;/p&gt;

&lt;p&gt;Security-mature teams invest in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continuous security awareness&lt;/li&gt;
&lt;li&gt;Phishing simulations&lt;/li&gt;
&lt;li&gt;Role-based cloud training&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS provides structured learning through &lt;strong&gt;AWS Training &amp;amp; Certification&lt;/strong&gt; and Skill Builder.&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/training" rel="noopener noreferrer"&gt;https://aws.amazon.com/training&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Culture is the last line of defense.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚖️ Step 9: Governance Is How Security Scales
&lt;/h2&gt;

&lt;p&gt;Without governance, security collapses under growth.&lt;/p&gt;

&lt;p&gt;AWS enables scalable control using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Organizations&lt;/strong&gt; for multi-account isolation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Artifact&lt;/strong&gt; for audit evidence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Config&lt;/strong&gt; for policy enforcement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://aws.amazon.com/organizations" rel="noopener noreferrer"&gt;https://aws.amazon.com/organizations&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://aws.amazon.com/artifact" rel="noopener noreferrer"&gt;https://aws.amazon.com/artifact&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compliance isn’t red tape—it’s institutional memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏁 Final Thought: Cloud Security Is a System, Not a Silo
&lt;/h2&gt;

&lt;p&gt;The strongest cloud environments aren’t secured by luck or tools.&lt;/p&gt;

&lt;p&gt;They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Designed&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Measured&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rehearsed&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS doesn’t eliminate risk—but it gives engineers the primitives to build systems that &lt;strong&gt;fail safely, recover fast, and scale confidently&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The real question is no longer &lt;em&gt;“Is the cloud secure?”&lt;/em&gt;&lt;br&gt;
It’s &lt;em&gt;“Did you design it to be?”&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Well-Architected Framework – Security Pillar&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Shared Responsibility Model &amp;amp; Compliance Programs&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/compliance" rel="noopener noreferrer"&gt;https://aws.amazon.com/compliance&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/compliance/shared-responsibility-model" rel="noopener noreferrer"&gt;https://aws.amazon.com/compliance/shared-responsibility-model&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Identity &amp;amp; Access Management (IAM) and Access Analyzer&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/iam" rel="noopener noreferrer"&gt;https://aws.amazon.com/iam&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Encryption Services (KMS &amp;amp; CloudHSM)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/kms" rel="noopener noreferrer"&gt;https://aws.amazon.com/kms&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/cloudhsm" rel="noopener noreferrer"&gt;https://aws.amazon.com/cloudhsm&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Network &amp;amp; Threat Protection (VPC, GuardDuty, WAF, Shield)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/vpc" rel="noopener noreferrer"&gt;https://aws.amazon.com/vpc&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/guardduty" rel="noopener noreferrer"&gt;https://aws.amazon.com/guardduty&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/waf" rel="noopener noreferrer"&gt;https://aws.amazon.com/waf&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/shield" rel="noopener noreferrer"&gt;https://aws.amazon.com/shield&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Continuous Security &amp;amp; Monitoring (Inspector, Macie, CloudTrail, CloudWatch)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/inspector" rel="noopener noreferrer"&gt;https://aws.amazon.com/inspector&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/macie" rel="noopener noreferrer"&gt;https://aws.amazon.com/macie&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/cloudtrail" rel="noopener noreferrer"&gt;https://aws.amazon.com/cloudtrail&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/cloudwatch" rel="noopener noreferrer"&gt;https://aws.amazon.com/cloudwatch&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Patch Management &amp;amp; Governance (Systems Manager, Organizations, Artifact)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/organizations" rel="noopener noreferrer"&gt;https://aws.amazon.com/organizations&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/artifact" rel="noopener noreferrer"&gt;https://aws.amazon.com/artifact&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Security Training &amp;amp; Certification&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/training" rel="noopener noreferrer"&gt;https://aws.amazon.com/training&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




</description>
      <category>cloudsecuirty</category>
      <category>aws</category>
      <category>securecloud</category>
      <category>wellarchitected</category>
    </item>
    <item>
      <title>AWS Cloud Security: Designing Self-Securing Systems</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Tue, 27 Jan 2026 11:53:27 +0000</pubDate>
      <link>https://forem.com/aws-builders/cloud-security-in-2026-designing-systems-that-protect-themselves-50bd</link>
      <guid>https://forem.com/aws-builders/cloud-security-in-2026-designing-systems-that-protect-themselves-50bd</guid>
      <description>&lt;p&gt;Cloud security is evolving faster than most teams can react. As we kick off 2026, one truth is unavoidable:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Security is no longer about reacting to incidents — it’s about &lt;strong&gt;building systems that secure themselves&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AWS re:Invent 2025 didn’t just release new features; it &lt;strong&gt;redefined the future of cloud security&lt;/strong&gt;. Here’s what engineers, DevSecOps teams, and SOCs need to know going forward.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why 2026 Demands a New Security Mindset
&lt;/h2&gt;

&lt;p&gt;Old habits die hard:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build → Misconfigure → Detect → Respond → Repeat&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In 2026, that cycle is broken. Teams that still focus on “faster response” are already behind. AWS’s announcements show that &lt;strong&gt;prevention, automation, and context&lt;/strong&gt; are now the keys to cloud security.&lt;/p&gt;

&lt;p&gt;🎥 AWS re:Invent2025 Security sessions:&lt;br&gt;
&lt;a href="https://www.youtube.com/playlist?list=PL2yQDdvlhXf_1rHZpRPA6MDUBv_OKz6Qk" rel="noopener noreferrer"&gt;AWS re:Invent2025 Security sessions&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Security Starts at Design Time
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;AWS Security Agent (Preview)&lt;/strong&gt; now surfaces risks during design and development, before workloads reach production.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifies architectural risks early&lt;/li&gt;
&lt;li&gt;Detects insecure code patterns&lt;/li&gt;
&lt;li&gt;Provides remediation guidance aligned with AWS best practices&lt;/li&gt;
&lt;li&gt;Supports proactive security testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 &lt;a href="https://aws.amazon.com/blogs/security/aws-launches-ai-enhanced-security-innovations-at-reinvent-2025/?utm_source%20https://aws.amazon.com/blogs/security/aws-reinvent-2025-your-guide-to-security-sessions-across-four-transformative-themes/?utm_source%20https://www.aboutamazon.com/news/aws/aws-re-invent-2025-ai-news-updates%20https://docs.aws.amazon.com" rel="noopener noreferrer"&gt;Learn more from AWS Security announcements&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The cheapest vulnerability to fix is the one that never reaches production.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. SOC Work Is AI-Assisted, Not Manual
&lt;/h2&gt;

&lt;p&gt;AWS’s AI-driven approach to SOC operations is redefining incident response:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correlates signals automatically&lt;/li&gt;
&lt;li&gt;Provides contextual insights&lt;/li&gt;
&lt;li&gt;Reduces mean-time-to-response&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 AWS Security: &lt;a href="https://aws.amazon.com/security/" rel="noopener noreferrer"&gt;AWS Security&lt;/a&gt;&lt;br&gt;
🎥 re:Invent SOC &amp;amp; detection sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=wXDiFAPB2eQ" rel="noopener noreferrer"&gt;From collecting tools to an autonomous SOC (SEC206)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Go4ynsu1KoQ" rel="noopener noreferrer"&gt;From SIEM to SOC: Building AI-Native Security in the Cloud with AWS (AIM289)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Human analysts focus on &lt;strong&gt;judgment&lt;/strong&gt;, not alert noise.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3. Least Privilege Becomes Automatic
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;IAM Policy Autopilot&lt;/strong&gt; finally ends manual IAM tuning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Observes real application behavior&lt;/li&gt;
&lt;li&gt;Generates least-privilege policies automatically&lt;/li&gt;
&lt;li&gt;Eliminates dangerous wildcard permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 AWS IAM Best Practices: &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html" rel="noopener noreferrer"&gt;IAM Docs&lt;/a&gt;&lt;br&gt;
🎥 re:Invent IAM sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=IJVe5GxEo44" rel="noopener noreferrer"&gt;IAM Access Analyzer Deep Dive: From Configuration to Remediation (SEC340)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=qi1OStAJ3xk" rel="noopener noreferrer"&gt;Innovation in Identity Security: how we protect the cloud &amp;amp; help you do it too&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The future:&lt;/strong&gt; Over-permissioned roles are unacceptable.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. Cloud-Native XDR Is the Baseline
&lt;/h2&gt;

&lt;p&gt;GuardDuty now correlates identity, workload, and network signals into &lt;strong&gt;attack narratives&lt;/strong&gt;, not isolated alerts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2 and ECS detection combined&lt;/li&gt;
&lt;li&gt;Threat sequences mapped to MITRE ATT&amp;amp;CK&lt;/li&gt;
&lt;li&gt;Prioritized insights instead of alert noise&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 Docs: &lt;a href="https://docs.aws.amazon.com/guardduty/" rel="noopener noreferrer"&gt;GuardDuty&lt;/a&gt;&lt;br&gt;
🔗 MITRE ATT&amp;amp;CK: &lt;a href="https://attack.mitre.org/" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK&lt;/a&gt;&lt;br&gt;
🎥 re:Invent GuardDuty &amp;amp; threat detection sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=E5p_WnP4pw8" rel="noopener noreferrer"&gt;Detect and stop malware threats using Amazon GuardDuty&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=UyakYnhI0RE&amp;amp;list=PLXy_Zt3FNy4QbBCafsuLVliDGqOcaSs20&amp;amp;index=10" rel="noopener noreferrer"&gt;AWS re:Invent 2025 – Testing GuardDuty’s Runtime Detections: Hands‑on with real‑world attack scenarios&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;SOC teams investigate &lt;strong&gt;stories&lt;/strong&gt;, not signals.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  5. Risk, Not Compliance, Drives Action
&lt;/h2&gt;

&lt;p&gt;AWS Security Hub now focuses on &lt;strong&gt;risk-based prioritization&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unified visibility across services&lt;/li&gt;
&lt;li&gt;Remediation guidance built-in&lt;/li&gt;
&lt;li&gt;Prioritizes what matters most&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 Docs: &lt;a href="https://docs.aws.amazon.com/securityhub/" rel="noopener noreferrer"&gt;Security Hub&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Compliance alone is no longer sufficient; &lt;strong&gt;risk-based action is the new baseline&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. AI Governance Is Security
&lt;/h2&gt;

&lt;p&gt;With AI integrated into cloud operations, security now includes &lt;strong&gt;model behavior, access, and accountability&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Policy enforcement for AI agents&lt;/li&gt;
&lt;li&gt;Auditable model decisions&lt;/li&gt;
&lt;li&gt;Privacy-preserving controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗  &lt;a href="https://aws.amazon.com/ai/security/?trk=610f5de5-7d1d-4b8e-9116-e0fdab15eb42&amp;amp;trk=610f5de5-7d1d-4b8e-9116-e0fdab15eb42&amp;amp;sc_channel=ps&amp;amp;sc_channel=ps&amp;amp;ef_id=EAIaIQobChMIlZr4oL-rkgMVNvZ5BB0I_jOnEAMYASAAEgIV0_D_BwE:G:s&amp;amp;s_kwcid=AL!4422!3!696723099993!e!!g!!aws%20securing%20ai!20894978382!160748481989&amp;amp;gclid=EAIaIQobChMIlZr4oL-rkgMVNvZ5BB0I_jOnEAMYASAAEgIV0_D_BwE" rel="noopener noreferrer"&gt;AWS AI security &amp;amp; governance&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://aws.amazon.com/blogs/big-data/aws-analytics-at-reinvent-2025-unifying-data-ai-and-governance-at-scale/" rel="noopener noreferrer"&gt;Unifying Data, AI, and governance at scale&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In 2026, &lt;strong&gt;the attack surface includes your AI models&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What Should Organizations Do Now?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Embed security into CI/CD pipelines&lt;/li&gt;
&lt;li&gt;Automate least-privilege IAM everywhere&lt;/li&gt;
&lt;li&gt;Adopt cloud-native XDR practices&lt;/li&gt;
&lt;li&gt;Train SOC teams to collaborate with AI&lt;/li&gt;
&lt;li&gt;Treat AI governance as a &lt;strong&gt;first-class security problem&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Should Cloud Engineers Do?
&lt;/h2&gt;

&lt;p&gt;As an AWS practitioner:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eliminate long-lived credentials&lt;/li&gt;
&lt;li&gt;Learn GuardDuty attack-chain analysis&lt;/li&gt;
&lt;li&gt;Automate security checks in IaC&lt;/li&gt;
&lt;li&gt;Understand AI’s role in cloud security&lt;/li&gt;
&lt;li&gt;Stay current with AWS-native security tooling&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;The most secure systems in 2026 won’t rely on heroics. They’ll be &lt;strong&gt;secure by design&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Refence
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PL2yQDdvlhXf_1rHZpRPA6MDUBv_OKz6Qk" rel="noopener noreferrer"&gt;AWS re:Invent2025 Security sessions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/blogs/" rel="noopener noreferrer"&gt;AWS Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/security/" rel="noopener noreferrer"&gt;AWS Secuirty Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/events/reinvent/" rel="noopener noreferrer"&gt;AWS re:Invent event hub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://orca.security/resources/blog/what-is-cloud-security/" rel="noopener noreferrer"&gt;Orca Security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@naveen_15/designing-secure-aws-architectures-as-a-beginner-6cd9a7c618f3" rel="noopener noreferrer"&gt;Designing Secure Aws Architectures&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloudsecurity</category>
      <category>devsecops</category>
      <category>awssecurity</category>
      <category>aws</category>
    </item>
    <item>
      <title>AWS IAM Identity Center (Formerly AWS SSO): Complete Guide</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Tue, 27 Jan 2026 08:33:24 +0000</pubDate>
      <link>https://forem.com/aws-builders/aws-iam-identity-center-formerly-aws-sso-complete-guide-2ei</link>
      <guid>https://forem.com/aws-builders/aws-iam-identity-center-formerly-aws-sso-complete-guide-2ei</guid>
      <description>&lt;p&gt;AWS IAM Identity Center helps you &lt;strong&gt;centrally manage access&lt;/strong&gt; to multiple AWS accounts and cloud applications using &lt;strong&gt;single sign-on (SSO)&lt;/strong&gt;. It simplifies identity management across AWS Organizations while improving security, visibility, and scalability.&lt;/p&gt;

&lt;p&gt;This guide covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What IAM Identity Center is&lt;/li&gt;
&lt;li&gt;How it works&lt;/li&gt;
&lt;li&gt;Initial configuration&lt;/li&gt;
&lt;li&gt;Permission sets and roles&lt;/li&gt;
&lt;li&gt;Integration with Service Control Policies (SCPs)&lt;/li&gt;
&lt;li&gt;Identity providers and best practices&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔍 What Is AWS IAM Identity Center?
&lt;/h2&gt;

&lt;p&gt;IAM Identity Center is a &lt;strong&gt;centralized identity and access management service&lt;/strong&gt; for AWS Organizations. It allows users to sign in once and securely access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple AWS accounts&lt;/li&gt;
&lt;li&gt;AWS-managed applications&lt;/li&gt;
&lt;li&gt;Third-party SaaS applications&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⭐ Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Centralized access across AWS Organizations&lt;/li&gt;
&lt;li&gt;Built-in directory or external identity provider support&lt;/li&gt;
&lt;li&gt;Account-level permission assignments&lt;/li&gt;
&lt;li&gt;Support for SAML 2.0–based IdPs&lt;/li&gt;
&lt;li&gt;Short-lived credentials for improved security&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 Architecture Overview
&lt;/h2&gt;

&lt;p&gt;IAM Identity Center sits between your &lt;strong&gt;identity source&lt;/strong&gt; and &lt;strong&gt;AWS accounts&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users authenticate with an IdP&lt;/li&gt;
&lt;li&gt;Permission sets define allowed actions&lt;/li&gt;
&lt;li&gt;Temporary IAM roles are created automatically&lt;/li&gt;
&lt;li&gt;Access is granted without long-lived credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2nxfns764zmpc2alfk2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2nxfns764zmpc2alfk2.png" alt="IAM Identity Center Architecture" width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🏢 Using Service Control Policies (SCPs) with IAM Identity Center
&lt;/h2&gt;

&lt;p&gt;Service Control Policies define the &lt;strong&gt;maximum permissions&lt;/strong&gt; an AWS account can have. SCPs do not grant permissions — they &lt;strong&gt;limit&lt;/strong&gt; what IAM roles and permission sets can do.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 Example: Restrict AWS Regions
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DenyUnapprovedRegions"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deny"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"StringNotEquals"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"aws:RequestedRegion"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"us-west-2"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡 Even admins using IAM Identity Center cannot bypass SCP restrictions.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Initial Setup of IAM Identity Center
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step-by-Step
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;IAM Identity Center&lt;/strong&gt; in the AWS Console&lt;/li&gt;
&lt;li&gt;Enable it for your AWS Organization&lt;/li&gt;
&lt;li&gt;Choose an identity source:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;AWS-managed directory&lt;/li&gt;
&lt;li&gt;External identity provider

&lt;ol&gt;
&lt;li&gt;Create or sync users and groups&lt;/li&gt;
&lt;li&gt;Assign users or groups to AWS accounts using permission sets&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4u7eg1bko086jio2ln4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4u7eg1bko086jio2ln4.png" alt="Setup UI" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Supported Identity Providers
&lt;/h2&gt;

&lt;p&gt;IAM Identity Center supports many enterprise identity providers, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS IAM Identity Center directory&lt;/li&gt;
&lt;li&gt;Microsoft Entra ID (Azure AD)&lt;/li&gt;
&lt;li&gt;Okta&lt;/li&gt;
&lt;li&gt;OneLogin&lt;/li&gt;
&lt;li&gt;Google Workspace (SAML)&lt;/li&gt;
&lt;li&gt;Any SAML 2.0–compliant IdP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This enables seamless integration with existing corporate identity systems.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧾 Permission Sets Explained
&lt;/h2&gt;

&lt;p&gt;Permission sets are &lt;strong&gt;reusable access templates&lt;/strong&gt; that define what users can do in an AWS account. Internally, they create IAM roles automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Admin Permission Set (YAML)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AdminAccess&lt;/span&gt;
&lt;span class="na"&gt;ManagedPolicies&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;arn:aws:iam::aws:policy/AdministratorAccess&lt;/span&gt;
&lt;span class="na"&gt;SessionDuration&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PT1H&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📌 Permission sets can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS-managed policies&lt;/li&gt;
&lt;li&gt;Customer-managed policies&lt;/li&gt;
&lt;li&gt;Inline policies&lt;/li&gt;
&lt;li&gt;Session duration controls&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  👥 Managing Access with Groups
&lt;/h2&gt;

&lt;p&gt;Group-based access simplifies large-scale management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Assign permissions once to a group&lt;/li&gt;
&lt;li&gt;Automatically applies to all group members&lt;/li&gt;
&lt;li&gt;Reduces operational overhead&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Limitations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No nested groups&lt;/li&gt;
&lt;li&gt;Group sync depends on IdP capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common group examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DevOps-Team&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Security-Analysts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Finance-Admins&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔄 Service Roles and Automation
&lt;/h2&gt;

&lt;p&gt;AWS services such as &lt;strong&gt;Lambda&lt;/strong&gt;, &lt;strong&gt;CloudFormation&lt;/strong&gt;, and &lt;strong&gt;EC2&lt;/strong&gt; use service-linked roles to interact with AWS APIs securely.&lt;/p&gt;

&lt;p&gt;IAM Identity Center works alongside these roles by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limiting who can deploy or modify services&lt;/li&gt;
&lt;li&gt;Ensuring automation follows least-privilege rules&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🕐 Temporary and Cross-Account Access
&lt;/h2&gt;

&lt;p&gt;IAM Identity Center uses &lt;strong&gt;temporary credentials&lt;/strong&gt; via role assumption, eliminating static access keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross-Account Trust Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Principal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"AWS"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:iam::&amp;lt;AccountA&amp;gt;:role/SSOUserRole"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sts:AssumeRole"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This enables secure access between accounts without credential sharing.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Best Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use SCPs to enforce guardrails&lt;/li&gt;
&lt;li&gt;Assign permissions to groups, not users&lt;/li&gt;
&lt;li&gt;Keep session durations short&lt;/li&gt;
&lt;li&gt;Use least-privilege permission sets&lt;/li&gt;
&lt;li&gt;Integrate with an external IdP for lifecycle management&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Summary
&lt;/h2&gt;

&lt;p&gt;AWS IAM Identity Center provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Centralized identity and access management&lt;/li&gt;
&lt;li&gt;Secure, temporary credentials&lt;/li&gt;
&lt;li&gt;Scalable permissions across AWS Organizations&lt;/li&gt;
&lt;li&gt;Seamless SSO for AWS and third-party apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When combined with SCPs and strong governance, it forms the backbone of a secure enterprise AWS environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html" rel="noopener noreferrer"&gt;IAM Identity Center Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html" rel="noopener noreferrer"&gt;AWS Organizations and Service Control Policies (SCPs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsets.html" rel="noopener noreferrer"&gt;Permission Set Configuration Examples (AWS IAM Identity Center)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>aws</category>
      <category>cloud</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Securing Hundreds of AWS Accounts for Streamlined Governance 🚀🔒🌍</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Mon, 14 Apr 2025 17:51:11 +0000</pubDate>
      <link>https://forem.com/aws-builders/securing-hundreds-of-aws-accounts-for-streamlined-governance-25b8</link>
      <guid>https://forem.com/aws-builders/securing-hundreds-of-aws-accounts-for-streamlined-governance-25b8</guid>
      <description>&lt;p&gt;Managing and securing multiple AWS accounts can be a daunting task, especially as organizations scale their cloud footprint. Without a streamlined governance model, security risks can proliferate, leading to compliance gaps and operational inefficiencies. In this post, we’ll explore best practices for securing hundreds of AWS accounts while ensuring centralized governance and operational efficiency. 🏢🔐⚙️&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Challenge of Managing Multiple AWS Accounts&lt;/strong&gt; 🤯🔎🚨
&lt;/h2&gt;

&lt;p&gt;As organizations grow, so do their AWS environments. Companies often operate multiple AWS accounts for various reasons, such as application isolation, compliance requirements, and cost allocation. However, this expansion introduces security challenges, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistent security policies&lt;/strong&gt; across accounts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lack of centralized visibility&lt;/strong&gt; into security events&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complicated IAM and access management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Difficulty in enforcing compliance&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A well-structured approach to governance can help mitigate these challenges. 🏛️📏✅&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Implement AWS Organizations for Centralized Governance&lt;/strong&gt; 🏢📜🔐
&lt;/h2&gt;

&lt;p&gt;AWS Organizations provides a hierarchical structure to manage multiple accounts under a single entity. This enables organizations to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Apply Service Control Policies (SCPs)&lt;/strong&gt; to enforce security baselines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Organizational Units (OUs)&lt;/strong&gt; to categorize accounts by function (e.g., production, development, sandbox)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable consolidated billing&lt;/strong&gt; for cost management&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Best Practices:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use OUs to group accounts logically and apply specific SCPs.&lt;/li&gt;
&lt;li&gt;Restrict root user access across all accounts.&lt;/li&gt;
&lt;li&gt;Implement mandatory MFA for all IAM users and roles. 🛡️✅🔑&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;AWS CLI: Setting Up AWS Organizations&lt;/strong&gt; 🏗️🔧🖥️
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws organizations create-organization
aws organizations create-organizational-unit &lt;span class="nt"&gt;--parent-id&lt;/span&gt; r-235433899xxx &lt;span class="nt"&gt;--name&lt;/span&gt; Security
aws organizations attach-policy &lt;span class="nt"&gt;--target-id&lt;/span&gt; ou-4555xxxxxx &lt;span class="nt"&gt;--policy-id&lt;/span&gt; p-7889xxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;2. Enforce Security Policies with AWS Control Tower&lt;/strong&gt; 🏗️🔎🛡️
&lt;/h2&gt;

&lt;p&gt;AWS Control Tower simplifies multi-account governance by automating account provisioning and applying security guardrails. It integrates with AWS Organizations and provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pre-configured guardrails&lt;/strong&gt; for security and compliance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Baseline security configurations&lt;/strong&gt; for new accounts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centralized logging&lt;/strong&gt; via AWS CloudTrail and AWS Config&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Best Practices:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Leverage &lt;strong&gt;AWS Control Tower&lt;/strong&gt; for setting up new AWS accounts with predefined security controls.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;AWS Config&lt;/strong&gt; to monitor configuration drift across all accounts.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;AWS Security Hub&lt;/strong&gt; to get a unified view of security alerts. 🔄🔍📊&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;AWS CLI: Deploying AWS Control Tower&lt;/strong&gt; 🏢🛠️🖥️
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws controltower enable-control &lt;span class="nt"&gt;--control-identifier&lt;/span&gt; AWS-GUARDRAIL-EXAMPLE &lt;span class="nt"&gt;--target-identifier&lt;/span&gt; ou-4555xxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;3. Implement Centralized IAM and Access Management&lt;/strong&gt; 🔐👥📂
&lt;/h2&gt;

&lt;p&gt;Managing access across hundreds of accounts can become complex without a clear IAM strategy. Some key approaches include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS IAM Identity Center (formerly AWS SSO):&lt;/strong&gt; Enables centralized user access management across multiple accounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Least Privilege Principle:&lt;/strong&gt; Restrict access to only necessary permissions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Federated Authentication:&lt;/strong&gt; Use an identity provider (IdP) such as Okta, Azure AD, or AWS IAM Identity Center.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Best Practices:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enforce &lt;strong&gt;strong authentication policies&lt;/strong&gt; (e.g., MFA, password policies).&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;IAM roles instead of IAM users&lt;/strong&gt; to limit long-lived credentials.&lt;/li&gt;
&lt;li&gt;Regularly audit IAM policies with AWS Access Analyzer. 🕵️‍♂️✅🔎&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;AWS CLI: Configuring IAM Identity Center&lt;/strong&gt; 🏢🔑🛠️
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws sso-admin create-permission-set &lt;span class="nt"&gt;--instance-arn&lt;/span&gt; arn:aws:sso:::instance/ssoins-example1234 &lt;span class="nt"&gt;--name&lt;/span&gt; AdminAccess
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;4. Centralized Logging and Monitoring with AWS Security Services&lt;/strong&gt; 📜📊🚀
&lt;/h2&gt;

&lt;p&gt;Security teams need visibility into activities across all AWS accounts. AWS provides several tools to centralize security monitoring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS CloudTrail:&lt;/strong&gt; Logs all API activity for auditing and compliance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon GuardDuty:&lt;/strong&gt; Detects threats and anomalies across AWS workloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Security Hub:&lt;/strong&gt; Aggregates security findings from multiple AWS services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Best Practices:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enable &lt;strong&gt;CloudTrail across all accounts&lt;/strong&gt; and store logs centrally in S3.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;GuardDuty for continuous monitoring&lt;/strong&gt; of malicious activity.&lt;/li&gt;
&lt;li&gt;Set up &lt;strong&gt;AWS Security Hub&lt;/strong&gt; to correlate security findings. 🔍📈🛑&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;AWS CLI: Setting Up AWS Security Hub&lt;/strong&gt; 🔐🛠️📊
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws securityhub enable-security-hub
aws securityhub create-insight &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="s2"&gt;"Unusual API Calls"&lt;/span&gt; &lt;span class="nt"&gt;--filters&lt;/span&gt; &lt;span class="s1"&gt;'{"Action":"Count","Operator":"GREATER_THAN","Value":10}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;5. Automate Compliance and Remediation&lt;/strong&gt; 🤖⚙️✅
&lt;/h2&gt;

&lt;p&gt;Maintaining compliance across a large AWS environment requires automation. AWS provides several tools to enforce security policies and automate remediation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Config Rules:&lt;/strong&gt; Automatically check compliance against predefined rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Lambda &amp;amp; EventBridge:&lt;/strong&gt; Automate responses to security events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Systems Manager:&lt;/strong&gt; Automate patch management and operational tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Best Practices:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Define &lt;strong&gt;custom AWS Config rules&lt;/strong&gt; to enforce security policies.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;AWS Lambda to remediate misconfigurations&lt;/strong&gt; automatically.&lt;/li&gt;
&lt;li&gt;Implement &lt;strong&gt;patch automation&lt;/strong&gt; for EC2 instances and containerized workloads. 🔄⚡🔍&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;AWS CLI: Automating Compliance with AWS Config&lt;/strong&gt; 🛠️🔍🤖
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws configservice put-config-rule &lt;span class="nt"&gt;--config-rule-name&lt;/span&gt; &lt;span class="s2"&gt;"restricted-ssh"&lt;/span&gt; &lt;span class="nt"&gt;--source&lt;/span&gt; &lt;span class="nv"&gt;Identifier&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;AWS-EBS-ENCRYPTION-BY-DEFAULT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Next Steps&lt;/strong&gt; 🚀🔎
&lt;/h2&gt;

&lt;p&gt;Securing hundreds of AWS accounts requires a well-structured governance model that enforces consistency, enhances security visibility, and automates compliance. Here’s what you can do next:&lt;/p&gt;

&lt;p&gt;✅ Review your AWS account structure and governance model.&lt;br&gt;
✅ Implement security best practices using AWS Organizations, Control Tower, and IAM Identity Center.&lt;br&gt;
✅ Set up centralized logging and security monitoring.&lt;br&gt;
✅ Automate compliance and remediation with AWS Config and Lambda.&lt;br&gt;
✅ Continuously monitor and improve security posture.&lt;/p&gt;

&lt;h2&gt;
  
  
  REFRENECE
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=2J1xGKmnNQI" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=2J1xGKmnNQI&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tutorials_basic.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tutorials_basic.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/images/whitepapers/latest/aws-security-incident-response-guide/images/incident-response-account-structure.png" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/images/whitepapers/latest/aws-security-incident-response-guide/images/incident-response-account-structure.png&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Multi-Factor Authentication (MFA) on AWS: A Critical Security Measure</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Sat, 15 Mar 2025 22:53:39 +0000</pubDate>
      <link>https://forem.com/aws-builders/multi-factor-authentication-mfa-on-aws-a-critical-security-measure-4po6</link>
      <guid>https://forem.com/aws-builders/multi-factor-authentication-mfa-on-aws-a-critical-security-measure-4po6</guid>
      <description>&lt;p&gt;Security threats are evolving, and traditional authentication methods are no longer enough to protect sensitive data. Multi-Factor Authentication (MFA) provides an additional layer of security, ensuring that users are who they claim to be. In AWS, implementing MFA is a critical step toward strengthening identity and access management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why MFA Matters
&lt;/h3&gt;

&lt;p&gt;MFA is essential for preventing unauthorized access due to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Account Takeover (ATO):&lt;/strong&gt; Attackers use stolen credentials to access AWS accounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phishing Attacks:&lt;/strong&gt; Users unknowingly provide login details to malicious actors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brute-Force Attacks:&lt;/strong&gt; Without MFA, simple or reused passwords can be easily cracked&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A username and password alone are no longer sufficient to protect AWS accounts and applications. Organizations must adopt MFA as a fundamental security measure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementing MFA on AWS
&lt;/h3&gt;

&lt;p&gt;AWS provides different MFA methods, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Virtual MFA Devices:&lt;/strong&gt; (e.g., Microsoft Authenticator, Google Authenticator, Authy)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware MFA Devices:&lt;/strong&gt; (e.g., YubiKey)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SMS-based MFA:&lt;/strong&gt; One-time passcodes sent via text message (not recommended due to SIM-swapping risks)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Enable MFA on AWS?
&lt;/h3&gt;

&lt;p&gt;AWS allows MFA implementation across various services, including:&lt;/p&gt;

&lt;h4&gt;
  
  
  1.  AWS Management Console MFA
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the &lt;a href="https://aws.amazon.com/iam/" rel="noopener noreferrer"&gt;AWS IAM Console&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Select the IAM user and choose "Manage MFA."&lt;/li&gt;
&lt;li&gt;Register a virtual MFA app or hardware device.&lt;/li&gt;
&lt;li&gt;Complete the setup by scanning the QR code and entering the authentication codes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. AWS CLI MFA:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Configure MFA by adding an MFA serial number to the AWS CLI profile.&lt;/li&gt;
&lt;li&gt;Use the command &lt;em&gt;aws sts get-session-token --serial-number  --token-code &lt;/em&gt; to generate temporary credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;em&gt;aws sts get-session-token --serial-number arn:aws:iam::5587899900xx:mfa/worshop --token-code 806789&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. MFA for AWS Workloads and Applications:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Enforce MFA for API calls and AWS IAM roles.&lt;/li&gt;
&lt;li&gt;Use AWS Cognito for MFA implementation in user authentication workflows.&lt;/li&gt;
&lt;li&gt;Integrate AWS SSO with MFA for centralized identity management.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Can Businesses Do?
&lt;/h3&gt;

&lt;p&gt;Organizations should implement and enforce MFA policies to protect AWS environments. Some best practices include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enforce MFA for all IAM users and privileged accounts.&lt;/li&gt;
&lt;li&gt;Use IAM roles with MFA instead of long-lived access keys.&lt;/li&gt;
&lt;li&gt;Enable MFA for AWS SSO and third-party integrations.&lt;/li&gt;
&lt;li&gt;Monitor MFA usage with AWS CloudTrail and AWS Config.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Can Users Do?
&lt;/h3&gt;

&lt;p&gt;As an AWS root/IAM user, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enable MFA on all AWS accounts and services you interact with.&lt;/li&gt;
&lt;li&gt;Use a secure authenticator app instead of SMS for added protection.&lt;/li&gt;
&lt;li&gt;Regularly review IAM policies and access logs for suspicious activities.&lt;/li&gt;
&lt;li&gt;Educate team members on the importance of MFA and security best practices&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;MFA is a necessity, not an option. Organizations must prioritize implementing MFA across AWS services to enhance security. The time to act is now—secure your AWS environment with MFA today.&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;AWS Documentation: &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html" rel="noopener noreferrer"&gt;Multi-Factor Authentication&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;NIST Guidelines: &lt;a href="https://pages.nist.gov/800-63-3/" rel="noopener noreferrer"&gt;Digital Identity Guidelines&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Two-Factor Authentication: &lt;a href="https://twofactorauth.org" rel="noopener noreferrer"&gt;https://twofactorauth.org&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;DevSecOps: &lt;a href="https://www.devsecops.org/blog/tag/Better+Security" rel="noopener noreferrer"&gt;Multi-Factor Auth: A Call to Action&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>mfa</category>
      <category>awssecurity</category>
    </item>
    <item>
      <title>EC2 Web Application Firewall (WAF) Protection via AWS CLI</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Thu, 27 Feb 2025 09:25:34 +0000</pubDate>
      <link>https://forem.com/isec101/ec2-web-application-firewall-waf-protection-via-aws-cli-25pk</link>
      <guid>https://forem.com/isec101/ec2-web-application-firewall-waf-protection-via-aws-cli-25pk</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;TASKS&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create an IAM User (&lt;code&gt;workshop-sec&lt;/code&gt;)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grant Access to Manage AWS WAF and ALB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use &lt;code&gt;workshop-sec&lt;/code&gt; Credentials for Deployment&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy the Web App with WAF Protection&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Create an IAM User&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Creating an IAM user &lt;strong&gt;&lt;code&gt;workshop-sec&lt;/code&gt;&lt;/strong&gt; with permissions to manage &lt;strong&gt;EC2, ALB, and WAF&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Create the IAM User&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws iam create-user &lt;span class="nt"&gt;--user-name&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;Attach IAM Policy for WAF and ALB Management&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Creating a custom policy allowing ALB and WAF actions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws iam create-policy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--policy-name&lt;/span&gt; WAF-ALB-Management &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--policy-document&lt;/span&gt; &lt;span class="s1"&gt;'{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "ec2:*",
          "elasticloadbalancing:*",
          "wafv2:*",
          "iam:GetUser"
        ],
        "Resource": "*"
      }
    ]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Attaching the policy to &lt;code&gt;workshop-sec&lt;/code&gt; IAM user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws iam attach-user-policy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--user-name&lt;/span&gt; workshop-sec &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--policy-arn&lt;/span&gt; arn:aws:iam:::469031999xxx:policy/WAF-ALB-Management
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;2. Generating Access Credentials for &lt;code&gt;workshop-sec&lt;/code&gt;&lt;/strong&gt;:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws iam create-access-key &lt;span class="nt"&gt;--user-name&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Store the &lt;strong&gt;Access Key ID&lt;/strong&gt; and &lt;strong&gt;Secret Access Key&lt;/strong&gt; securely.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;3. Use &lt;code&gt;workshop-sec&lt;/code&gt; Credentials&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Updating the  AWS CLI profile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws configure &lt;span class="nt"&gt;--profile&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Access Key ID&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secret Access Key&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt; (e.g., &lt;code&gt;us-east-1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output format&lt;/strong&gt; (e.g., &lt;code&gt;json&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws sts get-caller-identity &lt;span class="nt"&gt;--profile&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;4. Deploying the  Web App on Ec2 (Amazon-linux) with WAF Protection&lt;/strong&gt; :
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Launching the  EC2 Instance with Apache&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws ec2 run-instances &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--image-id&lt;/span&gt; ami-05b10e08d247fb927 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--count&lt;/span&gt; 1 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--instance-type&lt;/span&gt; t2.micro &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--key-name&lt;/span&gt; Seckey-2025 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--security-groups&lt;/span&gt; WebServerSG &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--user-data&lt;/span&gt; &lt;span class="s2"&gt;"#!/bin/bash
  yum update -y
  yum install -y httpd
  systemctl start httpd
  systemctl enable httpd
  echo 'Hello, AWS WAF!' &amp;gt; /var/www/html/index.html"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tag-specifications&lt;/span&gt; &lt;span class="s1"&gt;'ResourceType=instance,Tags=[{Key=Name,Value=WebServer}]'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--profile&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;Creating ALB and Attach EC2&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws elbv2 create-load-balancer &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; WebAppALB &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--type&lt;/span&gt; application &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--subnets&lt;/span&gt; 0f4679cf88554ab67 03b90dbf86a29d7db &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--security-groups&lt;/span&gt; sg-0019ab95b18d2cf94 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--profile&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;Creating AWS WAF WebACL&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws wafv2 create-web-acl &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; WebAppFirewall &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--scope&lt;/span&gt; REGIONAL &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--default-action&lt;/span&gt; &lt;span class="nv"&gt;Allow&lt;/span&gt;&lt;span class="o"&gt;={}&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--visibility-config&lt;/span&gt; &lt;span class="nv"&gt;SampledRequestsEnabled&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;,CloudWatchMetricsEnabled&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;,MetricName&lt;span class="o"&gt;=&lt;/span&gt;WebAppMetrics &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--rules&lt;/span&gt; &lt;span class="s1"&gt;'[{"Name": "AWSManagedRulesCommonRuleSet","Priority": 0,"Statement": {"ManagedRuleGroupStatement": {"VendorName": "AWS","Name": "AWSManagedRulesCommonRuleSet"}},"Action": {"Allow": {}},"VisibilityConfig": {"SampledRequestsEnabled": true,"CloudWatchMetricsEnabled": true,"MetricName": "WebAppMetrics"}}]'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--region&lt;/span&gt; us-east-1 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--profile&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;Associate WAF with ALB&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws wafv2 associate-web-acl &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--web-acl-arn&lt;/span&gt; arn:aws:wafv2:us-east-1:469031999xxx:regional/webacl/WebAppFirewall/34345678-abcd-534-1d8d-5134567890ab  &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-arn&lt;/span&gt; arn:aws:elasticloadbalancing:us-east-1:469031999xxx:loadbalancer/app/WebAppALB/6dc6c495c0c9188 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--region&lt;/span&gt; us-east-1 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--profile&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Verification&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check API Identity&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   aws sts get-caller-identity &lt;span class="nt"&gt;--profile&lt;/span&gt; workshop-sec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check WAF Logs&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;AWS WAF Console&lt;/strong&gt; → WebACL → &lt;strong&gt;View Request Logs&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  CONCLUSION
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Created IAM user &lt;strong&gt;workshop-sec&lt;/strong&gt; can manage EC2, ALB, and WAF.&lt;/li&gt;
&lt;li&gt;Deployed AWS-managed WAF rules in place to secure the web application.&lt;/li&gt;
&lt;li&gt;Associated WAF WebACL with the ALB to enforce protection.&lt;/li&gt;
&lt;li&gt;Operations use the workshop-sec profile &lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Building Robust Security, Identity, &amp; Compliance Frameworks in AWS</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Mon, 13 Jan 2025 12:38:16 +0000</pubDate>
      <link>https://forem.com/aws-builders/building-robust-security-identity-compliance-frameworks-in-aws-4f7e</link>
      <guid>https://forem.com/aws-builders/building-robust-security-identity-compliance-frameworks-in-aws-4f7e</guid>
      <description>&lt;p&gt;Effective security, identity, and compliance strategies are essential for safeguarding cloud environments. This post offers valuable insights into best practices, along with a practical lab and accompanying lab code for AWS security automation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Concepts: Security, Identity, and Compliance
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Security:
&lt;/h3&gt;

&lt;p&gt;Implementing robust protection mechanisms ensures data and workloads are safe from malicious actors. Examples include network segmentation, encryption, and regular vulnerability scans.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identity:
&lt;/h3&gt;

&lt;p&gt;IAM (Identity and Access Management) ensures that the right individuals and services have appropriate access to resources. Tools like MFA, federated identities, and least privilege access are critical.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compliance:
&lt;/h3&gt;

&lt;p&gt;Compliance frameworks, such as ISO 27001 or PCI DSS, mandate specific security practices. Automated tools and audits can streamline adherence.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lab 1: Enforcing MFA for AWS IAM Users
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lab Objective:
&lt;/h3&gt;

&lt;p&gt;Set up a policy requiring all IAM users to enable Multi-Factor Authentication (MFA).&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An AWS account&lt;/li&gt;
&lt;li&gt;Basic IAM knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Create a Policy to Enforce MFA:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Use the following JSON policy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deny"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"BoolIfExists"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                    &lt;/span&gt;&lt;span class="nl"&gt;"aws:MultiFactorAuthPresent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"false"&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;IAM Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Policies&lt;/strong&gt; &amp;gt; &lt;strong&gt;Create Policy&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Paste the JSON and save the policy.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Attach the Policy to IAM Users:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Users&lt;/strong&gt; section in the IAM Console.&lt;/li&gt;
&lt;li&gt;Select the users to enforce MFA.&lt;/li&gt;
&lt;li&gt;Attach the newly created policy.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Test the Policy:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Log in as a user without MFA enabled.&lt;/li&gt;
&lt;li&gt;Attempt to access an AWS service.&lt;/li&gt;
&lt;li&gt;Verify that access is denied.&lt;/li&gt;
&lt;li&gt;Enable MFA and retry the service access.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Lab Code: Automating MFA Enforcement with AWS CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Step 1: Create the MFA Enforcement Policy&lt;/span&gt;
aws iam create-policy &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--policy-name&lt;/span&gt; MFAEnforcementPolicy &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--policy-document&lt;/span&gt; file://mfa-enforcement-policy.json

&lt;span class="c"&gt;# Step 2: Attach the Policy to a User&lt;/span&gt;
aws iam attach-user-policy &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--user-name&lt;/span&gt; ExampleUser &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--policy-arn&lt;/span&gt; arn:aws:iam::aws:policy/MFAEnforcementPolicy

&lt;span class="c"&gt;# Step 3: List Users Without MFA Enabled&lt;/span&gt;
aws iam list-users | jq &lt;span class="s1"&gt;'.Users[] | select(.PasswordLastUsed != null) | .UserName'&lt;/span&gt;

&lt;span class="c"&gt;# Step 4: Enable MFA for a User&lt;/span&gt;
aws iam enable-mfa-device &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--user-name&lt;/span&gt; ExampleUser &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--serial-number&lt;/span&gt; arn:aws:iam::5535678310xx:mfa/ExampleDevice &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--authentication-code1&lt;/span&gt; 34689 &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--authentication-code2&lt;/span&gt; 71098
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Lab 2: Automating Security Group Rules with AWS Lambda
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lab Objective:
&lt;/h3&gt;

&lt;p&gt;Create an AWS Lambda function that automatically adjusts security group rules based on incoming CloudWatch Events.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An AWS account&lt;/li&gt;
&lt;li&gt;Familiarity with Lambda and CloudWatch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Create a CloudWatch Event Rule:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;CloudWatch Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create a rule to capture specific API calls (e.g., &lt;code&gt;AuthorizeSecurityGroupIngress&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Set the target to invoke a Lambda function.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Create a Lambda Function:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Deploy the following Python function to manage security group rules dynamically:&lt;/p&gt;

&lt;h4&gt;
  
  
  Lab Code via AWS Lambd
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;lambda_handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;ec2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ec2&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;security_group_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;detail&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;requestParameters&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;groupId&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="c1"&gt;# Example: Revoke all inbound rules
&lt;/span&gt;    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ec2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;describe_security_groups&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GroupIds&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;security_group_id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;rule&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SecurityGroups&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;IpPermissions&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
        &lt;span class="n"&gt;ec2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;revoke_security_group_ingress&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;GroupId&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;security_group_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;IpPermissions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;rule&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Cleared inbound rules for &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;security_group_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Lambda Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create a new function and paste the code.&lt;/li&gt;
&lt;li&gt;Attach the necessary IAM role with &lt;code&gt;ec2:DescribeSecurityGroups&lt;/code&gt; and &lt;code&gt;ec2:RevokeSecurityGroupIngress&lt;/code&gt; permissions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Test the Function:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Trigger the CloudWatch Event.&lt;/li&gt;
&lt;li&gt;Verify that the Lambda function executed successfully and security group rules were updated.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Lab 3: Centralized Logging with Amazon CloudWatch and S3
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lab Objective:
&lt;/h3&gt;

&lt;p&gt;Set up centralized logging by sending AWS CloudWatch logs to an S3 bucket for long-term storage and compliance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An AWS account&lt;/li&gt;
&lt;li&gt;Basic knowledge of CloudWatch and S3&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Create an S3 Bucket:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;S3 Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create a new bucket (e.g., &lt;code&gt;lab-centralized-logs-bucket&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Configure appropriate permissions to allow CloudWatch to write to the bucket.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Set Up CloudWatch Log Group:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;CloudWatch Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create or select an existing log group.&lt;/li&gt;
&lt;li&gt;Set up a subscription filter to send logs to the S3 bucket.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Verify Log Storage:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Generate logs in the CloudWatch log group.&lt;/li&gt;
&lt;li&gt;Check the S3 bucket to confirm logs are being stored.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Lab Code: Automating Centralized Logging Setup with AWS CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Step 1: Create an S3 Bucket&lt;/span&gt;
aws s3api create-bucket &lt;span class="nt"&gt;--bucket&lt;/span&gt; lab-centralized-logs-bucket &lt;span class="nt"&gt;--region&lt;/span&gt; us-east-1

&lt;span class="c"&gt;# Step 2: Put a Bucket Policy&lt;/span&gt;
aws s3api put-bucket-policy &lt;span class="nt"&gt;--bucket&lt;/span&gt; lab-centralized-logs-bucket &lt;span class="nt"&gt;--policy&lt;/span&gt; file://bucket-policy.json

&lt;span class="c"&gt;# Step 3: Set Up CloudWatch Log Group&lt;/span&gt;
aws logs create-log-group &lt;span class="nt"&gt;--log-group-name&lt;/span&gt; MyLogGroup

&lt;span class="c"&gt;# Step 4: Create a Destination for Logs&lt;/span&gt;
aws logs put-destination &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--destination-name&lt;/span&gt; S3Logs &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--target-arn&lt;/span&gt; arn:aws:s3:::lab-centralized-logs-bucket
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Lab 4: Using AWS Config for Compliance Auditing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lab Objective:
&lt;/h3&gt;

&lt;p&gt;Implement AWS Config to monitor compliance and generate reports for resources violating best practices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An AWS account&lt;/li&gt;
&lt;li&gt;Basic knowledge of AWS Config&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Enable AWS Config:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Config Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create a configuration recorder and delivery channel.&lt;/li&gt;
&lt;li&gt;Choose rules based on compliance requirements (e.g., &lt;code&gt;restricted-common-ports&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;View Compliance Reports:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the compliance dashboard in the Config Console.&lt;/li&gt;
&lt;li&gt;Analyze non-compliant resources and take action as needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Automate Remediation (Optional):&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Set up an AWS Lambda function for automatic remediation.&lt;/li&gt;
&lt;li&gt;Use Config rules to trigger the Lambda function when violations are detected.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Lab Code: Enabling AWS Config with CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Step 1: Create a Configuration Recorder&lt;/span&gt;
aws configservice put-configuration-recorder &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--configuration-recorder-name&lt;/span&gt; default &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--role-arn&lt;/span&gt; arn:aws:iam::5535678310xx:role/AWSConfigRole

&lt;span class="c"&gt;# Step 2: Start Recording&lt;/span&gt;
aws configservice start-configuration-recorder &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--configuration-recorder-name&lt;/span&gt; default

&lt;span class="c"&gt;# Step 3: Add a Config Rule&lt;/span&gt;
aws configservice put-config-rule &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--config-rule-name&lt;/span&gt; restricted-common-ports &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--source&lt;/span&gt; &lt;span class="s2"&gt;"Owner=AWS,SourceIdentifier=RESTRICTED_COMMON_PORTS"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Lab 5: Implementing Data Loss Prevention with Amazon Macie
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lab Objective:
&lt;/h3&gt;

&lt;p&gt;Leverage Amazon Macie to identify and protect sensitive data stored in S3 buckets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An AWS account&lt;/li&gt;
&lt;li&gt;Familiarity with S3 and IAM&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Enable Amazon Macie:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Macie Console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enable Macie for your account.&lt;/li&gt;
&lt;li&gt;Assign the appropriate IAM roles to allow Macie access to S3 buckets.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Run a Data Discovery Job:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Create a job in the Macie Console.&lt;/li&gt;
&lt;li&gt;Select the target S3 buckets.&lt;/li&gt;
&lt;li&gt;Configure the job to identify sensitive data, such as PII or financial information.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Review Findings:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the findings section in the Macie Console.&lt;/li&gt;
&lt;li&gt;Review and address flagged sensitive data.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Lab Code: Setting Up Macie Data Discovery Jobs with CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Step 1: Enable Macie&lt;/span&gt;
aws macie2 enable-macie

&lt;span class="c"&gt;# Step 2: Create a Classification Job&lt;/span&gt;
aws macie2 create-classification-job &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--job-type&lt;/span&gt; ONE_TIME &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--name&lt;/span&gt; SensitiveDataDiscovery &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--s3-job-definition&lt;/span&gt; &lt;span class="s1"&gt;'{"bucketDefinitions":[{"accountId":"5535678310xx","buckets":["my-sensitive-data-bucket"]}]}'&lt;/span&gt;

&lt;span class="c"&gt;# Step 3: List Findings&lt;/span&gt;
aws macie2 list-findings

&lt;span class="c"&gt;# Step 4: Get Finding Details&lt;/span&gt;
aws macie2 get-finding &lt;span class="se"&gt;\ &lt;/span&gt; 
    &lt;span class="nt"&gt;--finding-id&lt;/span&gt; 3457900x-34rt-433d-566h-45678770vbxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;AWS provides a comprehensive suite of tools and services designed to automate and streamline security, identity management, and compliance processes. By automating critical security and compliance workflows, businesses can reduce human error, improve operational efficiency, and achieve consistent policy enforcement across their AWS environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Refrence&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/security/" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/security/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/iam/" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/iam/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>automation</category>
      <category>awssecurity</category>
      <category>securecloud</category>
    </item>
    <item>
      <title>AWS GuardDuty for ATP (Advanced Threat Detection)</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Fri, 22 Mar 2024 17:12:07 +0000</pubDate>
      <link>https://forem.com/aws-builders/aws-guardduty-for-atp-advanced-threat-detection-24lg</link>
      <guid>https://forem.com/aws-builders/aws-guardduty-for-atp-advanced-threat-detection-24lg</guid>
      <description>&lt;p&gt;In today's cybersecurity landscape, proactive threat detection is paramount. AWS GuardDuty, a managed threat detection service, offers an effective solution for identifying and prioritizing potential security threats in your AWS environment. Let's explore how to leverage GuardDuty with practical examples and CloudFormation code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05dc2dxyt69d56fk9idh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05dc2dxyt69d56fk9idh.png" alt="AWS GuardDuty Architecture" width="719" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Enable GuardDuty:&lt;/strong&gt; Start by enabling GuardDuty in your AWS account. You can do this through the AWS Management Console or by using CloudFormation. Here's a CloudFormation snippet to enable GuardDuty:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyGuardDutyDetector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::GuardDuty::Detector&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Configure GuardDuty:&lt;/strong&gt; Customize GuardDuty settings to suit your security requirements. This includes specifying which AWS regions to monitor, setting up threat intelligence feeds, and defining alert thresholds.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyGuardDutySettings&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::GuardDuty::Detector&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;FindingPublishingFrequency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;FIFTEEN_MINUTES&lt;/span&gt;
      &lt;span class="na"&gt;EnableThreatIntelSets&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="s"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Analyze Findings:&lt;/strong&gt; GuardDuty continuously analyzes logs from various AWS data sources, such as CloudTrail, VPC Flow Logs, and DNS logs. It then generates findings based on identified threats, anomalies, or suspicious activities.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyGuardDutyCloudTrail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::GuardDuty::Filter&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;DetectorId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;!Ref&lt;/span&gt; &lt;span class="s"&gt;MyGuardDutyDetector&lt;/span&gt;
      &lt;span class="na"&gt;Action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ARCHIVE&lt;/span&gt;
      &lt;span class="na"&gt;FindingCriteria&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;Criterion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Field&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;type&lt;/span&gt;
            &lt;span class="na"&gt;Eq&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;UnauthorizedAccess:EC2/MaliciousIPCaller.Custom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Respond to Threats:&lt;/strong&gt; Once GuardDuty identifies a potential threat, it generates findings that you can investigate further. You can integrate GuardDuty with AWS Lambda to automate response actions, such as isolating compromised instances or updating security group rules.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyGuardDutyLambdaFunction&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::Lambda::Function&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="s"&gt;...&lt;/span&gt;
  &lt;span class="na"&gt;MyGuardDutyInvocator&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::Lambda::Permission&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="s"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Monitor and Fine-Tune:&lt;/strong&gt; Regularly review GuardDuty findings and adjust settings as needed. Monitor GuardDuty metrics and alarms in Amazon CloudWatch to ensure effective threat detection and response.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9veavnjo2gv2yb49g4r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9veavnjo2gv2yb49g4r.png" alt="GuardDuty" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Benefits:&lt;/strong&gt; By incorporating AWS GuardDuty into your AWS security strategy, you can strengthen your defenses against evolving cyber threats. With its comprehensive threat detection capabilities and seamless integration with AWS services, GuardDuty empowers you to safeguard your cloud infrastructure with confidence.&lt;/p&gt;

</description>
      <category>threatdetection</category>
      <category>guardduty</category>
      <category>awssecurity</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>AWS RE: INFORCE 2024 ABW GRANT</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Thu, 21 Mar 2024 12:18:42 +0000</pubDate>
      <link>https://forem.com/aws-builders/aws-re-inforce-2024-abw-grant-385g</link>
      <guid>https://forem.com/aws-builders/aws-re-inforce-2024-abw-grant-385g</guid>
      <description>&lt;p&gt;🚀 Exciting news...I am so thrilled to finally share that we are expanding the ABW Grant program to AWS re:Inforce 2024!&lt;/p&gt;

&lt;p&gt;🔒 AWS re:Inforce is our annual cloud security learning conference focused exclusively on AWS security solutions, cloud security, compliance, and identity.&lt;/p&gt;

&lt;p&gt;This year, the conference will take place in 🔔 Philadelphia, PA from June 10 - 12, 2024&lt;br&gt;
✍️ Applications for the re:Inforce ABW Grant are open now and will close on Monday, April 1, 2024 at 5:00 PM EST&lt;br&gt;
&lt;a href="https://pulse.aws/application/GE5H206A?p=0" rel="noopener noreferrer"&gt;Apply here&lt;/a&gt;&lt;br&gt;
🎯 &lt;strong&gt;Eligibility requirements include&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First five years in cloud security&lt;/li&gt;
&lt;li&gt;21 years or older&lt;/li&gt;
&lt;li&gt;Not an employee, intern, contractor, etc. of Amazon, AWS, or affiliates&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Identify as being part of a group that is underrepresented in tech or have faced barriers or disadvantages in your technology career due to discrimination actions against underrepresented groups&lt;/li&gt;
&lt;li&gt;Most notable for this group 📣 All re:Invent Grant Alumni ARE eligible to apply if you meet the other requirements above. We are allowing folks to receive the grant more than once if its for a different event, so apply asap if you are in the cloud securi
ty field!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;:speaking_head_in_silhouette: Please share with your networks and help us get the word out!&lt;br&gt;
AWS Social Posts to share:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/amazon-web-services_aws-awsreinforce-activity-7171641538660282370-PJ9B?utm_source=share&amp;amp;utm_medium=member_desktop" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/awscloud/status/1765874609411264764?s=20" rel="noopener noreferrer"&gt;Twitter/X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/p/C4OtmDzvcg9/?igsh=MXE4OGJmNm44N3ZsaA==" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.facebook.com/share/p/b1xMw3ECmt8nsJqp/?mibextid=WC7FNe" rel="noopener noreferrer"&gt;Facebook&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please also share out with any relevant professional networks, internal affinity groups at your company, or anywhere else that will reach folks breaking into the cloud security field!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>reinforce2024</category>
      <category>abwgrant</category>
    </item>
    <item>
      <title>AWS RE: INVENT 2023 ABW GRANT</title>
      <dc:creator>Isaac Oppong-Amoah</dc:creator>
      <pubDate>Fri, 25 Aug 2023 22:04:48 +0000</pubDate>
      <link>https://forem.com/aws-builders/aws-re-invent-2023-abw-grant-1fmf</link>
      <guid>https://forem.com/aws-builders/aws-re-invent-2023-abw-grant-1fmf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwi4f02s0yl5s9h2zatq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwi4f02s0yl5s9h2zatq.png" alt="ABW receivers 2022" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What's up, everyone!!!!&lt;br&gt;
Do you enjoy attending technology conferences?&lt;br&gt;
Are you a budding IT professional?&lt;br&gt;
Are you a technologist with fewer than 5 years of experience?!?!&lt;br&gt;
Then look no further since the AWS All Builders Welcome Grant is now LIVE!&lt;br&gt;
What exactly is the ABW Grant?&lt;br&gt;
Individuals can attend the AWS Re: Invent conference for free thanks to this award. &lt;/p&gt;

&lt;p&gt;Program Benefits. Participants of the Program will receive the following benefits:&lt;/p&gt;

&lt;p&gt;-A full conference pass to re: Invent 2023&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Roundtrip flight Las Vegas, NV&lt;/li&gt;
&lt;li&gt;5 nights Hotel accommodations in Las Vegas, NV
-And other exciting prices at the event&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You must be 21+ or older to apply for this grant.&lt;br&gt;
This grant is open to EVERYONE on the earth who meets the aforementioned conditions. &lt;br&gt;
You CAN apply regardless of where you live. All builders are welcome.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pulse.aws/survey/L3FOOKM4?trk=ff59cd9d-0ad9-4bae-9d42-3a8df7e2f945" rel="noopener noreferrer"&gt;Apply for ABW grant now&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember applications for the ABW Grant are now open and will close on September 1, 2023, at 11:59 PM (PDT).&lt;/p&gt;

&lt;p&gt;If you have any queries about the application, please leave them in the comments section below. &lt;/p&gt;

</description>
      <category>awsreinvent</category>
      <category>aws</category>
      <category>grant</category>
      <category>2023</category>
    </item>
  </channel>
</rss>
