Skip to content

Lesson 02 β€” Enterprise Identity & Zero Trust Implementation Project

Learning Path

☁️ Phase 02 – AWS Cloud Security

πŸš€ Enterprise Cloud Security Projects & Capstone Labs

In this project, you will work as CloudNova Technologies’ Lead Cloud Security Engineer and design an enterprise identity and Zero Trust architecture.

You will move beyond creating individual IAM users and policies.

You will build a scalable identity model that supports:

  • Centralised workforce authentication
  • Enterprise federation
  • Multi-account access
  • Temporary credentials
  • Role-Based Access Control
  • Attribute-Based Access Control
  • Privileged access management
  • Workload identities
  • Cross-account access
  • Emergency access
  • Identity governance
  • Continuous access reviews
  • Zero Trust security principles

By the end of this lesson, you will be able to:

  • Explain enterprise identity architecture.
  • Apply Zero Trust principles to AWS access.
  • Distinguish human and machine identities.
  • Design IAM Identity Center architecture.
  • Integrate an external identity provider.
  • Design enterprise users and groups.
  • Create permission-set catalogues.
  • Implement Role-Based Access Control.
  • Implement Attribute-Based Access Control.
  • Design cross-account IAM roles.
  • Use AWS Security Token Service.
  • Replace long-term credentials with temporary credentials.
  • Design privileged access workflows.
  • Create emergency-access procedures.
  • Govern joiner, mover and leaver processes.
  • Design machine identities for AWS workloads.
  • Configure GitHub Actions access using OpenID Connect.
  • Apply least privilege.
  • Review and validate access.
  • Produce professional enterprise identity documentation.
Area Details
Project CloudNova Enterprise Identity and Zero Trust
Project Type Identity Architecture, Governance and Implementation
Estimated Time 14–18 Hours
Difficulty Advanced
Delivery Mode DIY or Instructor-Led
Primary Services IAM Identity Center, AWS IAM, AWS STS
Supporting Services AWS Organizations, CloudTrail, IAM Access Analyzer, AWS Config, EventBridge, SNS
Main Deliverable Enterprise Identity and Zero Trust Design
Environment Dedicated training or sandbox AWS environment
Prerequisite Lesson 01 – Enterprise AWS Landing Zone Project

CloudNova Technologies has completed the design of its enterprise AWS landing zone.

The organisation now operates:

  • A central AWS Organizations structure
  • Security and infrastructure organisational units
  • Dedicated production and non-production accounts
  • Centralised logging
  • Shared security accounts
  • An account provisioning process
  • Multi-account governance

However, identity and access remain inconsistent.

Current challenges include:

  • Local IAM users exist in many accounts.
  • Developers have manually created access keys.
  • Production access is not consistently approved.
  • Some administrators use permanent credentials.
  • Access is not removed promptly when employees leave.
  • Permission models differ between business units.
  • Security teams cannot easily investigate access across all accounts.
  • External contractors have excessive permissions.
  • Cross-account roles are not documented.
  • Emergency-access procedures are unclear.
  • Service accounts use long-term access keys.
  • CI/CD pipelines store credentials in repositories.
  • Access reviews are conducted manually.
  • Privileged activity is not centrally monitored.
  • Identity ownership is unclear.

CloudNova has:

  • 12 business units
  • 500 AWS accounts
  • 8,000 employees
  • 400 developers
  • 150 security engineers
  • 80 network engineers
  • 20 finance users
  • 30 auditors
  • A 24Γ—7 Security Operations Centre

The Chief Information Security Officer asks:

β€œHow can we provide secure access to hundreds of AWS accounts without relying on permanent credentials, while ensuring least privilege, strong authentication and complete auditability?”

You have been assigned to lead the CloudNova Enterprise Identity and Zero Trust Implementation Project.

You are working as the:

Lead Cloud Security Engineer

Your responsibilities include:

  • Gathering identity and access requirements.
  • Designing enterprise federation.
  • Configuring IAM Identity Center.
  • Defining users, groups and permission sets.
  • Designing role-based access.
  • Designing attribute-based access.
  • Establishing privileged-access controls.
  • Designing cross-account access.
  • Governing machine identities.
  • Eliminating unnecessary long-term credentials.
  • Defining identity lifecycle processes.
  • Creating access-review procedures.
  • Building emergency-access processes.
  • Monitoring identity activity.
  • Presenting the identity architecture to stakeholders.

Enterprise identity is the foundation of cloud security.

CloudNova must know:

  • Who is requesting access?
  • What resource is being accessed?
  • Why is access required?
  • From which device and location?
  • What level of access is appropriate?
  • How long should access remain active?
  • Who approved the access?
  • How will the activity be monitored?
  • How will the access be removed?

CloudNova’s identity strategy will be based on:

  • Centralised authentication
  • Federated access
  • Strong MFA
  • Temporary credentials
  • Least privilege
  • Separation of duties
  • Explicit authorisation
  • Continuous verification
  • Complete auditability
  • Automated lifecycle management

Zero Trust is a security model based on the principle:

Never trust automatically. Always verify explicitly.

Traditional security models often assume that users inside a trusted network can be trusted.

Zero Trust removes this assumption.

Every access request must be evaluated using identity, context, policy and risk.

Authenticate and authorise every access request using all available information.

Examples:

  • User identity
  • Group membership
  • Device posture
  • Location
  • Requested resource
  • Requested action
  • Session age
  • Authentication method
  • Risk level

Grant only the permissions required to perform an approved task.

Design controls with the assumption that credentials, accounts or workloads may become compromised.

Prefer short-lived sessions instead of long-term credentials.

Access should be reviewed and adjusted as roles, responsibilities and risks change.

CloudNova Workforce
|
Enterprise Identity Provider
|
Strong MFA and Conditional Access
|
AWS IAM Identity Center
|
Users and Groups
|
Permission Sets
|
AWS Organizations
|
AWS Accounts
|
IAM Roles
|
Temporary AWS Credentials
|
AWS Resources

