Skip to content

Repository files navigation

Just-in-Time Privileged Access to AWS with Microsoft Entra PIM

License: MIT Terraform AWS Provider

Implementation of Just-in-Time (JIT) privileged access to AWS using Microsoft Entra Privileged Identity Management (PIM) integrated with AWS IAM Identity Center.

Based on AWS Security Blog: Implementing just-in-time privileged access to AWS

Architecture

JIT Access Architecture

Additional Diagrams

Diagram Description
Data Flow Step-by-step access flow
Session Timeline Timeline from request to revocation
Multi-Account AWS Organization setup
Security Controls Security layers and monitoring

Features

  • ✅ Time-bound access (1-24 hours)
  • ✅ Approval workflow (optional)
  • ✅ MFA enforcement
  • ✅ Justification tracking
  • ✅ Audit logging
  • ✅ Automatic provisioning via SCIM
  • ✅ Permissions boundary for privilege escalation prevention
  • ✅ CloudWatch monitoring (optional)
  • ✅ Terraform automation

Prerequisites

Component Requirement
AWS Organization instance of IAM Identity Center
Azure Entra ID P1 or P2 licensing
Integration SAML + SCIM configured
Terraform >= 1.6

Session Duration

Setting Default Range Notes
AWS access portal session 8 hours 15 mins - 90 days User interactive session
Permission set session 1 hour 1 - 12 hours Per permission set
PIM activation duration 8 hours 30 mins - 24 hours Per group

⚠️ Important: Active sessions are NOT terminated when PIM expires. Potential access window = PIM duration + sync delay (~10 mins) + session duration.

Quick Start

Manual Setup

  1. Configure SAML & SCIM
  2. Create Security Groups
  3. Configure Permission Sets
  4. Enable PIM for Groups
  5. Test & Validate

Terraform Deployment

cd terraform
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values
terraform init
terraform plan
terraform apply

Documentation

Document Description
Architecture Solution architecture and data flow
Best Practices Recommended configurations
Security Best Practices Security guidelines
Security Checklist Compliance checklist
Troubleshooting Common issues and solutions

Limitations

  • Nested groups not supported with SCIM
  • Dynamic groups supported but don't flatten nested groups
  • Attribute removal in Entra doesn't sync to IAM Identity Center
  • SCIM sync can take 2-40 minutes depending on load
  • Multi-value attributes (multiple emails, phones) not supported
  • SCIM token expires after 1 year - rotate before expiration

References

AWS Documentation

Microsoft Documentation

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • AWS Security Blog team for the original architecture
  • Microsoft Entra documentation team

About

⏱️ Microsoft Entra PIM + AWS JIT Access — Just-In-Time privileged access from Azure AD to AWS with Terraform

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages