Cloud Detection & Logging Architecture

Identity Security · IAM · Zero Trust · Okta · Cloud Access

Building a More Scalable Identity and Access Model

Identity is one of the most important security boundaries in a modern environment.

As organizations grow, access often becomes harder to manage. Users accumulate permissions over time, applications are integrated differently, privileged roles remain assigned longer than necessary, and access decisions become increasingly difficult to review.

I worked on improving identity and access management by moving toward a more centralized, group-driven, and least-privilege model across cloud and SaaS environments.

The goal was to make access:

Consistent

Auditable

Scalable

Least-privileged

Easier to manage over time

The Problem

Identity environments often become fragmented because access is added incrementally.

A user needs access to an application.

An administrator grants it directly.

A developer needs elevated cloud permissions.

A role is assigned manually.

A team expands.

Another set of exceptions is created.

Over time, this creates several common problems:

  • Direct user assignments

  • Inconsistent role definitions

  • Persistent privileged access

  • Difficult offboarding

  • Hard-to-audit permissions

  • Application-specific access models

  • Manual provisioning

  • Role drift

  • Excessive access after job changes

The challenge is not simply authenticating users.

It is understanding:

Who should have access to what, why, and for how long?

My Approach

I focused on making identity more centralized and policy-driven.

The broader model was based around:

Centralized Authentication

↓

Group-Based Authorization

↓

Role-Based Access

↓

Least Privilege

↓

Continuous Review

This helped move access decisions away from one-off user assignments toward reusable access patterns.

Okta as the Identity Layer

Okta was used as a central identity provider for multiple applications and services.

This included work around:

  • Single Sign-On

  • SAML integrations

  • OIDC/OAuth integrations

  • SCIM provisioning

  • Group-based application assignment

  • MFA

  • Lifecycle management

  • Access reviews

Centralizing authentication reduced the need for separate credentials across multiple applications.

It also improved visibility into who had access and how authentication was being enforced.

SAML, OIDC, and SCIM

Different applications support different identity standards.

Understanding those differences is important when designing access.

SAML

SAML was commonly used for enterprise SSO.

It allowed authentication to be delegated to the identity provider rather than maintaining separate application passwords.

OIDC / OAuth

OIDC and OAuth provided a more modern authentication and authorization model for applications and APIs.

These integrations often required careful review of:

  • Redirect URIs

  • Scopes

  • Client permissions

  • Token lifetime

  • Application trust

SCIM

SCIM helped automate user lifecycle management.

Rather than manually creating and removing accounts inside every SaaS platform, provisioning could be tied more closely to the central identity system.

This reduces orphaned accounts and improves offboarding.

Group-Based Access

One of the most important improvements was moving away from direct individual assignments.

Instead, access could be tied to groups.

For example:

User

↓

Identity Group

↓

Application Role

↓

Authorized Resource

This makes permissions easier to understand and manage.

Instead of asking:

Why does this person have access?

you can ask:

What group gives them access, and why are they in that group?

That is a much more scalable question.

Structured Group Naming

A structured naming model can make identity significantly easier to operate.

For example, group names can encode:

  • Scope

  • Environment

  • Application

  • Role

A structured pattern makes permissions easier to recognize during:

  • Access reviews

  • Troubleshooting

  • Audits

  • Provisioning

  • Offboarding

The exact naming convention matters less than consistency.

AWS Identity Center

Cloud access was also an important part of the identity model.

AWS Identity Center can provide centralized access to AWS accounts and roles.

Instead of relying on long-lived IAM users or individually managed credentials, users can access AWS through centrally managed identities and role assignments.

This supports:

  • SSO

  • Centralized access management

  • Role-based permissions

  • Short-lived credentials

  • Easier offboarding

  • Reduced credential sprawl

Least Privilege

Least privilege sounds simple:

Give users only the access they need.

In practice, it is much harder.

Access needs change.

Teams move.

Projects end.

Temporary privileges become permanent.

The goal should therefore be:

Minimum necessary access, reviewed continuously.

Least privilege was considered across:

  • AWS

  • SaaS applications

  • Administrative roles

  • Development tooling

  • Security platforms

  • Endpoint administration

Persistent Privilege

One of the highest-risk identity patterns is persistent administrative access.

If someone only needs elevated access occasionally, permanent admin rights increase risk without providing proportional value.

Better patterns include:

  • Temporary elevation

  • Separate privileged roles

  • Just-in-time access

  • Approval workflows

  • Break-glass accounts

  • Strong MFA

  • Session logging