CloudNova must separately govern human and machine identities.

Examples:

  • Developers
  • Security engineers
  • SOC analysts
  • Network engineers
  • Auditors
  • Finance users
  • Contractors
  • Administrators

Human identities should use:

  • Enterprise identity provider accounts
  • IAM Identity Center
  • MFA
  • Group-based assignments
  • Temporary role sessions
  • Access approval workflows

Examples:

  • EC2 applications
  • Lambda functions
  • ECS tasks
  • EKS workloads
  • CI/CD pipelines
  • Automation tools
  • Monitoring agents
  • Backup services

Machine identities should use:

  • IAM roles
  • Service roles
  • Task roles
  • Instance profiles
  • Web identity federation
  • OpenID Connect
  • Short-lived credentials
  • Secrets Manager where credentials cannot be avoided

CloudNova must avoid:

  • Shared administrator accounts
  • IAM users created in every AWS account
  • Long-term administrator access keys
  • Credentials stored in source code
  • Credentials stored in CI/CD variables without rotation
  • Shared service-account passwords
  • Generic roles without ownership
  • Excessive use of wildcard permissions
  • Permanent production access
  • Unmonitored emergency accounts
  • Access granted directly to individual users
  • Roles without trust-policy restrictions
  • Access that is never reviewed
  • Former employees retaining access

IAM Identity Center provides centralised workforce access to AWS accounts and applications.

CloudNova will use IAM Identity Center to:

  • Connect the enterprise identity provider.
  • Manage workforce access centrally.
  • Assign users through groups.
  • Create permission sets.
  • Provision roles across AWS accounts.
  • Issue temporary sessions.
  • Reduce local IAM users.
  • Simplify multi-account access.
  • Centralise access auditing.

Federation allows users to authenticate through CloudNova’s existing identity platform and access AWS without separate AWS passwords.

Possible identity providers include:

  • Microsoft Entra ID
  • Okta
  • Google Workspace
  • Active Directory
  • Ping Identity
  • Other SAML-compatible providers
Employee
|
Corporate Identity Provider
|
Authentication and MFA
|
SAML Federation
|
IAM Identity Center
|
Permission Set
|
IAM Role in AWS Account
|
Temporary Credentials

Security Assertion Markup Language is commonly used for enterprise workforce federation.

It transfers authentication information from an identity provider to a service provider.

OpenID Connect is commonly used for modern applications, workload federation and CI/CD integrations.

Examples:

  • GitHub Actions to AWS
  • Kubernetes workload identity
  • External application authentication

System for Cross-domain Identity Management supports automatic user and group provisioning.

SCIM can help:

  • Create users automatically.
  • Synchronise group membership.
  • Update identity attributes.
  • Disable users after termination.
  • Reduce manual administration.

CloudNova may use:

  • The IAM Identity Center directory
  • Active Directory
  • An external identity provider

For an enterprise with thousands of employees, an external identity provider is generally preferred because it allows CloudNova to maintain one authoritative workforce identity source.

Access should normally be assigned through groups rather than directly to users.

AWS-Cloud-Platform-Administrators
AWS-Cloud-Security-Administrators
AWS-SOC-Tier-1-Analysts
AWS-SOC-Tier-2-Analysts
AWS-SOC-Incident-Responders
AWS-Network-Administrators
AWS-DevOps-Engineers
AWS-Developers
AWS-Production-Support
AWS-Database-Administrators
AWS-Internal-Auditors
AWS-External-Auditors
AWS-Finance-Viewers
AWS-ReadOnly-Support
AWS-Contractors
AWS-Emergency-Administrators

CloudNova will use:

AWS-<Function>-<Access-Level>

Examples:

AWS-Developers-PowerUser
AWS-Production-ReadOnly
AWS-Security-Administrator
AWS-Finance-BillingViewer
AWS-Audit-ReadOnly

Group names should indicate:

  • Platform
  • Team or function
  • Environment where relevant
  • Access level
  • Special restrictions

A permission set defines the access users receive in assigned AWS accounts.

IAM Identity Center provisions IAM roles based on permission sets.

Permission Set Purpose Session Duration
PlatformAdministrator Enterprise platform administration 1 hour
SecurityAdministrator Security-service administration 1 hour
SOCAnalystReadOnly Investigation and monitoring 4 hours
IncidentResponder Approved containment actions 1 hour
NetworkAdministrator Enterprise network administration 1 hour
DeveloperPowerUser Development deployment access 4 hours
ProductionReadOnly Production troubleshooting 2 hours
DatabaseAdministrator Managed database administration 1 hour
AuditorReadOnly Audit and evidence review 4 hours
BillingViewer Cost and billing visibility 4 hours
EmergencyAdministrator Emergency privileged access 30 minutes

CloudNova permission sets must:

  • Use least privilege.
  • Avoid unnecessary wildcard permissions.
  • Separate read, write and administrative access.
  • Use shorter sessions for privileged roles.
  • Include permission boundaries where required.
  • Avoid direct access to sensitive accounts unless justified.
  • Use customer-managed policies where greater control is required.
  • Be reviewed regularly.
  • Have a clearly assigned owner.
  • Include a documented business purpose.

Role-Based Access Control assigns permissions according to a user’s job function.

User
↓
Enterprise Group
↓
Permission Set
↓
AWS Account Assignment
↓
IAM Role
↓
AWS Resources
Role Development Testing Production Security Accounts
Developer Power User Read Only Read Only No Access
DevOps Engineer Administrator Administrator Deployment Access No Access
Platform Administrator Administrator Administrator Administrator Limited
Security Engineer Security Admin Security Admin Security Admin Administrator
SOC Analyst Read Only Read Only Read Only Investigation Access
Network Engineer Network Admin Network Admin Network Admin Limited
Auditor Read Only Read Only Read Only Read Only
Finance User Billing View Billing View Billing View No Access

