sja32/aws-entra-id-saml-federation-lab

GitHub: sja32/aws-entra-id-saml-federation-lab

该项目演示了如何通过 SAML 2.0 在 Microsoft Entra ID 与 AWS 之间实现企业级联合身份验证和基于角色的访问控制。

Stars: 0 | Forks: 0

# AWS + Microsoft Entra ID SAML 联合实验室 ## 概述 本项目演示了使用 SAML 2.0 身份验证在 Microsoft Entra ID (Azure AD) 和 Amazon Web Services (AWS) 之间实现企业身份联合。 该实验室实现了: - 联合身份验证 - 基于角色的访问控制 (RBAC) - AWS IAM 角色担任 - Microsoft Entra 企业应用程序集成 - 最小权限访问隔离 - 通过 SAML 联合获取临时 AWS 凭证 该环境模拟了企业如何使用身份提供者 (IdP) 集中管理身份验证,同时在 AWS 内部维持精细的授权控制。 # 目录 - [概述](#overview) - [架构](#architecture) - [使用的技术](#technologies-used) - [目标](#objectives) - [AWS 配置](#aws-configuration) - [AWS IAM 角色](#aws-iam-roles) - [IAM 策略](#iam-policies) - [Microsoft Entra ID 配置](#microsoft-entra-id-configuration) - [用户分配](#user-assignments) - [SAML 声明配置](#saml-claims-configuration) - [故障排除](#troubleshooting) - [验证](#validation) - [演示的安全概念](#security-concepts-demonstrated) - [展示的技能](#skills-demonstrated) - [未来增强功能](#future-enhancements) - [经验教训](#lessons-learned) - [作者](#author) # 架构 ``` User ↓ Microsoft Entra ID ↓ SAML Assertion AWS IAM Identity Provider ↓ AWS IAM Roles ↓ AWS Console Access ``` # 使用的技术 - Microsoft Entra ID - AWS IAM - SAML 2.0 - AWS IAM 角色 - AWS 身份提供者 - RBAC - 云安全概念 # 目标 本实验室的目标是: - 在 Entra ID 和 AWS 之间配置 SAML 联合身份验证 - 实施基于角色的访问控制 - 为以下对象创建独立的 AWS 角色: - 管理员 - 基础设施工程师 - 审计员 - 将 Entra 用户分配到 AWS 角色 - 验证 AWS 的 SSO 身份验证 - 排查无效的 SAML 响应错误 # AWS 配置 ## IAM 身份提供者 配置 AWS IAM 将 Microsoft Entra ID 信任为 SAML 身份提供者。 ### 身份提供者 ``` Provider Name: EntraID Type: SAML ``` # AWS IAM 角色 创建了以下 AWS IAM 角色: | 角色 | 用途 | |---|---| | AWS-Admin-Role | 完全管理访问权限 | | AWS-InfraAdmin-Role | 基础设施管理 | | AWS-Auditor-Role | 只读审计访问权限 | # IAM 策略 ## AWS-Admin-Role 附加策略: - AdministratorAccess ## AWS-InfraAdmin-Role 附加策略: - PowerUserAccess - CloudWatchFullAccess ## AWS-Auditor-Role 附加策略: - ReadOnlyAccess - SecurityAudit # Microsoft Entra ID 配置 ## 企业应用程序 创建的企业应用程序: ``` AWS Single-Account Access ``` 配置了: - 基于 SAML 的身份验证 - AWS 登录 URL - SAML 声明 - 角色分配 # 用户分配 | 用户 | 分配的角色 | |---|---| | Sharod Admin | AWS-Admin-Role | | Sharod Infra | AWS-InfraAdmin-Role | | Sharod Audit | AWS-Auditor-Role | # SAML 声明配置 配置了所需的 AWS SAML 声明: | 声明 | 值 | |---|---| | Role | user.assignedroles | | RoleSessionName | user.userprincipalname | | SessionDuration | 900 | # 故障排除 ## 问题:无效的 SAML 响应 ### 根本原因 在初始配置期间,SAML Role 声明的格式不正确。 ### 解决方案 配置 Role 声明以正确使用: ``` user.assignedroles ``` 并将 Entra 应用程序角色正确映射到 AWS IAM 角色 ARN。 # 验证 ## 成功的 AWS 联合登录 ![成功的 AWS 联合登录](https://static.pigsec.cn/wp-content/uploads/repos/cas/f8/f82cd7a8df8db782c52753054e9553398409504c8b75214c7dd8002834eb2066.png) ## Microsoft Entra 角色分配 ![Entra 角色分配](https://static.pigsec.cn/wp-content/uploads/repos/cas/b3/b3191a0013be71223fc07db5e39591b6223f6bbfe1a1cc8d92e63fc8354852c5.png) ## SAML 声明配置截图 ![SAML 声明配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/23/23a7c98fd34493d0f9b78497d0e9c5edcbdce20d8519e7db00af962b7029eaaa.png) 验证了: - SAML 身份验证 - AWS 角色担任 - RBAC 隔离 - 控制台访问 - 联合身份流程 # 演示的安全概念 - 联合身份管理 - SAML 2.0 身份验证 - 最小权限访问 - RBAC - 临时凭证 - 身份联合 - 云访问治理 # 展示的技能 - AWS IAM - Microsoft Entra ID (Azure AD) - SAML 2.0 联合 - 身份与访问管理 (IAM) - 基于角色的访问控制 (RBAC) - 联合身份验证 - AWS 身份提供者 - 云安全架构 - 企业单点登录 (SSO) - SAML 身份验证故障排除 - 安全文档编写 - 最小权限设计 # 未来增强功能 计划的增强功能包括: - AWS CloudTrail 集成 - CloudWatch 日志记录 - GuardDuty - AWS Config - MFA 条件访问策略 - 多账户联合 - 基础设施即代码 # 经验教训 - 正确的 SAML 声明格式至关重要 - 角色 ARN 格式必须完全匹配 - 企业应用程序需要同时具备: - 应用程序角色定义 - 用户/组分配 - 联合身份验证故障排除需要同时验证 IdP 和 SP 的配置 # 作者 Sharod Allen GitHub: https://github.com/sja32
标签:AWS IAM, Microsoft Entra ID, RBAC权限控制, SAML 2.0, SecOps, 云安全架构, 单点登录, 身份与访问管理