文档

身份和访问管理

MinIO 要求客户端对每个新操作都执行身份验证和授权。

身份验证

验证连接客户端身份的过程。MinIO 要求客户端使用 AWS 签名版本 4 协议 进行身份验证,并支持已弃用的签名版本 2 协议。具体来说,客户端必须提供有效的访问密钥和密钥才能访问任何 S3 或 MinIO 管理 API,例如 PUTGETDELETE 操作。

授权

限制已认证客户端可以在部署上执行的操作和资源的过程。MinIO 使用基于策略的访问控制 (PBAC),其中每个策略描述一个或多个规则,这些规则概述用户或用户组的权限。在创建策略时,MinIO 支持特定于 S3 的 操作条件。默认情况下,MinIO *拒绝*访问用户分配或继承的策略中未明确引用的操作或资源。

身份管理

MinIO 支持内部和外部身份管理

身份提供商 (IDP)

描述

MinIO 内部 IDP

提供内置的身份管理功能。

OpenID

支持通过兼容 OpenID Connect (OIDC) 的服务管理身份。

MinIO 身份验证插件

使用 MinIO 身份验证插件扩展支持自定义外部身份管理器。

Active Directory/LDAP

支持通过 Active Directory 或 LDAP 服务管理身份。

访问管理插件

使用 MinIO 访问管理插件扩展支持自定义外部访问管理器。

身份验证后,MinIO 会根据已验证的身份是否 *被授权* 对指定资源执行操作来允许或拒绝客户端请求。

访问管理

MinIO 使用基于策略的访问控制 (PBAC) 来定义已验证用户有权访问的授权操作和资源。每个策略都描述一个或多个 操作条件,这些操作和条件概述了 用户用户组 的权限。

MinIO 管理策略的创建和存储。将策略分配给用户或组的过程取决于配置的身份提供商 (IDP)

使用MinIO 内部 IDP 部署的 MinIO 需要使用mc admin policy attach 命令显式地将用户关联到一个或多个策略。用户还可以继承其所属 附加的策略。

默认情况下,MinIO *拒绝*访问未被附加或继承策略显式允许的操作或资源。没有显式分配或继承策略的用户无法执行任何 S3 或 MinIO 管理 API 操作。

对于使用外部 IDP 部署的 MinIO,策略分配取决于 IDP 的选择。

OpenID Connect (OIDC)

MinIO 检查 JSON Web 令牌 (JWT) 声明(默认情况下为policy),其中包含要附加到已认证用户的策略名称。如果策略不存在,则用户无法在 MinIO 部署上执行任何操作。

MinIO 不支持将 OIDC 用户身份分配给。相反,IDP 管理员必须将所有必要的策略分配给用户的策略声明。

有关更多信息,请参阅外部管理身份的访问控制

Active Directory / LDAP (AD/LDAP)

MinIO 检查名称与已认证 AD/LDAP 用户的识别名称 (DN) 匹配的策略。

MinIO 还支持查询已认证 AD/LDAP 用户的组成员身份。MinIO 会将名称与每个返回组的 DN 匹配的任何策略分配给用户。

如果没有任何策略与用户 DN *或*用户的任何组 DN 匹配,则用户无法在 MinIO 部署上执行任何操作。

有关更多信息,请参阅外部管理身份的访问控制

MinIO PBAC 构建为与 AWS IAM 策略语法、结构和行为兼容。MinIO 文档尽力涵盖特定于 IAM 的行为和功能。有关 IAM、IAM 策略或 IAM JSON 语法的更完整文档,请参考IAM 文档

Deny 覆盖 Allow

MinIO 遵循 AWS IAM 策略评估规则,其中Deny规则覆盖同一操作/资源上的Allow规则。例如,如果用户有一个显式分配的策略,其中包含一个针对操作/资源的Allow规则,而其某个组有一个分配的策略,其中包含针对该操作/资源的Deny规则,则 MinIO 将仅应用Deny规则。

有关 IAM 策略评估逻辑的更多信息,请参阅 IAM 文档中关于确定帐户内请求是否允许或拒绝的部分。