Attribute-Based Access Control uses attributes or tags to make authorisation decisions.

CloudNova can define attributes such as:

  • Department
  • Business unit
  • Project
  • Application
  • Environment
  • Cost centre
  • Data classification
  • Employment type
  • Support region
Department = Finance
BusinessUnit = Payments
Project = MobileBanking
Environment = Production
CostCentre = FIN-220
EmploymentType = Employee
Department = Finance
BusinessUnit = Payments
Project = MobileBanking
Environment = Production
CostCentre = FIN-220

ABAC policies can allow users to manage resources only when their identity attributes match resource tags.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ManageResourcesWithinAssignedProject",
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:DescribeInstances"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/Project": "${aws:PrincipalTag/Project}",
"aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}"
}
}
}
]
}

Test ABAC policies carefully because missing or inconsistent tags may deny legitimate access or create unintended permissions.

CloudNova will use a hybrid model.

RBAC will define the broad job function.

ABAC will restrict access to the correct projects, applications and environments.

Example:

Developer Role
+
Project = MobileBanking
+
Environment = Development
=
Developer can manage only MobileBanking development resources

Temporary credentials are issued by AWS Security Token Service.

They include:

  • Access key ID
  • Secret access key
  • Session token
  • Expiration time

Temporary credentials reduce risk because they expire automatically.

They should be preferred for:

  • Workforce access
  • Cross-account access
  • CI/CD pipelines
  • EC2 workloads
  • Containers
  • Lambda functions
  • External applications
  • Emergency sessions

AWS STS supports temporary access through operations such as:

  • AssumeRole
  • AssumeRoleWithSAML
  • AssumeRoleWithWebIdentity
  • GetSessionToken
  • GetFederationToken
Security Engineer
↓
Authenticates through IAM Identity Center
↓
Receives Security Administrator Role
↓
Assumes Incident Response Role
↓
Receives Temporary Credentials
↓
Performs Approved Response Action

CloudNova security, network and platform teams require access across multiple accounts.

Cross-account access should use IAM roles rather than duplicate IAM users.

Security Tooling Account
|
Security Engineer Role
|
AWS STS AssumeRole
|
Production Account
|
IncidentResponseRole
|
Approved Investigation and Containment Actions

A cross-account role requires:

  • A trust policy
  • A permissions policy
  • An authorised source principal
  • Optional external ID
  • Optional session tags
  • Optional MFA condition
  • Optional source-account restrictions
  • CloudTrail logging
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSecurityAccountIncidentResponders",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/CloudNovaIncidentResponder"
},
"Action": "sts:AssumeRole",
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": "true"
}
}
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadInvestigationData",
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"iam:Get*",
"iam:List*",
"cloudtrail:LookupEvents",
"guardduty:GetFindings",
"securityhub:GetFindings"
],
"Resource": "*"
},
{
"Sid": "ContainCompromisedInstances",
"Effect": "Allow",
"Action": [
"ec2:ModifyInstanceAttribute",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:CreateSnapshot",
"ec2:CreateTags"
],
"Resource": "*"
}
]
}

An external ID helps protect cross-account roles when third parties require access.

It can help reduce confused-deputy risks.

CloudNova must use:

  • A unique external ID for each third party.
  • A documented owner.
  • Formal approval.
  • Restricted permissions.
  • Short session duration.
  • Regular access reviews.
  • CloudTrail monitoring.

Privileged access includes permissions that can materially affect CloudNova’s environment.

Examples:

  • Organisation administration
  • IAM administration
  • KMS administration
  • Network administration
  • Security-service administration
  • Production changes
  • Logging changes
  • Incident containment
  • Billing administration

Privileged access must be:

  • Approved
  • Time-bound
  • Strongly authenticated
  • Monitored
  • Logged
  • Reviewed
  • Revocable

Just-in-Time access grants privileged permissions only when required.

Engineer Requests Production Administrator Access
↓
Business Justification Submitted
↓
Manager Approval
↓
Security Approval
↓
Temporary Group Membership
↓
One-Hour Session
↓
CloudTrail Monitoring
↓
Access Automatically Removed
↓
Review and Closure

Emergency access is used when normal identity systems are unavailable or during a critical incident.

CloudNova will maintain a controlled break-glass process.

  • Dedicated emergency role or identity
  • Strong MFA
  • Credentials stored securely
  • Access restricted to named responders
  • Formal invocation criteria
  • Immediate notification
  • Complete logging
  • Post-use credential rotation
  • Mandatory post-incident review
  • Regular testing
Critical Incident
↓
Normal Access Unavailable or Insufficient
↓
Incident Commander Approval
↓
Emergency Access Activated
↓
SOC and Management Notified
↓
Privileged Session Monitored
↓
Incident Action Completed
↓
Access Revoked
↓
Credentials Rotated
↓
Post-Incident Review
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EmergencyAdministration",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/CloudNovaEmergencyAccessBroker"
},
"Action": "sts:AssumeRole",
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": "true"
},
"NumericLessThanEquals": {
"sts:DurationSeconds": "1800"
}
}
}
]
}

Machine identities must not use shared human credentials.

Application Workload
↓
AWS-Native Identity Mechanism
↓
IAM Role
↓
Temporary Credentials
↓
Approved AWS Resources

EC2 applications should use IAM roles attached through instance profiles.

Avoid:

  • Access keys in configuration files
  • Access keys in user data
  • Access keys in environment variables
  • Shared credentials between instances

Every Lambda function should use a dedicated execution role.

The execution role should include only the permissions required by the function.

Avoid using one shared Lambda role across unrelated functions.

ECS workloads should separate:

  • Task execution role
  • Application task role

