MinIO 对所有传入请求强制执行身份验证和授权。
管理员可以使用 MinIO 控制台or一个 S3 兼容的命令行工具
例如mc用于在 MinIO 租户上配置 IAM。
这些页面在 Kubernetes 上的 MinIO 租户环境中记录 MinIO IAM。参见baremetal:minio-authentication-and-identity-management有关更完整的文档。
一个 MinIO用户是一个至少包含访问密钥和密钥的凭据的身份。MinIO 要求所有传入请求必须包含与现有用户匹配的凭据。
如果 MinIO 成功验证针对内部管理或外部管理身份的传入请求,MinIO随后检查该身份是否授权发出请求。请参阅访问管理有关授权的更多信息。
MinIO 默认支持直接在 MinIO 租户上创建和管理用户。MinIO也支持配置外部身份提供商(IDP), 例如 Active Directory 或 OpenID,MinIO 可以在认证过程中查询由外部 IDP 管理的身份。 参见Operator Examples例如实现。
看用户管理有关使用 MinIO 控制台在 MinIO 租户上执行用户管理的教程。以下列表包括常见的身份管理程序:
看MinIO 用户有关 MinIO 用户的更完整文档。
在 MinIO 之后验证一个用户, MinIO 检查指定的用户是授权执行所请求的操作。MinIO 使用基于策略的访问控制(PBAC)来定义客户端可以访问的操作和资源。
MinIO 策略是带有 JSON 文档的IAM兼容语法每个 MinIO 用户可以拥有一attached policy for defining its scope of access. MinIO also supports creating 附加策略用于 定义其访问范围。MinIO 还支持创建群组用户组, 其中用户继承附加到组的策略。一个组可以有一附加策略用于定义其成员资格的访问范围。
因此,给定用户的访问权限包括其明确附加的策略集合和所有从其组成员身份继承的策略。 只有当用户的完整策略集明确允许访问所需操作时,MinIO才会处理请求的操作。和该操作的资源。
MinIO PBAC 默认采用拒绝原则,即 MinIO 会拒绝访问任何未经明确允许的操作或资源。明确地由用户附加或继承的策略允许。MinIO也如果两个或更多策略在访问特定操作或资源时发生冲突,将优先采用拒绝规则。
看Group Management和策略管理有关使用 MinIO 控制台分别执行组和策略管理的教程,请参阅以下内容。以下列表包含常见的访问管理流程:
看MinIO Groups和MinIO 策略有关 MinIO 组和策略的更完整文档。
MinIO 支持配置 TLS 用于加密通过网络传输的数据。MinIO Operator 使用 Kubernetes 自动生成 TLS x.509 证书certificates.k8s.ioAPI。Kubernetes TLS API 在批准通过 API 发出的证书签名请求(CSR)时,使用集群引导过程中指定的证书颁发机构(CA)。MinIO Operator 为以下每个域名生成证书:
*.minio-hl.namespace.svc.cluster.local匹配租户中每个 MinIO Pod 的主机名。
minio-hl.namespace.svc.cluster.local匹配与租户中所有 MinIO Pod 对应的无头服务。
minio.namespace.cluster.local匹配与 MinIO 租户对应的服务。Kubernetes Pod 在对 MinIO 租户执行操作时通常使用此服务。
minio-console-svc.namespace.cluster.local匹配租户中所有 MinIO Console Pod 对应的服务。
*.minio-kes-hl-svc.namespace.svc.cluster.local匹配租户中每个 MinIO KES Pod 的主机名。
minio-kes-hl-svc.namespace.svc.cluster.local匹配租户中所有 MinIO KES Pod 对应的无头服务。
Note
Thenamespace和cluster.local字段将根据部署 MinIO Tenant 的 Kubernetes 命名空间而有所不同和Kubernetes 集群 DNS 设置。
Kubernetes pods 默认情况下不会不自动信任通过Kubernetes TLS API生成的证书。对于应用程序内部到 Kubernetes 集群(即在集群中 Pod 上运行的应用程序),您可以通过手动 将 Kubernetes CA 添加到 Pod 的系统信任存储区来实现update-ca-certificates实用工具:
cp /var/run/secrets/kubernetes.io/serviceaccount/ca.crt /usr/local/share/ca-certificates/
update-ca-certificates
对于应用程序外部到 Kubernetes 集群,您必须配置 适当的 Ingress 资源以将流量路由到 MinIO 租户。 完全验证的 TLS 连接要求取决于具体的 Ingress 配置。Ingress 配置超出了本文档的范围。请参阅Kubernetes Ingress如需更完整的指导。
MinIO Operator 还支持使用用户生成的 x.509 TLS 证书和证书颁发机构 (CA) 来部署 MinIO 租户。MinIO 支持Server Name Indication (SNI)扩展功能,允许 管理员指定多个自定义TLS证书,以支持通过多个域对租户进行HTTPS 访问。参见用户生成的TLS证书用于MinIO对象存储更多信息。
MinIO 租户支持使用外部密钥管理服务(KMS)对对象进行服务器端加密(SSE-S3),例如 Hashicorp Vault、Thales CipherTrust(前身为 Gemalto Keysecure)和 Amazon KMS。
查看 MinIOOperator Examples有关创建支持 SSE-S3 的 MinIO 租户对象规范的指导。