MinIO IAM 的核心是建立在與 AWS 身分和存取管理 (IAM) 的相容性之上,並在
無論環境為何,都將該框架呈現給應用程式和使用者 - 在不同的公有雲、私有雲和邊緣提供相同的功能。
MinIO 擴展了 AWS IAM 的相容性,支援流行的外部身分提供者,例如
ActiveDirectory/LDAP、Okta 和 Keycloak,允許管理員將身分管理卸載到其組織偏好的 SSO 解決方案。
管理員將身分管理卸載到其組織偏好的 SSO 解決方案。
在物件儲存的世界中,使用者不會登入資料儲存區 - 而是應用程式會登入。因此,MinIO IAM 旨在支援手動(靜態)和程式化(動態)以應用程式為中心的身分管理。對於手動建立身分,客戶可以使用 MinIO 主控台。對於程式化建立身分,客戶可以使用 MinIO 的 `mc` 命令列介面。
MinIO 支援內部身分管理功能。當使用 MinIO 的內部管理時,建立新使用者身分遵循存取金鑰和密碼金鑰憑證框架。應用程式將使用這些憑證在每次對 MinIO 叢集執行操作時進行驗證。MinIO 建議每個應用程式建立一個使用者,以透過利用使用者驗證和身分管理機制來減輕洩漏長期使用者憑證相關的安全風險。MinIO 不限制可以管理的使用者數量,並且使用者數量對系統效能的影響可忽略不計。
MinIO 也支援領先的第三方外部身分提供者 (IDP)。這些獨立系統專門用於建立、驗證和管理使用者身分。支援的 IDP 包括
當使用外部 IDP 時,應用程式必須使用 MinIO 安全權杖服務 (STS) API 來佈建自我到期的使用者憑證。雖然應用程式需要實作 STS API 才能存取此功能,但一旦實作,應用程式就可以完全依賴外部 IDP 進行驗證來存取 MinIO。此外,STS 產生的自我到期憑證減輕了洩漏長期使用者憑證相關的安全風險。
除了內部和外部使用者身分外,MinIO 主控台還支援建立服務帳戶。服務帳戶是由自動產生的存取金鑰和密碼金鑰組成的簡單身分。服務帳戶會連結到建立它的使用者帳戶。
已驗證的使用者可以產生任意數量的子服務帳戶,每個帳戶的權限都來自父使用者。父使用者可以在帳戶建立期間進一步限制服務帳戶的權限。服務帳戶可與 MinIO 的內部和支援的外部身分管理系統搭配使用。對於外部 IDP,服務帳戶可以簡化為應用程式佈建新憑證的工作流程,方法是允許管理員或應用程式擁有者使用其外部憑證登入 MinIO 主控台,並為其各種應用程式佈建必要的服務帳戶憑證。
驗證應用程式的身分只是保護對資料儲存區存取的一半。另一半是為應用程式可以存取的資源和操作設定嚴格的控制和指導方針。MinIO 存取管理使用與 AWS IAM 相容的基於原則的存取控制 (PBAC) 來控制已驗證應用程式的授權。
每個原則都是一個規則清單,定義了允許或拒絕的確切資源和操作。MinIO 使用預設拒絕行為,減少因錯誤而導致暴露的可能性,因此給定的原則只需要描述允許的最小動作和資源集。原則細化到單個動作或資源 - 例如,僅允許對特定儲存貯體或甚至是儲存貯體字首執行 GET 操作。
每個使用者身分可以有一個明確指派的原則。MinIO 也支援建立群組。每個群組都有一個指派的原則,並且該群組中的所有使用者都會繼承該原則。給定使用者的完整權限集是其明確指派和繼承原則的組合。拒絕規則始終會覆蓋允許規則,因此即使群組提供廣泛的允許權限,使用者的明確指派的拒絕原則也會覆蓋那些繼承的權限。
MinIO 存取管理不提供權限提升的路徑 - 應用程式只能取得管理員或應用程式擁有者允許的權限,這透過明確指派的使用者政策或繼承的群組政策來實現。對於使用 STS API 透過外部身分提供者進行身份驗證的應用程式,STS API 允許進一步縮減政策範圍。同樣地,服務帳戶允許在從其父使用者繼承的權限之上,再限制其權限。