The task execution role supports ECS operations such as pulling images and writing logs.

The task role provides the application’s AWS permissions.

EKS workloads should use workload-specific identities rather than node-level credentials.

Possible approaches include:

  • EKS Pod Identity
  • IAM Roles for Service Accounts
  • Kubernetes service accounts
  • OIDC federation

Each workload should receive only the permissions it requires.

CloudNova CI/CD pipelines should use OIDC federation instead of storing long-term AWS access keys in GitHub.

GitHub Actions Workflow
↓
GitHub OIDC Token
↓
AWS IAM OIDC Provider
↓
Deployment Role
↓
Temporary AWS Credentials
↓
Approved Deployment Actions
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowApprovedGitHubRepository",
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::111122223333:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
},
"StringLike": {
"token.actions.githubusercontent.com:sub": "repo:cloudnova/security-platform:*"
}
}
}
]
}

IAM roles should be used wherever possible.

Where credentials, API keys or passwords are genuinely required, use:

  • AWS Secrets Manager
  • AWS Systems Manager Parameter Store
  • KMS encryption
  • Automatic rotation
  • Fine-grained access policies
  • Access logging
  • Secret ownership

Never store secrets in:

  • Source code
  • Container images
  • Public repositories
  • User-data scripts
  • Shared documents
  • Unencrypted files
  • CI/CD logs

CloudNova must understand the policy evaluation model.

Policy types may include:

  • Identity-based policies
  • Resource-based policies
  • Permissions boundaries
  • Service Control Policies
  • Session policies
  • Access Control Lists
  • Resource Control Policies where applicable

Effective access depends on the combined result of multiple policy layers.

Organisation Policies
↓
Permissions Boundary
↓
Identity Policy
↓
Resource Policy
↓
Session Policy
↓
Conditions
↓
Explicit Deny Check
↓
Final Authorisation Decision

An explicit deny overrides an allow.

Permissions boundaries define the maximum permissions that an IAM role or user can receive.

CloudNova can use permissions boundaries to allow development teams to create roles without allowing them to create unrestricted administrative roles.

Developer creates an application role
↓
Permissions boundary applied
↓
Role can access approved application services
↓
Role cannot modify IAM, Organizations, CloudTrail or KMS administration

Conditions improve policy precision.

Useful condition keys include:

  • aws:RequestedRegion
  • aws:PrincipalArn
  • aws:PrincipalTag
  • aws:ResourceTag
  • aws:SourceAccount
  • aws:SourceArn
  • aws:MultiFactorAuthPresent
  • aws:CurrentTime
  • aws:SecureTransport
  • sts:ExternalId
Threat Potential Impact Primary Control
Credential theft Unauthorised AWS access MFA and temporary credentials
Password spraying Account compromise Identity-provider protections
Access-key exposure Workload compromise IAM roles and secret scanning
Privilege escalation Administrative control Least privilege and monitoring
Session-token theft Temporary account takeover Short sessions and context controls
Rogue administrator Deliberate misuse Separation of duties and logging
Cross-account abuse Production compromise Restricted trust policies
Contractor over-access Data exposure Time-bound assignments
Orphaned identities Persistent unauthorised access Automated leaver process
CI/CD credential leak Deployment compromise OIDC federation
Role chaining abuse Privilege expansion Trust-policy restrictions
Emergency-account misuse Organisation-wide impact Strong governance and monitoring

When a new employee joins:

  1. Corporate identity is created.
  2. Required MFA is enrolled.
  3. Manager confirms job role.
  4. Group membership is assigned.
  5. IAM Identity Center access is provisioned.
  6. Access is validated.
  7. User receives security training.
  8. Evidence is recorded.

When an employee changes role:

  1. Existing access is reviewed.
  2. Unnecessary groups are removed.
  3. New groups are approved.
  4. Privileged access is reassessed.
  5. Account assignments are updated.
  6. Access is validated.
  7. Evidence is recorded.

When an employee leaves:

  1. Corporate identity is disabled.
  2. Active sessions are revoked where possible.
  3. Group memberships are removed.
  4. AWS assignments are removed.
  5. IAM access keys are disabled and deleted.
  6. Owned service accounts are reassigned.
  7. Emergency access is reviewed.
  8. Evidence is recorded.

Contractor access must include:

  • Named individual identity
  • Sponsoring manager
  • Start and expiry dates
  • Restricted group membership
  • Least-privilege permission set
  • Shorter session duration
  • No permanent production administration
  • Regular review
  • Automatic expiry
  • Immediate removal when the engagement ends

CloudNova will perform:

  • Monthly privileged-access reviews
  • Quarterly production-access reviews
  • Quarterly cross-account role reviews
  • Quarterly contractor-access reviews
  • Six-monthly general workforce reviews
  • Annual architecture reviews
  • Immediate reviews after security incidents
  • Does the user still require access?
  • Is the access level appropriate?
  • Is production access justified?
  • Is privileged access time-bound?
  • Is the user still employed?
  • Is the contractor engagement active?
  • Are role permissions still used?
  • Are access keys present?
  • Are emergency roles tested?
  • Are any assignments made directly to users?

CloudNova will monitor:

  • Root-user activity
  • Console sign-ins
  • Failed authentication attempts
  • MFA changes
  • IAM policy changes
  • Role creation
  • Trust-policy changes
  • Access-key creation
  • AssumeRole events
  • Permission-set changes
  • Identity Center assignments
  • Emergency-access activity
  • Unusual geographic access
  • Privilege-escalation attempts
Corporate Identity Provider Logs
|
IAM Identity Center Events
|
AWS CloudTrail
|
Security Lake
|
SIEM
|
SOC Monitoring
|
Investigation and Response

IAM Access Analyzer can help identify:

  • Resources shared externally
  • Unused access
  • Public access
  • Cross-account access
  • Policy validation issues
  • Overly broad permissions

