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