Even when a full PAM platform is not available, the principle remains useful:

Elevated access should be exceptional, not normal.

Zero Trust

The identity design also aligned with Zero Trust principles.

Zero Trust does not mean “trust nobody.”

It means access should not be granted solely because someone is:

  • On the corporate network

  • Using a company laptop

  • Inside the cloud environment

  • Already authenticated

Instead, access decisions should consider:

  • Identity

  • Authentication strength

  • Device posture

  • Role

  • Resource sensitivity

  • Context

  • Ongoing authorization

Defense in Depth

Identity controls are stronger when combined with other protections.

For example:

SSO

MFA

Managed endpoint

Least privilege

Logging

Access review

is stronger than any single control by itself.

This is why identity security should not be treated as a standalone system.

It intersects with endpoint security, cloud security, logging, and incident response.

Joiner, Mover, Leaver Lifecycle

Identity security is heavily influenced by employee lifecycle events.

Joiners

New employees should receive standardized access based on role rather than ad hoc assignments.

Movers

Role changes are particularly dangerous because users may retain old access while gaining new permissions.

Leavers

Offboarding should remove access quickly and consistently.

SCIM and centralized identity help reduce manual steps during these events.

Human and Non-Human Identities

Identity is no longer only about employees.

Modern environments also contain:

  • Service accounts

  • API keys

  • CI/CD identities

  • Cloud roles

  • Kubernetes service accounts

  • Machine identities

  • AI agents

These identities can be just as privileged as human users.

In some cases, they are more privileged.

That means identity programs increasingly need to consider:

Humans

and

Machines

using the same principles:

  • Least privilege

  • Clear ownership

  • Short-lived credentials

  • Rotation

  • Logging

  • Review

Practical Tips & Tricks

1. Prefer groups over direct assignments

Direct assignments are harder to review and easier to forget.

Use:

User → Group → Role

whenever practical.

2. Make group names understandable

A group called:

admins-2

does not tell you much.

A structured name can indicate:

  • Application

  • Environment

  • Role

  • Scope

That makes reviews much easier.

3. Avoid long-lived cloud credentials

Where possible, use:

  • SSO

  • Role assumption

  • Temporary sessions

  • Workload identity

Long-lived access keys increase both operational burden and security risk.

4. Separate privileged access

Administrative access should be clearly distinguishable from normal user access.

This improves:

  • Logging

  • Review

  • Incident investigation

  • Risk awareness

5. Review movers carefully

Employees who change teams often accumulate permissions.

A role change should trigger:

Add new access

and

Remove old access

not just the first half.

6. SCIM reduces offboarding risk

Automated deprovisioning is one of the most valuable benefits of SCIM.

It reduces reliance on someone remembering to manually disable every SaaS account.

7. Authentication is not authorization

A user successfully logging in does not mean they should have access to every resource.

Keep these concepts separate:

Authentication: Who are you?

Authorization: What are you allowed to do?

8. Track service accounts like employees

Every non-human identity should have:

  • An owner

  • A purpose

  • Defined permissions

  • Credential lifecycle

  • Logging

If nobody owns a service account, it is already a risk.

9. Reduce shared accounts

Shared credentials make attribution difficult.

Whenever possible, actions should map back to a specific identity.

10. Design access with offboarding in mind

A good identity model should answer:

If this person left today, could we confidently remove their access?

If the answer is unclear, the model probably needs improvement.

Access Review Strategy

Periodic access reviews should focus on questions such as:

  • Does this user still need the role?

  • Is the role broader than necessary?

  • Are privileged users still active?

  • Are dormant accounts present?

  • Are service accounts still needed?

  • Are direct assignments bypassing the intended model?

Access reviews are more useful when the underlying identity structure is already clean.

Logging and Investigation

Identity telemetry is also critical during incident response.

Useful sources can include:

  • Okta logs

  • AWS CloudTrail

  • AWS Identity Center events

  • SaaS audit logs

  • Endpoint telemetry

  • Authentication logs

This helps answer questions such as:

  • Who authenticated?

  • From where?

  • What role was assumed?

  • What resource was accessed?

  • Was MFA used?

  • Was access expected?

Outcome

The work helped create a more structured identity model based on centralized authentication, group-based authorization, and least-privilege access.