CloudNova should use it to support:

  • Least-privilege reviews
  • External-access reviews
  • Policy validation
  • Role analysis
  • Access-remediation planning

CloudNova must govern:

  • Identity ownership
  • Group ownership
  • Permission-set ownership
  • Role ownership
  • Policy approval
  • Privileged access
  • Emergency access
  • External access
  • Machine identities
  • Access reviews
  • Exception management
  • Identity evidence
  • Role decommissioning
Identity Requirement
↓
Risk Assessment
↓
Architecture Design
↓
Security Review
↓
Implementation
↓
Validation
↓
Access Monitoring
↓
Periodic Review
↓
Remediation
↓
Continuous Improvement

Lab 01 β€” Conduct the Enterprise Identity Assessment

Section titled β€œLab 01 β€” Conduct the Enterprise Identity Assessment”

Assess CloudNova’s current human and machine identities.

Create:

02-Enterprise-Identity-Zero-Trust/
└── 01-Assessment/
└── Current-State-Identity-Assessment.md

Document:

  • Existing identity providers
  • IAM users
  • IAM roles
  • Access keys
  • Identity Center status
  • MFA coverage
  • Privileged groups
  • Cross-account roles
  • CI/CD identities
  • Service accounts
  • Contractor identities
  • Emergency identities
  • Access-review process
  • Identity risks
  • Current-state identity diagram
  • Identity inventory
  • High-risk findings
  • Remediation recommendations

Create CloudNova’s central workforce-access architecture.

Document:

  • Identity source
  • Federation protocol
  • User provisioning
  • Group synchronisation
  • MFA ownership
  • Session durations
  • Account assignments
  • Delegated administration
  • Logging
  • Business continuity
Enterprise Identity Provider
↓
IAM Identity Center
↓
Groups
↓
Permission Sets
↓
AWS Accounts
↓
Temporary Role Sessions

Create standard enterprise permission sets.

  • PlatformAdministrator
  • SecurityAdministrator
  • SOCAnalystReadOnly
  • IncidentResponder
  • NetworkAdministrator
  • DeveloperPowerUser
  • ProductionReadOnly
  • AuditorReadOnly
  • BillingViewer
  • EmergencyAdministrator

For every permission set, document:

  • Business purpose
  • Target users
  • Target accounts
  • Permissions
  • Session duration
  • Approval owner
  • Review frequency
  • Restrictions

Map enterprise roles to AWS account access.

Create:

02-Enterprise-Identity-Zero-Trust/
└── 03-RBAC/
β”œβ”€β”€ RBAC-Model.md
└── Account-Assignment-Matrix.md

Include:

  • Job roles
  • Enterprise groups
  • Permission sets
  • Account types
  • Access levels
  • Approval requirements
  • Session durations

Create a tag-based access model.

  • Department
  • BusinessUnit
  • Project
  • Application
  • Environment
  • CostCentre
  • DataClassification
  • EmploymentType

Document:

  • Identity attributes
  • Resource tags
  • Tag ownership
  • Tag enforcement
  • Example policies
  • Missing-tag behaviour
  • Exception process
  • Testing approach

Design secure cross-account access from the Security Tooling account to a workload account.

Create:

  • Source role
  • Destination role
  • Trust policy
  • Permissions policy
  • Session-duration standard
  • MFA requirement
  • CloudTrail validation
  • Role-assumption test
Terminal window
aws sts assume-role \
--role-arn arn:aws:iam::444455556666:role/CloudNovaIncidentResponseRole \
--role-session-name incident-IR-2026-001

Design a GitHub Actions OIDC integration.

Document:

  • OIDC provider
  • Approved repository
  • Approved branch or environment
  • Deployment role
  • Trust policy
  • Permissions policy
  • Session duration
  • CloudTrail verification
  • Credential-removal plan
  • Trust-policy file
  • Deployment-role policy
  • Workflow architecture
  • Successful role-assumption evidence

Design Just-in-Time access for production administration.

Create a workflow containing:

  • Access request
  • Business justification
  • Manager approval
  • Security approval
  • Temporary group assignment
  • MFA verification
  • Session monitoring
  • Automatic expiry
  • Post-access review
Privileged-Access-Runbook.md

Create and test the CloudNova break-glass process.

  • Invocation criteria
  • Authorised personnel
  • Credential storage
  • MFA requirements
  • Approval process
  • Notification process
  • Logging
  • Credential rotation
  • Post-incident review
  • Quarterly test plan

Present the complete identity architecture to the CloudNova Security Architecture Review Board.

  • Chief Information Security Officer
  • Identity Architect
  • Cloud Security Architect
  • Cloud Platform Lead
  • SOC Manager
  • Internal Audit
  • Human Resources
  • Compliance Manager
  • Application Owners
  • Federation
  • MFA
  • Identity lifecycle
  • Least privilege
  • RBAC
  • ABAC
  • Privileged access
  • Emergency access
  • Machine identities
  • Cross-account access
  • Monitoring
  • Compliance
  • Business continuity
  • Identity risks

Students should explore or configure:

  • IAM Identity Center
  • Identity source
  • Users
  • Groups
  • Permission sets
  • AWS account assignments
  • Session durations
  • IAM roles
  • IAM policies
  • Trust policies
  • IAM Access Analyzer
  • CloudTrail role-assumption events
  • IAM credential reports

Run these commands only in an authorised training or sandbox environment.

