身份和访问管理
MinIO 要求客户端对每个新操作执行身份验证和授权。
- 身份验证
验证连接客户端身份的过程。MinIO 要求客户端使用 AWS 签名版本 4 协议 进行身份验证,并支持已弃用的签名版本 2 协议。具体来说,客户端必须提供有效的访问密钥和密钥,才能访问任何 S3 或 MinIO 管理 API,例如
PUT
、GET
和DELETE
操作。- 授权
限制已验证的客户端可以在部署上执行的操作和资源的过程。MinIO 使用基于策略的访问控制 (PBAC),每个策略描述一个或多个规则,这些规则概述了用户或用户组的权限。在创建策略时,MinIO 支持 S3 特定的 操作 和 条件。默认情况下,MinIO 拒绝对用户分配的或继承的策略中未明确引用的操作或资源的访问。
身份管理
MinIO 支持内部和外部身份管理
身份提供者 (IDP) |
描述 |
---|---|
提供内置的身份管理功能。 |
|
支持通过 OpenID Connect (OIDC) 兼容服务管理身份。 |
|
支持使用 MinIO 身份验证插件扩展使用自定义外部身份管理器。 |
|
支持通过 Active Directory 或 LDAP 服务管理身份。 |
|
支持使用 MinIO 访问管理插件扩展的自定义外部访问管理器。 |
身份验证后,MinIO 会根据已验证的身份是否授权在指定资源上执行操作,来允许或拒绝客户端请求。
访问管理
MinIO 使用基于策略的访问控制 (PBAC) 来定义已验证用户可以访问的授权操作和资源。每个策略描述一个或多个 操作 和 条件,这些操作和条件概述了 用户 或 组 用户的权限。
MinIO 管理策略的创建和存储。将策略分配给用户或组的过程取决于配置的 身份提供者 (IDP)。
使用 MinIO 内部 IDP 的 MinIO 部署需要使用 mc admin policy attach
命令将用户显式地与策略或策略关联。用户还可以继承分配给其所属的 组 的策略。
默认情况下,MinIO 会拒绝对未经附带或继承的策略明确允许的操作或资源的访问。没有显式分配或继承策略的用户无法执行任何 S3 或 MinIO 管理 API 操作。
对于使用外部 IDP 的 MinIO 部署,策略分配取决于 IDP 的选择。
MinIO 检查包含要分配给已验证用户的策略名称的 JSON Web 令牌 (JWT) 声明(默认情况下为 MinIO 不支持将 OIDC 用户身份分配给 组。相反,IDP 管理员必须将所有必要的策略分配给用户的策略声明。 有关更多信息,请参阅 外部管理身份的访问控制。 |
|
MinIO 检查名称与已验证的 AD/LDAP 用户的已区分名称 (DN) 相匹配的策略。 MinIO 还支持查询已验证的 AD/LDAP 用户的组成员资格。MinIO 会分配名称与每个返回组的 DN 相匹配的任何策略。 如果没有任何策略与用户 DN或任何用户的组 DN 匹配,则用户无法对 MinIO 部署执行任何操作。 有关更多信息,请参阅 外部管理身份的访问控制。 |
MinIO PBAC 旨在与 AWS IAM 策略语法、结构和行为兼容。MinIO 文档尽力涵盖 IAM 特定的行为和功能。请考虑参考 IAM 文档 以获取有关 IAM、IAM 策略或 IAM JSON 语法的更完整文档。
Deny
覆盖 Allow
MinIO 遵循 AWS IAM 策略评估规则,其中 Deny
规则会覆盖同一操作/资源上的 Allow
规则。例如,如果用户具有明确分配的策略,其中包含针对操作/资源的 Allow
规则,而其某个组具有分配的策略,其中包含针对该操作/资源的 Deny
规则,则 MinIO 将仅应用 Deny
规则。
有关 IAM 策略评估逻辑的更多信息,请参阅 IAM 文档中的 确定帐户中请求是否允许或拒绝。