It improved:

  • SSO consistency

  • Access visibility

  • Role organization

  • Provisioning

  • Offboarding

  • Cloud access management

  • Least-privilege enforcement

  • Identity auditability

More importantly, it moved identity away from ad hoc access assignment and toward a more scalable security architecture.

Technologies

Okta · SAML 2.0 · OIDC · OAuth 2.0 · SCIM · AWS IAM · AWS Identity Center · RBAC · MFA · SaaS Security · Cloud Identity

What This Demonstrates

This project demonstrates experience in:

  • Identity and access management

  • Zero Trust

  • Least privilege

  • Okta

  • SSO

  • SAML

  • OIDC/OAuth

  • SCIM

  • AWS IAM

  • Cloud identity

  • RBAC

  • SaaS security

  • Access governance

Key Takeaway

Identity scales best when access is attached to roles and groups—not individual people—and when privilege is treated as temporary rather than permanent.

Short Case Study Card

Identity & Least-Privilege Modernization

Improved identity architecture across cloud and SaaS environments using Okta SSO, SAML/OIDC, SCIM, AWS Identity Center, group-based authorization, and least-privilege access patterns.

IAM · Okta · Zero Trust · AWS Identity Center · SSO

Next is #5: Cloud Detection & Logging Architecture. That one can get especially technical around GuardDuty publishing, centralized S3/KMS, Macie, WAF logging, CloudTrail, Security Hub, log validation, retention, and some very useful “logging mistakes to avoid” tips.

next

Cloud Detection & Logging Architecture

Detection Engineering · AWS · Logging · Security Operations

Building Reliable Security Telemetry Across a Multi-Account AWS Environment

Security monitoring depends on visibility.

A detection platform can only identify suspicious activity if the underlying telemetry is consistently generated, delivered, retained, and available during an investigation.

In a distributed AWS environment, that becomes more difficult because security data may originate from many different services, accounts, and regions.

I worked on improving the architecture and consistency of security telemetry across a multi-account AWS environment, including both commercial AWS and AWS GovCloud.

The focus was not just on enabling security services, but on ensuring that the resulting logs and findings were actually usable.

The Problem

As cloud environments expand, security logging often becomes fragmented.

Some accounts may have strong visibility while others have gaps.

Common issues include:

  • GuardDuty enabled without centralized publishing

  • WAF logging disabled

  • Macie results stored inconsistently

  • CloudTrail visibility differing between accounts

  • Encryption misconfigurations

  • Logs sent to the wrong destination

  • Regional differences

  • Missing retention standards

  • Security findings generated but not integrated into the broader monitoring workflow

This creates a dangerous problem:

A security control can appear configured while still failing to provide useful evidence during an incident.

The goal was to reduce that gap.

My Approach

I approached the problem as a telemetry pipeline:

Generate

↓

Encrypt

↓

Centralize

↓

Retain

↓

Validate

↓

Investigate

Each part matters.

Generating a log is not useful if it is lost.

Centralizing a log is not useful if it cannot be decrypted.

Retaining a log is not useful if nobody knows where to find it.

And enabling a security service is not enough if it is not actually publishing.

Amazon GuardDuty

GuardDuty was a major part of the cloud threat-detection strategy.

The work included reviewing GuardDuty across accounts and regions and ensuring findings could be exported to centralized destinations.

The validation process went beyond checking whether a detector existed.

Checks included:

  • GuardDuty detector present

  • Detector enabled

  • Publishing destination configured

  • Publishing destination active

  • Expected S3 destination configured

  • Expected KMS key configured

  • Publishing status healthy

This helped confirm that GuardDuty was not only running, but also contributing usable telemetry to the security environment.

Centralized GuardDuty Publishing

Centralized publishing was useful for creating a more consistent investigation model.

Instead of treating each AWS account as a separate security island, findings could be routed toward controlled central storage.

That provided benefits such as:

  • Easier investigation

  • Consistent retention

  • Reduced account-by-account searching

  • Better forensic availability

  • Centralized security ownership

The configuration required coordination between:

GuardDuty

Amazon S3

AWS KMS

IAM

If any one of those pieces was incorrect, publishing could fail.

Amazon Macie

Macie was used to improve visibility into sensitive data.

The work included reviewing discovery-result configuration and ensuring long-term results could be stored in an appropriate centralized repository.

This required attention to:

  • S3 bucket configuration

  • KMS encryption

  • Macie service permissions

  • Regional setup

  • Publishing configuration

  • Security Hub integration