Terminal window
# Display the current identity
aws sts get-caller-identity
# List IAM roles
aws iam list-roles
# List IAM users
aws iam list-users
# List customer-managed IAM policies
aws iam list-policies \
--scope Local
# List access keys for a user
aws iam list-access-keys \
--user-name USER_NAME
# Generate an IAM credential report
aws iam generate-credential-report
# Retrieve the IAM credential report
aws iam get-credential-report
# List IAM Identity Center instances
aws sso-admin list-instances
# List permission sets
aws sso-admin list-permission-sets \
--instance-arn INSTANCE_ARN
# Describe a permission set
aws sso-admin describe-permission-set \
--instance-arn INSTANCE_ARN \
--permission-set-arn PERMISSION_SET_ARN
# List AWS accounts
aws organizations list-accounts
# List account assignments
aws sso-admin list-account-assignments \
--instance-arn INSTANCE_ARN \
--account-id ACCOUNT_ID \
--permission-set-arn PERMISSION_SET_ARN
Terminal window
aws sts assume-role \
--role-arn arn:aws:iam::444455556666:role/CloudNovaAuditRole \
--role-session-name cloudnova-audit-review
Terminal window
aws iam simulate-principal-policy \
--policy-source-arn arn:aws:iam::111122223333:role/CloudNovaDeveloperRole \
--action-names s3:GetObject s3:DeleteObject iam:CreateUser
Terminal window
aws accessanalyzer validate-policy \
--policy-type IDENTITY_POLICY \
--policy-document file://developer-policy.json
Terminal window
aws accessanalyzer list-findings-v2 \
--analyzer-arn ANALYZER_ARN
  • Enterprise identity source is documented.
  • Federation protocol is defined.
  • MFA ownership is defined.
  • User and group provisioning is documented.
  • Identity-provider failure procedures exist.
  • IAM Identity Center architecture is documented.
  • Enterprise groups are defined.
  • Permission sets are documented.
  • Account assignments are approved.
  • Session durations are appropriate.
  • Direct user assignments are minimised.
  • RBAC matrix is complete.
  • ABAC attributes are documented.
  • Resource-tag standards are defined.
  • Missing-tag behaviour is documented.
  • Tag ownership is assigned.
  • Policies have been tested.
  • Privileged roles are identified.
  • Just-in-Time workflow is documented.
  • Production access requires approval.
  • Emergency access is documented.
  • Emergency access is regularly tested.
  • Privileged sessions are monitored.
  • EC2 workloads use IAM roles.
  • Lambda functions use dedicated execution roles.
  • ECS tasks use task roles.
  • EKS workloads use workload identities.
  • CI/CD uses temporary credentials.
  • Long-term keys have documented exceptions.
  • Joiner process is documented.
  • Mover process is documented.
  • Leaver process is documented.
  • Contractor access has expiry dates.
  • Access-review schedule exists.
  • Role ownership is recorded.
  • Policy exceptions are documented.
  • CloudTrail captures IAM activity.
  • Identity-provider events are monitored.
  • AssumeRole events are reviewed.
  • Root-user activity is monitored.
  • Access-key creation is monitored.
  • Permission changes generate alerts.

Issue 1 β€” User Cannot Access an Assigned AWS Account

Section titled β€œIssue 1 β€” User Cannot Access an Assigned AWS Account”

Possible causes:

  • User is not in the correct identity-provider group.
  • Group synchronisation has not completed.
  • Account assignment is missing.
  • Permission set has not been provisioned.
  • User session is stale.

Resolution:

  • Verify the user’s group membership.
  • Confirm SCIM synchronisation.
  • Review the AWS account assignment.
  • Reprovision the permission set.
  • Ask the user to sign out and begin a new session.
  • Review CloudTrail and IAM Identity Center events.

Possible causes:

  • Source principal is not trusted.
  • Permissions do not allow sts:AssumeRole.
  • MFA condition is not satisfied.
  • External ID is incorrect.
  • SCP blocks the action.
  • Permissions boundary limits access.

Resolution:

  • Review the destination trust policy.
  • Review the source-role permissions.
  • Verify MFA.
  • Confirm the external ID.
  • Review SCPs.
  • Review permissions boundaries.
  • Check CloudTrail for the denial context.

Possible causes:

  • Principal tag is missing.
  • Resource tag is missing.
  • Tag values do not match.
  • Incorrect condition operator.
  • Session tags were not passed.
  • Explicit deny applies.

Resolution:

  • Inspect principal tags.
  • Inspect resource tags.
  • Confirm exact tag spelling and case.
  • Review policy conditions.
  • Validate session-tag configuration.
  • Use policy simulation.

Possible causes:

  • OIDC provider is missing.
  • Audience condition is incorrect.
  • Repository subject condition is incorrect.
  • Workflow lacks token permission.
  • Role trust policy is too restrictive.
  • Branch or environment does not match.

Resolution:

  • Confirm the IAM OIDC provider.
  • Review the token audience.
  • Review the subject claim.
  • Confirm workflow permissions.
  • Review repository, branch and environment restrictions.
  • Review CloudTrail role-assumption events.

Issue 5 β€” Access Remains After Employee Departure

Section titled β€œIssue 5 β€” Access Remains After Employee Departure”

Possible causes:

  • Corporate identity was not disabled.
  • SCIM synchronisation failed.
  • Direct account assignment remains.
  • Local IAM user exists.
  • Access key remains active.
  • Emergency group membership was not removed.

Resolution:

  • Disable the enterprise identity.
  • Remove group memberships.
  • Remove direct assignments.
  • Review local IAM users.
  • Disable and delete access keys.
  • Revoke active sessions where possible.
  • Run a complete leaver-access review.

Issue 6 β€” Privileged Role Has Excessive Permissions

Section titled β€œIssue 6 β€” Privileged Role Has Excessive Permissions”

Possible causes:

  • AWS-managed administrator policy was used.
  • Custom policy contains wildcards.
  • Permission boundary is absent.
  • Role accumulated permissions over time.
  • Access requirements were not reviewed.

Resolution:

  • Analyse CloudTrail usage.
  • Use IAM Access Analyzer.
  • Create a least-privilege policy.
  • Add a permissions boundary.
  • Remove unused permissions.
  • Perform a peer review.
  • Document approved exceptions.

