Identity & Access Management
簡短摘要
IAM是流程,策略和工具的集合,可確保誰可以訪問內容,在什麼條件下以及如何控制它。目標:最大限度地減少多余的權限、減少攻擊表面、加速盤繞和審計、合規性(PCI DSS、GDPR等)以及可測量的訪問可靠性。
基本概念
身份(身份):人員(雇員、承包商)、服務/應用程序、設備。
身份驗證(AuthN):驗證「誰」(密碼→ MFA → FIDO2/passkeys無桿電路)。
授權(AuthZ):「允許什麼」解決方案(RBAC/ABAC/ReBAC,策略)。
憑證(Credentials):密碼、密鑰、令牌、證書(mTLS)。
秘密管理:KMS/HSM/Vault,輪換,短TTL,動態秘密。
生命周期:Joiner-Mover-Leaver (JML)-創建、更改角色、召回。
IAM目標體系結構
平面和角色:- IdP(身份提供者):SSO,MFA,目錄,聯邦(OIDC/SAML),風險策略。
- PDP/PEP:決定/實施-策略引擎(OPA/Cedar)+應用點(API網關,代理,服務-mesh)。
- 目錄/人力資源系統:員工和角色的真相來源。
- Provigining: SCIM/Automation用於創建/修改/撤消訪問權限。
- 審計:集中式登錄、UEBA、角色和訪問報告。
- SSO(+MFA)→令牌發布(OIDC/JWT/SAML)→ PEP檢查令牌/上下文→ PDP根據策略(角色/屬性/風險)進行決策→應用程序簽發/拒絕訪問。
身份驗證: 從密碼到密碼
密碼:只有密碼管理器,最少12-14個字符,沒有「按日歷」輪換,但在事件中是強制性的。
默認的MFA:TOTP/WebAuthn/Push;避免SMS作為主要因素。
無桿輸入:關鍵域的FIDO2/passkeys。
自適應AuthN:考慮風險信號(地理、ASN、設備、異常)→要求額外的因素/阻塞。
授權: RBAC,ABAC,ReBAC
RBAC:與功能相對應的角色(支持,財務,DevOps)。簡單易懂,但「蔓延」。
ABAC:屬性規則(部門、風險級別、時間、區域、資源標簽)。可擴展。
ReBAC:「屬於誰」關系(項目所有者,團隊成員)。適用於多重場景。
- 結合RBAC(基本網格)+ABAC/ReBAC(上下文/邊界)。
- JIT (Just-In-Time):通過查詢/應用程序授予臨時權限,自動召回。
- JEA (Just-Enough Access):最低限度的操作權。
- PAM:孤立的「強」訪問(DB/雲管理器),具有會話代理,屏幕/命令記錄和短暫生命信用。
聯合會和SSO
協議:OIDC(JWT令牌),SAML 2。0 (XML assertions)-用於外部提供商/合作夥伴。
SSO:使用MFA的單一入口點,減少網絡釣魚,集中反饋。
B2B/B2C:與合作夥伴建立聯盟,限制領域和政策。
mTLS/m2m:對於服務,請使用簡短的x.509 (SPIFFE/SVID)或Client Credentials OAuth2。
生命周期(JML)和provigining
Joiner:從HR/目錄中自動分配帳戶和基本角色。
Mover:按屬性(部門、項目、位置)自動更改角色。
Leaver:立即召回SSO 、密鑰、令牌、存儲庫/雲訪問/CI/CD。
流程:訪問申請(ITSM),SoD矩陣(職責分工),定期訪問評論。
秘密、密鑰和輪換
KMS/HSM:存儲根/關鍵鍵,包括操作審核。
Vault/Secrets經理:TTL完成時的動態信條(DB、雲)、自動咆哮。
輪換:OAuth令牌,JWT簽名密鑰,服務密碼-如期和發生事件。
mTLS:短期證書(小時/日),自動超額發放。
策略和解決方案引擎
聲明性:將政治家保存在Git中;檢查CI(策略測試)。
上下文:時間/位置/ASN/風險級別/設備狀態 (MDM/EDR)。
rego package authz. payments default allow = false
allow {
input. user. role == "finance"
input. device. compliant == true input. action == "read"
input. resource. type == "report"
time. now_hh >= 8 time. now_hh <= 20
}
監控、SLO和審計
度量標準:- AuthN/AuthZ(%)成功率,p95登錄時間/決策時間,MFA/無桿輸入的比例。
- 在JIT/PAM升級中,特權平均持續時間。
- 覆蓋復雜設備,短暫的秘密比例。
- SSO/IdP ≥ 99的可用性。每月95%。
- p95 AuthZ decision ≤ 50 мс.
- 100%關閉帳戶≤離岸後15分鐘。
- 審核和UEBA:集中式不可更改的邏輯(訪問,角色更改,失敗的輸入,PDP解決方案),行為分析和異常焦慮。
IAM中的重構事件
令牌/密鑰的損害:立即召回,強制登錄,簽名密鑰的輪換,簡短的秘密。
濫用權限:暫停帳戶,阻止JIT/JEA,對相鄰實體進行訪問審查。
IdP不可用:離線模式(具有短TTL的令牌臨時緩存驗證),優先恢復過程。
網絡釣魚:強制性MFA,會話風險檢查,通知用戶,培訓。
雲和Kubernetes(模式)
公共雲IAM:使用具有優先特權的本機角色;代替「永恒」密鑰是帶有OIDC聯盟到雲的工作負載(IRSA/Workload Identity)。
Kubernetes:RBAC在neimspace/角色上,限制「集群管理」;秘密-通過外部經理;L7策略的mesh+OPA服務;管理控制器(簽名映像,禁令「:最新」)。
API網關:JWT/mTLS檢查、速度限制、敏感端點查詢簽名(HMAC)。
iGaming/fintech的實踐
訪問域:支付、反欺詐、PII、內容提供商-隔離角色和網絡段。
SoD:禁止組合沖突角色(例如,創建促銷活動+批準付款)。
PAM和JIT:僅通過會話經紀人訪問PSP/銀行和 prod-DB,並進行記錄和自動召回。
合規性:PCI DSS-MFA,最低特權,CHD區域細分;GDPR是最小化數據和PII訪問點日誌的原理。
合作夥伴和內容提供商:聯合會和按年齡段的政策;短壽命令牌和IP/ASN allow-list。
典型錯誤
「永恒」鑰匙和令牌:沒有輪換,TTL →高泄漏風險。
手動離岸:「幽靈般」的出入→權利撤銷延誤。
整體角色:一個「超級角色」而不是組成和屬性。
MFA僅在管理中:MFA必須適用於所有輸入和關鍵操作。
無處可去:缺乏集中化,UEBA →後來的事件檢測。
IAM實施路線圖
1.用戶/服務/資源清單;數據和靈敏度圖。
2.SSO+MFA for All,包括抗菌因子。
3.角色模型:上下文的基本RBAC+屬性(ABAC);SoD矩陣。
4.Provigining SCIM:從HR/目錄中自動發布/更改/撤銷權利;ITSM的申請和申請。
5.PAM和JIT/JEA:用於特權訪問;TTL簡短會議記錄。
6.秘密管理:放棄靜態密鑰;動態秘密,輪換,具有簡短證書的mTLS。
7.Git+CI中的策略:規則測試、更改控制、策略金絲雀部署。
8.可觀察性和SLO:AuthN/AuthZ dashbords,Alerta,定期訪問評論。
工件示例
AWS IAM Policy(至少讀取S3報告)
json
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "ReadOnlyReports",
"Effect": "Allow",
"Action": ["s3:GetObject","s3:ListBucket"],
"Resource": [
"arn:aws:s3:::reports-bucket",
"arn:aws:s3:::reports-bucket/"
],
"Condition": {
"IpAddress": { "aws:SourceIp": "203. 0. 113. 0/24" }
}
}]
}
Kubernetes RBAC(命名空間掃描開發人員)
yaml apiVersion: rbac. authorization. k8s. io/v1 kind: Role metadata:
name: dev-read-write namespace: app-prod rules:
- apiGroups: ["","apps"]
resources: ["pods","deployments","services","configmaps"]
verbs: ["get","list","watch","create","update","patch","delete"]
apiVersion: rbac. authorization. k8s. io/v1 kind: RoleBinding metadata:
name: dev-bind namespace: app-prod subjects:
- kind: User name: alice@example. com roleRef:
kind: Role name: dev-read-write apiGroup: rbac. authorization. k8s. io
OIDC: ABAC的聲明(示例)
json
{
"sub": "d81f0b5c-...",
"email": "bob@example. com",
"dept": "finance",
"role": "analyst",
"device_compliant": true,
"tenant": "casino-eu"
}
策略可能需要與資源匹配的「device_compliant=true」和「tenant」。
核對清單(檢查清單)
- 所有應用程序均啟用SSO;默認的MFA,優先級為paskeys。
- RBAC已確定;ABAC/ReBAC添加上下文;JIT/JEA實現。
- PAM保護特權訪問;會議記錄在案。
- HR的SCIM-proviging;離岸板是完全自動化的。
- 秘密是動態的,TTL短;輪換是自動化的。
- 政客在Git中進行考試,在CI中進行測試;有金絲雀布置。
- AuthN/AuthZ的Dashbords和SLO;集中式日誌和UEBA。
- 定期訪問審查和SoD檢查;合並的報告。
FAQ
每個人都需要一個ReBAC嗎?
沒有。對於簡單的環境,RBAC+ABAC足夠。ReBAC在復雜的資源所有權和多項性層次結構中很有用。
可以保留本地帳戶嗎?
僅適用於斷面和離線場景,具有嚴格的限制和定期檢查。
如何減少「角色爆炸」?
提高資源的粒度,使用AWAS/模板,自動化咆哮,並放棄未使用的角色。
底線
成熟的IAM體系結構是SSO+MFA,最低要求權限,自動化JML,集中式策略和可觀察性。通過將RBAC與屬性模型和關系模型結合使用,應用JIT/JEA和PAM,以及自動分配和旋轉秘密,您可以獲得可管理,可驗證和可擴展的訪問,以滿足安全和業務要求。