Macie was especially useful because traditional infrastructure monitoring may tell you that a storage resource is exposed but not necessarily what kind of data exists inside it.

Sensitive-data context can materially change prioritization.

AWS Security Hub

Security Hub helped bring together security findings and configuration signals from multiple AWS services.

It provided another layer of visibility into:

  • Misconfigurations

  • Security standards

  • Vulnerabilities

  • GuardDuty findings

  • Inspector findings

  • Macie findings

  • Account posture

The important distinction was that Security Hub was treated as one source of evidence rather than the only source.

During investigations, findings were correlated with underlying AWS telemetry and security platforms where appropriate.

AWS CloudTrail

CloudTrail was one of the most important investigative data sources.

It provided visibility into API-level activity across AWS.

During security investigations, CloudTrail can help answer questions such as:

  • Who performed an action?

  • Which credentials were used?

  • Which API was called?

  • When did the action occur?

  • Which resource was affected?

  • Which IP address initiated the request?

  • Was a role assumed?

  • Were permissions changed?

CloudTrail is particularly valuable when investigating identity-based activity.

AWS WAF Logging

Web application firewalls are much more useful when the events they observe are retained.

I worked on reviewing active AWS WAF Web ACLs and identifying whether logging was enabled and pointed toward the intended destinations.

Important checks included:

  • Identify active Web ACLs

  • Determine whether logging exists

  • Validate destination configuration

  • Confirm expected log delivery

  • Identify Web ACLs missing logging

  • Document remediation

This helped improve visibility into traffic reaching internet-facing services.

WAF Configuration Lessons

WAF rules can introduce unexpected behavior.

For example, managed rule groups may block traffic that should be allowed for known trusted sources.

In those cases, rule ordering matters.

A trusted IP allow rule may need to execute before broader managed protections depending on the intended policy.

The lesson is not to weaken WAF protections.

The lesson is:

Understand how rule priority affects the final authorization decision.

Security controls need to reflect both risk and business requirements.

AWS Config

AWS Config was another valuable source of cloud-security telemetry.

While CloudTrail answers:

What action occurred?

AWS Config can help answer:

What did the resource configuration look like?

This distinction becomes valuable when investigating configuration drift or understanding how a resource changed over time.

Config also supports other security controls that depend on resource inventory and configuration data.

Centralized S3 Storage

Security logs frequently converge on Amazon S3.

That makes the security of the logging bucket itself important.

A centralized logging repository should consider:

  • Encryption

  • Bucket policies

  • Access restrictions

  • Secure transport

  • Retention

  • Versioning

  • Cross-account permissions

  • Deletion protection

  • Lifecycle management

Security logs should not be easy for the same compromised identity to delete.

KMS Encryption

KMS was used to protect sensitive security telemetry.

However, encryption can introduce operational issues if key permissions are incorrect.

The producing AWS service must have sufficient permission to use the key.

The security team must also retain the ability to access the data later.

That means KMS design needs to account for both:

Data protection

and

Operational accessibility

A perfectly encrypted log that nobody can decrypt during an incident is not very useful.

Log Retention

One challenge in security operations is balancing retention with cost.

Keeping every log in expensive hot storage indefinitely is rarely practical.

A more scalable model can separate:

Hot retention

from

Long-term archival

For example, recent logs may remain readily searchable while older logs move to lower-cost archival storage.

This supports both operational investigations and longer-term compliance requirements.

Validation

As with the broader AWS security standardization work, validation was a major focus.

A configuration was not considered successful simply because an API request returned successfully.

Validation could include confirming:

  • Destination exists

  • Destination is active

  • Correct S3 bucket

  • Correct KMS key

  • Security service publishing status

  • Required account coverage

  • Required region coverage

  • Logs actually arriving

This created greater confidence in the security telemetry pipeline.

Commercial AWS and GovCloud

Logging architecture needed to account for both commercial AWS and AWS GovCloud.

The security objectives remained similar, but implementation details differed.

Considerations included:

  • Different partitions

  • Different region names

  • Separate organizations

  • Separate centralized resources

  • Service availability

  • Independent security boundaries

Automation and validation therefore needed to be aware of which environment they were operating within.

Detection-in-Depth

No single source provides complete visibility.

A stronger detection architecture combines multiple telemetry layers.

For example:

Identity activity
CloudTrail

Threat detection
GuardDuty

Configuration changes
AWS Config

Sensitive data
Macie