CloudNova identity standards:

  • Use IAM Identity Center for workforce access.
  • Integrate with the enterprise identity provider.
  • Require strong MFA.
  • Use temporary credentials.
  • Avoid IAM users wherever possible.
  • Never share identities.
  • Assign access through groups.
  • Use separate permission sets for separate duties.
  • Keep privileged sessions short.
  • Apply least privilege.
  • Use RBAC and ABAC together.
  • Use dedicated workload roles.
  • Use OIDC for CI/CD systems.
  • Avoid storing AWS access keys.
  • Restrict cross-account trust policies.
  • Require approval for production access.
  • Use Just-in-Time privileged access.
  • Maintain emergency-access procedures.
  • Monitor all role assumptions.
  • Review access regularly.
  • Remove access immediately when no longer required.
  • Assign owners to all roles and permission sets.
  • Use IAM Access Analyzer.
  • Validate IAM policies before deployment.
  • Record and review identity exceptions.
  • Creating IAM users in every AWS account.
  • Using permanent administrator access keys.
  • Assigning access directly to individual users.
  • Reusing one role for unrelated teams.
  • Granting production administrator access permanently.
  • Using shared service accounts.
  • Failing to require MFA.
  • Using broad wildcard permissions.
  • Ignoring trust-policy security.
  • Allowing external access without an external ID.
  • Storing AWS keys in GitHub.
  • Giving all EKS pods the node role.
  • Sharing one Lambda execution role.
  • Failing to remove former employees.
  • Not expiring contractor access.
  • Treating Zero Trust as a product rather than an operating model.
  • Relying only on network location.
  • Failing to monitor role assumptions.
  • Not testing emergency access.
  • Leaving unused roles and policies active.
  • Ignoring permission-set session duration.
  • Using tags without governance.
  • Applying ABAC without mandatory tagging.
  • Failing to document identity ownership.

Students must create the following project files:

CloudNova-Enterprise-Security/
└── 02-Enterprise-Identity-Zero-Trust/
β”œβ”€β”€ README.md
β”œβ”€β”€ 01-Assessment/
β”‚ β”œβ”€β”€ Current-State-Identity-Assessment.md
β”‚ β”œβ”€β”€ Identity-Inventory.md
β”‚ └── Identity-Risk-Assessment.md
β”œβ”€β”€ 02-Architecture/
β”‚ β”œβ”€β”€ Enterprise-Identity-Architecture.md
β”‚ β”œβ”€β”€ IAM-Identity-Center-Design.md
β”‚ β”œβ”€β”€ Federation-Design.md
β”‚ └── Zero-Trust-Architecture.md
β”œβ”€β”€ 03-RBAC/
β”‚ β”œβ”€β”€ RBAC-Model.md
β”‚ β”œβ”€β”€ Group-Catalogue.md
β”‚ β”œβ”€β”€ Permission-Set-Catalogue.md
β”‚ └── Account-Assignment-Matrix.md
β”œβ”€β”€ 04-ABAC/
β”‚ β”œβ”€β”€ ABAC-Design.md
β”‚ β”œβ”€β”€ Identity-Attributes.md
β”‚ β”œβ”€β”€ Resource-Tagging-Model.md
β”‚ └── Example-Policies/
β”œβ”€β”€ 05-Privileged-Access/
β”‚ β”œβ”€β”€ Privileged-Access-Policy.md
β”‚ β”œβ”€β”€ Just-in-Time-Access-Workflow.md
β”‚ β”œβ”€β”€ Emergency-Access-Runbook.md
β”‚ └── Privileged-Access-Review.md
β”œβ”€β”€ 06-Machine-Identity/
β”‚ β”œβ”€β”€ Workload-Identity-Standard.md
β”‚ β”œβ”€β”€ EC2-and-Lambda-Roles.md
β”‚ β”œβ”€β”€ EKS-Identity-Design.md
β”‚ └── GitHub-OIDC-Design.md
β”œβ”€β”€ 07-Cross-Account/
β”‚ β”œβ”€β”€ Cross-Account-Access-Model.md
β”‚ β”œβ”€β”€ Trust-Policy-Standards.md
β”‚ └── Cross-Account-Access-Matrix.md
β”œβ”€β”€ 08-Governance/
β”‚ β”œβ”€β”€ Joiner-Mover-Leaver-Process.md
β”‚ β”œβ”€β”€ Contractor-Access-Standard.md
β”‚ β”œβ”€β”€ Access-Review-Procedure.md
β”‚ β”œβ”€β”€ Identity-Exception-Process.md
β”‚ └── Role-Ownership-Register.md
β”œβ”€β”€ 09-Monitoring/
β”‚ β”œβ”€β”€ Identity-Monitoring-Strategy.md
β”‚ β”œβ”€β”€ Identity-Alert-Catalogue.md
β”‚ └── Identity-Investigation-Runbook.md
β”œβ”€β”€ 10-Evidence/
β”‚ β”œβ”€β”€ Screenshots/
β”‚ β”œβ”€β”€ CLI-Outputs/
β”‚ β”œβ”€β”€ Policy-Validation/
β”‚ └── Verification-Checklist.md
└── 11-Reports/
β”œβ”€β”€ Identity-Architecture-Review.md
β”œβ”€β”€ Executive-Identity-Strategy.md
β”œβ”€β”€ Risk-Register.md
└── Lessons-Learned.md

CloudNova acquires a financial-technology company called SecurePay Systems.

SecurePay currently has:

  • 40 AWS accounts
  • 600 employees
  • 120 IAM users
  • 75 active access keys
  • Local administrator users in production accounts
  • Several shared service accounts
  • GitHub pipelines using permanent AWS credentials
  • No IAM Identity Center
  • No central MFA standard
  • Contractors with permanent production access
  • Undocumented cross-account roles
  • No formal access-review process
  • No emergency-access procedure
  • Multiple workloads using administrator roles