Internet traffic
AWS WAF logs

Vulnerability context
Security Hub / Inspector / Wiz

Endpoint or workload activity
EDR / container security

Together, these signals provide much richer investigative context than any single platform.

Practical Tips & Tricks

1. Never treat “enabled” as the final check

Always validate whether the service is doing what you expect.

For GuardDuty, that means checking publishing.

For WAF, it means checking log delivery.

For Macie, it means checking result storage.

2. Know where your logs actually live

During an incident is the wrong time to discover that nobody knows the destination bucket.

Document:

  • Account

  • Region

  • Bucket

  • Encryption

  • Retention

  • Ownership

3. Centralize without creating a single point of failure

Centralized logging is useful, but the destination account needs strong protections.

Consider limiting who can:

  • Delete logs

  • Modify bucket policies

  • Change KMS keys

  • Alter retention policies

4. Test KMS permissions early

Many logging failures are actually encryption-policy failures.

When implementing a new destination, validate that the AWS service can use the intended KMS key.

5. Separate telemetry generation from telemetry retention

The service producing the log and the system storing the log are separate concerns.

Design both intentionally.

6. Verify real delivery

If practical, confirm that recent objects are appearing in the destination.

A configured destination does not guarantee successful delivery.

7. Standardize retention

Different teams choosing arbitrary retention periods creates investigation gaps.

Define an organizational retention strategy.

8. Protect your logs from the identities they monitor

If an administrator can compromise a workload and also delete the evidence with the same credentials, detection becomes much weaker.

Logging environments should have separation of duties where practical.

9. Build account and region coverage reports

A simple matrix can quickly reveal telemetry gaps.

For example:

AccountRegionGuardDutyConfigMacieWAF LogsAus-east-1✅✅✅✅Bus-east-1✅✅❌✅Cus-west-2✅❌✅N/A

This makes gaps obvious.

10. Design for investigations, not just compliance

A logging control should answer:

Would this data actually help me reconstruct what happened?

If not, the control may satisfy a checkbox without providing enough security value.

Logging Mistakes to Avoid

Some recurring mistakes can weaken cloud-security visibility.

Mistake 1: Enabling GuardDuty without checking export

The detector exists, but historical findings may not be retained where expected.

Mistake 2: Enabling WAF but not WAF logging

Blocking traffic without retaining the event limits investigative value.

Mistake 3: Assuming CloudTrail contains everything

CloudTrail is powerful, but it does not replace:

  • Network telemetry

  • Application logs

  • Endpoint logs

  • Kubernetes audit data

Mistake 4: Forgetting encryption permissions

A logging destination may exist but silently fail because the producing service cannot use the KMS key.

Mistake 5: Inconsistent retention

One account may retain logs for years while another retains them for weeks.

That makes organization-wide investigations inconsistent.

Mistake 6: Centralizing without validating

Centralization is only useful when logs actually arrive.

Operational Monitoring

Once logging is configured, the logging architecture itself should be monitored.

Useful questions include:

  • Has log volume unexpectedly dropped?

  • Is a publishing destination failing?

  • Did a bucket policy change?

  • Did a KMS policy change?

  • Was logging disabled?

  • Was a security detector removed?

Monitoring the monitoring system is an important part of defense in depth.

Outcome

The work improved security visibility across multiple AWS accounts and regions.

It helped create more consistent:

  • Threat-detection telemetry

  • Audit logging

  • Sensitive-data monitoring

  • WAF visibility

  • Centralized log storage

  • Encryption

  • Retention

  • Cross-account validation

It also improved confidence that security services were not simply configured, but actually delivering usable security data.

Technologies

Amazon GuardDuty · AWS Security Hub · AWS CloudTrail · AWS Config · Amazon Macie · AWS WAF · Amazon S3 · AWS KMS · AWS Organizations · IAM · AWS CLI · Security Logging · Detection Engineering

What This Demonstrates

This project demonstrates experience in:

  • Detection engineering

  • AWS security monitoring

  • Cloud logging architecture

  • Threat detection

  • Incident-response readiness

  • Centralized telemetry

  • Security-data retention

  • Encryption

  • Multi-account AWS security

  • GovCloud

  • Automation and validation

Key Takeaway

A security control is only as useful as the telemetry it produces—and telemetry is only valuable if you can reliably find, trust, and use it during an investigation.

Previous
Previous

AI-Assisted Security Operations

Next
Next

Identity & Least-Privilege Modernization