Design a complete identity migration and Zero Trust implementation plan.

Your submission must include:

  1. Current-state identity assessment
  2. IAM user and access-key remediation plan
  3. Identity-provider integration design
  4. IAM Identity Center design
  5. Group catalogue
  6. Permission-set catalogue
  7. RBAC matrix
  8. ABAC design
  9. Production-access workflow
  10. Contractor-access remediation
  11. GitHub OIDC migration
  12. Machine-identity standard
  13. Cross-account access review
  14. Emergency-access procedure
  15. Joiner, mover and leaver process
  16. Access-review schedule
  17. Identity threat model
  18. Migration sequence
  19. Rollback plan
  20. Executive summary

What is the primary objective of Zero Trust?

Answer:
To verify every access request explicitly, apply least privilege and avoid automatically trusting users or devices based only on location.

Why should enterprise users access AWS through IAM Identity Center?

Answer:
It centralises workforce access, supports federation, uses temporary sessions and simplifies access across multiple AWS accounts.

What is the difference between RBAC and ABAC?

Answer:
RBAC grants access based on job roles, while ABAC uses identity and resource attributes such as department, project and environment.

Why should RBAC and ABAC be used together?

Answer:
RBAC establishes broad job-function permissions, while ABAC restricts those permissions to the correct applications, projects or environments.

Why are temporary credentials safer than long-term access keys?

Answer:
Temporary credentials expire automatically and reduce the period during which stolen credentials can be abused.

What service issues temporary AWS credentials?

Answer:
AWS Security Token Service.

What is the purpose of an IAM role trust policy?

Answer:
It defines which principals are allowed to assume the role and under which conditions.

What is a permission set?

Answer:
A permission set defines the permissions and session settings that IAM Identity Center provisions as a role in assigned AWS accounts.

Why should access be assigned through groups?

Answer:
Group-based access is easier to govern, review and remove than direct assignments to individual users.

What is Just-in-Time access?

Answer:
It provides privileged permissions only when required, usually after approval and for a limited duration.

What is emergency or break-glass access?

Answer:
It is tightly controlled privileged access used when normal access mechanisms are unavailable or insufficient during a critical incident.

What should happen after emergency access is used?

Answer:
The session should be reviewed, credentials rotated, evidence preserved and a post-incident review completed.

How should EC2 applications receive AWS permissions?

Answer:
Through an IAM role attached to the EC2 instance using an instance profile.

How should GitHub Actions access AWS?

Answer:
Through OIDC federation and a restricted IAM role that issues temporary credentials.

What is the purpose of SCIM?

Answer:
SCIM automates user and group provisioning, updates and deactivation between identity systems.

What is the purpose of an external ID?

Answer:
It helps protect cross-account roles used by third parties from confused-deputy risks.

What is an IAM permissions boundary?

Answer:
It defines the maximum permissions an IAM user or role can receive, even if broader permissions are attached.

What happens when an explicit deny and an allow both apply?

Answer:
The explicit deny overrides the allow.

Why must production access be reviewed regularly?

Answer:
Roles and responsibilities change, so previously justified access may become excessive or unnecessary.

What is the purpose of the joiner, mover and leaver process?

Answer:
It ensures access is correctly granted, changed and removed throughout an individual’s employment lifecycle.

Why should contractors have expiry dates?

Answer:
Automatic expiry reduces the risk of contractor access remaining active after the engagement ends.

Why should separate Lambda functions use separate execution roles?

Answer:
Dedicated roles reduce blast radius and allow each function to receive only the permissions it requires.

Why should EKS workloads avoid using node-role permissions?

Answer:
Node-role credentials may give multiple workloads excessive access. Workload-specific identities provide stronger isolation.

How can IAM Access Analyzer support least privilege?

Answer:
It can identify external access, unused permissions, public sharing and policy-validation issues.

What is the final outcome of this project?

Answer:
A secure, scalable and auditable enterprise identity architecture based on federation, temporary credentials, least privilege, Zero Trust and continuous governance.

After completing this lesson, you should understand that enterprise identity is not limited to creating IAM policies.

A mature identity platform combines:

  • Enterprise federation
  • IAM Identity Center
  • Strong MFA
  • Temporary credentials
  • Role-Based Access Control
  • Attribute-Based Access Control
  • Cross-account roles
  • Privileged-access management
  • Emergency access
  • Machine identities
  • Identity monitoring
  • Access reviews
  • Automated identity lifecycle management

A strong identity architecture helps CloudNova ensure that the correct person or workload receives the correct access to the correct resource for the correct period of time.

You have completed this project when:

  • The current identity environment has been assessed.
  • The federation architecture is documented.
  • IAM Identity Center is designed.
  • Enterprise groups are defined.
  • Permission sets are documented.
  • The RBAC matrix is complete.
  • The ABAC model is complete.
  • Cross-account access is documented.
  • Privileged-access workflows exist.
  • Emergency access is documented and tested.
  • Machine-identity standards are complete.
  • GitHub OIDC integration is designed.
  • Joiner, mover and leaver processes are documented.
  • Access-review procedures exist.
  • Identity monitoring is defined.
  • The identity threat model is complete.
  • The architecture review has been conducted.
  • All evidence is stored in the project repository.
  • The executive identity strategy is ready for presentation.

➑️ Project 03 β€” Enterprise Network Security Project

In the next lesson, you will design CloudNova’s enterprise network-security architecture using:

  • Multi-VPC architecture
  • AWS Transit Gateway
  • Centralised inspection
  • AWS Network Firewall
  • Route 53 Resolver
  • VPC endpoints
  • Private connectivity
  • Hybrid networking
  • Network segmentation
  • Controlled internet egress
  • Network monitoring
  • Zero Trust network principles