中文文档

访问管理

概述

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

MinIO 的 PBAC 是为了与 AWS IAM 策略语法、结构和行为兼容而构建的。 MinIO 文档努力最好地覆盖 IAM 特定行为和功能。 如果您需要更完整的关于 AWS IAM 特定主题的文档,请参考 AWS IAM 文档 <>

mc admin policy 命令支持在 MinIO 部署上创建和管理策略。 请参阅命令参考以获取使用示例。

基于标签的政策条件

在 RELEASE.2022-10-02T19-29-29Z 版本发生变更: 策略可以使用条件来限制用户仅访问具有 特定标签 的对象。

MinIO 支持 基于标签的条件策略 用于限制某些操作仅对具有 特定 标签的对象生效。 在策略的 Condition 语句中使用 s3:ExistingObjectTag/<key>

内置策略

MinIO 为分配给 用户用户组 提供了以下内置策略:

consoleAdmin

授予对MinIO部署上所有资源的所有S3和行政API操作的 完全访问权限。 等同于以下一组 操作:

readonly

授予对MinIO部署上任何对象的只读权限。 GET 操作 必须 应用于一个特定的对象,而不需要任何列举。 等同于以下一组操作:

例如, 这个策略特别支持对特定路径上的对象的GET 操作(例如 GET play/mybucket/object.file),例如:

  • mc cp

  • mc stat

  • mc head

  • mc cat

故意排除了列表权限,因为典型的用例并 不希望 “只读” 角色在对象存储资源上具有 完全的可发现性(列出所有桶和对象)。

readwrite

授予对MinIO服务器上所有桶和对象的读写权限。 等同于 s3:*

diagnostics

授予对MinIO部署执行诊断操作的权限。 具体包括以下操作:

writeonly

授予对MinIO部署的任何命名空间(桶和对象路径)的写权限。 PUT操作 必须 应用到一个特定的对象位置, 而不需要任何列表。 等同于 s3:PutObject 操作。

要在MinIO部署上将策略关联到用户或组, 请使用 mc admin policy attach 命令。

例如,请考虑以下用户表。 每个用户都 被分配了一个 内置策略 或 一个支持的 操作 。 表格描述了如果以该用户身份进行身份验证, 客户端可以执行的操作的子集:

User

Policy

Operations

Operations

readwrite on finance bucket
readonly on audit bucket
PUT and GET on finance bucket.
GET on audit bucket

Auditing

readonly on audit bucket

GET on audit bucket

Admin

admin:*

All mc admin commands.

每个用户只能访问由内置角色 明确 授权的 资源和工作操作。 MinIO默认拒绝访问任何其他资源或 操作。

Deny overrides Allow

MinIO遵循IAM策略评估规则,其中对于相同的操作/资源, 一个 拒绝 规则会覆盖一个 允许 规则。 例如,如果一个用户 被明确分配了一个带有 允许 规则的操作/资源策略, 而其所属的某个组被分配了一个带有 拒绝 规则的操作/资源策略, 那么MinIO将只应用 拒绝 规则。

有关 IAM 策略评估逻辑的更多信息,请参阅 IAM 文档关于 :iam-docs: 确定帐户内是否允许或拒绝请求 <reference_policies_evaluation-logic.html#policy-eval-denyallow>

政策文件结构

MinIO策略文档使用与 AWS IAM策略 文档相同的模式。

以下示例文档提供了一个模板,用于创建与MinIO部署一起使用的自定义策略。 有关IAM策略元素的更完整文档,请参阅 IAM JSON Policy Elements Reference

任何单个策略文档的最大大小为20KiB。 对用户或组附加的策略文档数量没有限制。

{
   "Version" : "2012-10-17",
   "Statement" : [
      {
         "Effect" : "Allow",
         "Action" : [ "s3:<ActionName>", ... ],
         "Resource" : "arn:aws:s3:::*",
         "Condition" : { ... }
      },
      {
         "Effect" : "Deny",
         "Action" : [ "s3:<ActionName>", ... ],
         "Resource" : "arn:aws:s3:::*",
         "Condition" : { ... }
      }
   ]
}
  • 对于 Statement.Action 数组,请指定一个或多个 支持的S3 API操作

  • 对于 Statement.Resource 键,请指定要限制策略的桶或桶前缀。 您可以根据 S3资源规范 使用 *? 通配符字符。

    通配符 * 可能会导致根据 pattern match 对多个桶或前缀意外应用策略。。 例如, arn:aws:s3:::data* 将匹配 datadata_privatedata_internal 这三个桶。 将资源键仅指定为 * 会将策略应用于部署上的所有桶和前缀。

  • 对于 Statement.Condition 键,您可以指定一个或多个 支持的条件

支持的 S3 策略操作

MinIO策略文档支持IAM S3操作键的一个子集 。 这一部分还包括特定操作支持的 条件键 ,这些条件键超出了常见支持的关键集合。

以下操作控制对常见S3操作的访问权限。 接下来的子章节将详细记录更多高级S3操作的相关动作:

s3:*

所有 MinIO S3 操作的选择器。 将此操作应用于给定资源,允许用户对该资源执行 任何 S3操作。

s3:CreateBucket

控制对 CreateBucket S3 API操作的 访问。

s3:DeleteBucket

控制对 DeleteBucket S3 API操作的 访问。

s3:ForceDeleteBucket

控制对带有 x-minio-force-delete 标志的 DeleteBucket S3 API操作的访问。 删除非空存储桶时需要。

s3:GetBucketLocation

控制对 GetBucketLocation S3 API 操作的访问。

s3:ListAllMyBuckets

控制对 ListBuckets S3 API 操作的访问。

s3:DeleteObject

控制对 DeleteObject S3 API 操作的访问。

s3:GetObject

控制对 GetObject S3 API 操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:x-amz-server-side-encryption
s3:x-amz-server-side-encryption-customer-algorithm
s3:ExistingObjectTag/<key>
s3:versionid
s3:ListBucket

控制对 ListObjectsV2 S3 API 操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:prefix
s3:delimiter
s3:max-keys
s3:PutObject

控制对 PutObject S3 API 操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:x-amz-copy-source
s3:x-amz-server-side-encryption
s3:x-amz-server-side-encryption-customer-algorithm
s3:x-amz-metadata-directive
s3:x-amz-storage-class
s3:versionid
s3:object-lock-retain-until-date
s3:object-lock-mode
s3:object-lock-legal-hold
s3:RequestObjectTagKeys
s3:RequestObjectTag/<key>
s3:PutObjectTagging

控制对 PutObjectTagging S3 API 操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:versionid
s3:ExistingObjectTag/<key>
s3:RequestObjectTagKeys
s3:RequestObjectTag/<key>
s3:GetObjectTagging

控制对 GetObjectTagging S3 API 操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:versionid
s3:ExistingObjectTag/<key>
s3:DeleteObjectTagging

控制对 DeleteObjectTagging S3 API 操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:versionid
s3:ExistingObjectTag/<key>

存储桶配置

s3:GetBucketPolicy

控制对 GetBucketPolicy S3 API 操作的访问。

s3:PutBucketPolicy

控制对 PutBucketPolicy S3 API操作的访问。

s3:DeleteBucketPolicy

控制对 DeleteBucketPolicy S3 API操作的访问。

s3:GetBucketTagging

控制对 GetBucketTagging S3 API操作的访问。

s3:PutBucketTagging

控制对 PutBucketTagging S3 API操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:RequestObjectTagKeys
s3:RequestObjectTag/<key>

分段上传

s3:AbortMultipartUpload

控制对 AbortMultipartUpload S3 API操作的访问。

s3:ListMultipartUploadParts

控制对 ListParts S3 API 操作的访问。

s3:ListBucketMultipartUploads

控制对 ListMultipartUploads S3 API操作的访问。

版本控制和保留

s3:PutBucketVersioning

控制对 PutBucketVersioning S3 API操作的访问。

s3:GetBucketVersioning

控制对 GetBucketVersioning S3 API操作的访问。

s3:DeleteObjectVersion

控制对 DeleteObjectVersion S3 API操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:versionid
s3:ExistingObjectTag/<key>
s3:ListBucketVersions

控制对 ListBucketVersions S3 API操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:prefix
s3:delimiter
s3:max-keys
s3:PutObjectVersionTagging

控制对 PutObjectVersionTagging S3 API操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:versionid
s3:ExistingObjectTag/<key>
s3:RequestObjectTagKeys
s3:RequestObjectTag/<key>
s3:GetObjectVersionTagging

控制对 GetObjectVersionTagging S3 API操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:versionid
s3:ExistingObjectTag/<key>
s3:DeleteObjectVersionTagging

控制对 DeleteObjectVersionTagging S3 API操作的访问。

支持以下附加 :ref: 条件键 <minio-policy-conditions> :

s3:versionid
s3:ExistingObjectTag/<key>
s3:GetObjectVersion

控制对 GetObjectVersion S3 API操作的访问。

支持以下附加 条件键

s3:versionid
s3:ExistingObjectTag/<key>
s3:BypassGovernanceRetention

控制对处于 GOVERNANCE 保留模式下锁定的对象的以下S3 API操作的访问:

  • s3:PutObjectRetention

  • s3:PutObject

  • s3:DeleteObject

更多信息,请参阅S3文档中关于 s3:BypassGovernanceRetention 的内容。

支持以下附加 条件键

s3:versionid
s3:object-lock-remaining-retention-days
s3:object-lock-retain-until-date
s3:object-lock-mode
s3:object-lock-legal-hold
s3:RequestObjectTagKeys
s3:RequestObjectTag/<key>
s3:PutObjectRetention

控制对 PutObjectRetention S3 API操作的访问。

对于任何指定了 保留元数据PutObject 操作,这是必需的。

支持以下附加 条件键

s3:x-amz-server-side-encryption
s3:x-amz-server-side-encryption-customer-algorithm
s3:x-amz-object-lock-remaining-retention-days
s3:x-amz-object-lock-retain-until-date
s3:x-amz-object-lock-mode
s3:versionid
s3:GetObjectRetention

控制对 GetObjectRetention S3 API操作的访问。

对于在 GetObjectHeadObject 操作的响应中包含 对象锁定元数据,这是必需的。

支持以下附加 条件键

s3:x-amz-server-side-encryption
s3:x-amz-server-side-encryption-customer-algorithm
s3:versionid
s3:GetObjectLegalHold

控制对 GetObjectLegalHold S3 API操作的访问。

对于在 GetObjectHeadObject 操作的响应中包含 对象锁定元数据,这是必需的。

s3:PutObjectLegalHold

控制对 PutObjectLegalHold S3 API操作的访问。

对于任何指定了 合法保留元数据PutObject 操作,这是必需的。

支持以下附加 条件键

s3:x-amz-server-side-encryption
s3:x-amz-server-side-encryption-customer-algorithm
s3:object-lock-legal-hold
s3:versionid
s3:GetBucketObjectLockConfiguration

控制对 GetObjectLockConfiguration S3 API操作的访问。

s3:PutBucketObjectLockConfiguration

控制对 PutObjectLockConfiguration S3 API操作的访问。

存储桶通知

s3:GetBucketNotification

控制对 GetBucketNotification S3 API操作的访问。

s3:PutBucketNotification

控制对 PutBucketNotification S3 API操作的访问。

s3:ListenNotification

MinIO 扩展,用于控制与 MinIO 存储桶通知相关的 API 操作。

这个操作 打算用于其他 S3 兼容服务。

s3:ListenBucketNotification

MinIO 扩展,用于控制与 MinIO 存储桶通知相关的 API 操作。

这个操作 打算用于其他 S3 兼容服务。

对象生命周期管理

s3:PutLifecycleConfiguration

控制对 PutLifecycleConfiguration S3 API操作的访问。

s3:GetLifecycleConfiguration

控制对 GetLifecycleConfiguration S3 API操作的访问。

对象加密

s3:PutEncryptionConfiguration

控制对 PutEncryptionConfiguration S3 API操作的访问。

s3:GetEncryptionConfiguration

控制对 GetEncryptionConfiguration S3 API操作的访问。

桶复制

s3:GetReplicationConfiguration

控制对 GetBucketReplication S3 API操作的访问。

s3:PutReplicationConfiguration

控制对 PutBucketReplication S3 API操作的访问。

s3:ReplicateObject

用于控制与 服务器端存储桶复制 相关 API 操作的 MinIO 扩展。

这是 MinIO 服务器端复制所必需的。

支持以下附加 条件键

s3:versionid
s3:ExistingObjectTag/<key>
s3:ReplicateDelete

用于控制与 服务器端存储桶复制 相关 API 操作的 MinIO 扩展。

需要用于同步 delete 操作 作为 MinIO 服务器端复制的一部分。

支持以下附加 条件键

s3:versionid
s3:ExistingObjectTag/<key>
s3:ReplicateTags

用于控制与 服务器端存储桶复制 相关 API 操作的 MinIO 扩展。

这是 MinIO 服务器端复制所必需的。

支持以下附加 条件键

s3:versionid
s3:ExistingObjectTag/<key>
s3:GetObjectVersionForReplication

用于控制与 服务器端存储桶复制 相关 API 操作的 MinIO 扩展。

这是 MinIO 服务器端复制所必需的。

支持以下附加 条件键

s3:versionid
s3:ExistingObjectTag/<key>

支持的 S3 策略条件键

MinIO 策略文档支持 IAM 的 条件语句

每个条件元素由 运算符 和条件键组成。 MinIO 支持 IAM 条件键的子集。 对于任何列出的条件键的完整信息,请参阅 IAM 条件元素文档

MinIO 支持以下条件键,用于所有受支持的 操作:

  • aws:Referer

  • aws:SourceIp

  • aws:UserAgent

  • aws:SecureTransport

  • aws:CurrentTime

  • aws:EpochTime

  • aws:PrincipalType

  • aws:userid

  • aws:username

  • x-amz-content-sha256

  • s3:signatureAge

警告

aws:Referer, aws:SourceIpaws.UserAgent 键可能很容易被伪造,因此存在潜在的安全风险。 MinIO 建议仅将这些条件键用于 拒绝 访问,作为次要安全措施。

永远 不要单独使用这三个键来授权访问。

对于特定 S3 操作支持的其他键,请参阅该操作的参考文档。

MinIO 扩展条件键

MinIO扩展了S3标准条件键,使用了以下扩展键:

sts:DurationSeconds

在 MinIO 版本加入: SERVER RELEASE.2024-02-06T21-36-22Z

指定以秒为单位的时间,以限制由:ref:minio-sts-assumerolewithwebidentity 生成的 所有 Security Token Service凭证的有效期限。

此值将覆盖客户端指定的 DurationSeconds 字段。

例如:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Effect": "Allow",
            "Action": [
               "sts:AssumeRoleWithWebIdentity"
            ],
            "Condition": {
               "NumericLessThanEquals": {
                  "sts:DurationSeconds": "300"
               }
            }
      }
   ]
}

mc admin 策略操作键

MinIO 支持以下操作,用于定义 mc admin 操作的 策略。 这些操作 适用于 MinIO 部署, 并且 适用于其他 S3 兼容 服务:

admin:*

选择器用于所有管理操作键

admin:Heal

允许 heal 命令

admin:StorageInfo

允许列出服务器信息

admin:DataUsageInfo

允许列出数据使用信息

admin:TopLocksInfo

允许列出顶级锁

admin:Profiling

允许进行性能分析

admin:ServerTrace

允许列出服务器跟踪

admin:ConsoleLog

允许在终端上列出控制台日志

admin:KMSCreateKey

允许创建新的 KMS 主密钥

虽然该选项仍受支持,但 kms:CreateKey 更受青睐。

admin:KMSKeyStatus

允许获取 KMS 密钥状态

虽然该选项仍受支持,但 kms:KeyStatus 更受青睐。

admin:ServerInfo

允许列出服务器信息

admin:OBDInfo

允许获取集群板载诊断信息

admin:ServerUpdate

允许 MinIO 二进制更新

admin:ServiceRestart

允许重新启动 MinIO 服务。

admin:ServiceStop

允许停止 MinIO 服务。

admin:ConfigUpdate

允许 MinIO 配置管理

admin:CreateUser

允许创建 MinIO 用户

admin:DeleteUser

允许删除 MinIO 用户

admin:ListUsers

允许列出用户权限

admin:EnableUser

允许启用用户权限

admin:DisableUser

允许禁用用户权限

admin:GetUser

允许获取用户信息的权限

admin:AddUserToGroup

允许将用户添加到组权限

admin:RemoveUserFromGroup

允许删除用户组权限

admin:GetGroup

允许获取群组信息

admin:ListGroups

允许列出组权限

admin:EnableGroup

允许启用组权限

admin:DisableGroup

允许禁用组权限

admin:CreatePolicy

允许创建策略权限

admin:DeletePolicy

允许删除策略权限

admin:GetPolicy

允许获得策略许可

admin:AttachUserOrGroupPolicy

允许将策略附加到用户/组

admin:ListUserPolicies

允许列出用户策略

admin:CreateServiceAccount

允许创建 MinIO 访问密钥

admin:UpdateServiceAccount

允许更新 MinIO 访问密钥

admin:RemoveServiceAccount

允许删除 MinIO 访问密钥

admin:ListServiceAccounts

允许列出 MinIO 访问密钥

admin:SetBucketQuota

允许设置存储桶配额

admin:GetBucketQuota

允许获取桶配额

admin:SetBucketTarget

允许设置存储桶目标

admin:GetBucketTarget

允许获取存储桶目标

admin:SetTier

允许使用 mc ilm tier 命令 创建和修改远程存储层。

admin:ListTier

允许使用 mc ilm tier 命令 列出已配置的远程存储层。

admin:BandwidthMonitor

允许检索与当前带宽消耗相关的指标。

admin:Prometheus

允许访问MinIO的 指标。 仅在MinIO需要身份验证才能抓取指标时才需要。

admin:ListBatchJobs

允许访问列出活动的批处理作业。

admin:DescribeBatchJobs

允许查看正在运行批量作业的定义详情。

admin:StartBatchJob

允许用户开始批量作业的运行。

admin:CancelBatchJob

允许用户停止当前正在进行的批量作业。

admin:Rebalance

允许访问启动、查询或停止在具有不同可用存储空间的池之间重新平衡对象的操作。

KMS 政策行动密钥

MinIO 支持按策略限制密钥管理服务 (KMS) 操作。

您可以通过以下 KMS 操作限制策略中的 KMS 活动:

kms:Status

检查 KMS 的状态。

kms:Metrics

获取 Prometheus 格式的指标。

kms:API

列出支持的 API 端点。

kms:Version

读取 KMS 版本。

kms:CreateKey

创建新的 KMS 密钥。

kms:ListKeys

读取现有 KMS 密钥列表。

kms:KeyStatus

读取指定 KMS 密钥的状态。

要选择所有可用的 kms 策略操作,请使用 kms:*

在 RELEASE.2024-07-16T23-46-41Z 版本发生变更: KMS 操作可受资源或资源前缀的限制。 通配符 * 可用来将 KMS 操作策略应用于与前缀匹配的所有资源。

例如,以下策略文档允许用户为任何以 keys-abc-myuser- 开头的资源列出密钥、创建新密钥和检查密钥状态。

mc admin 策略条件键

MinIO 支持以下条件,用于在与 mc admin 命令相关的 策略定义中限制 操作

  • aws:Referer

  • aws:SourceIp

  • aws:UserAgent

  • aws:SecureTransport

  • aws:CurrentTime

  • aws:EpochTime

有关任何列出的条件键的完整信息,请参阅 IAM 条件元素文档

政策变量

MinIO 支持使用策略变量,以便自动将来自已验证用户和/或操作的上下文替换到用户分配的策略或策略中。 在 ConditionResource 定义中,使用 ${POLICYVARIABLE} 格式来指定策略中的变量。 MinIO 策略变量与 AWS IAM 策略元素:变量和标签 的功能类似。

每个 MinIO 身份提供者 都支持自己的一组策略变量:

MinIO 策略变量

以下表格包含了一组推荐的政策变量,用于授权 MinIO 管理的用户

Variable

描述

aws:referrer

在认证API调用中,HTTP头中的引用者(referrer)。

aws:SourceIp

在认证API调用中,HTTP头中的源IP地址。

aws:username

与认证API调用关联的用户名称。

例如,以下策略使用变量来替换认证用户的用户名,作为 Resource 字段的一部分,以便用户只能访问与他们用户名匹配的前缀:

{
"Version": "2012-10-17",
"Statement": [
      {
         "Action": ["s3:ListBucket"],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::mybucket"],
         "Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
      },
      {
         "Action": [
         "s3:GetObject",
         "s3:PutObject"
         ],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"]
      }
   ]
}

MinIO 在 Resource 字段中用用户名替换了 ${aws:username} 变量。 然后,MinIO 会评估该策略,并授予或撤销对请求的API和资源的访问权限。

OpenID 策略变量

下表包含了一份用于授权 OIDC管理的用户 的支持策略变量列表。

每个变量都对应于认证用户JWT令牌中返回的一部分声明:

Variable

描述

jwt:sub

返回用户的 sub 声明。

jwt:iss

从 ID 令牌返回颁发者标识符声明。

jwt:aud

从ID令牌中返回Audience声明。

jwt:jti

从客户端认证信息中返回JWT ID声明。

jwt:upn

从客户端认证信息中返回用户主体名称声明。

jwt:name

返回用户的 name 声明。

jwt:groups

返回用户的 groups 声明。

jwt:given_name

返回用户的 given_name 声明。

jwt:family_name

返回用户的 family_name 声明。

jwt:middle_name

返回用户的 middle_name 声明。

jwt:nickname

返回用户的 nickname 声明。

jwt:preferred_username

返回用户的 preferred_username 声明。

jwt:profile

返回用户的 profile 声明。

jwt:picture

返回用户的 picture 声明。

jwt:website

返回用户的 website 声明。

jwt:email

返回用户的 email 声明。

jwt:gender

返回用户的 gender 声明。

jwt:birthdate

返回用户的 birthdate 声明。

jwt:phone_number

返回用户的 phone_number 声明。

jwt:address

返回用户的 address 声明。

jwt:scope

返回用户的 scope 声明。

jwt:client_id

返回用户的 client_id 声明。

请访问 OpenID Connect Core 1.0 文档以获取有关这些范围更多的信息。 您选择的OIDC提供者可能有更具体的文档。

例如,以下策略使用变量来代替认证用户的 preferred_username 作为 Resource 字段的一部分,以便用户只能访问与他们的用户名匹配的前缀:

{
"Version": "2012-10-17",
"Statement": [
      {
         "Action": ["s3:ListBucket"],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::mybucket"],
         "Condition": {"StringLike": {"s3:prefix": ["${jwt:preferred_username}/*"]}}
      },
      {
         "Action": [
         "s3:GetObject",
         "s3:PutObject"
         ],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::mybucket/${jwt:preferred_username}/*"
      }
   ]
}

MinIO 在 Resource 字段中替换 ${jwt:preferred_username} 变量,用JWT令牌中的 preferred_username 的值。 然后,MinIO 会评估该策略,并授予或撤销对请求的 API 和资源的访问权限。

Active Directory/LDAP 策略变量

下表包含了一组支持的策略变量,用于授权 AD/LDAP用户

Variable

描述

ldap:username

已认证用户的简单用户名( name )。

这与用户的Distinguished Name(DN)或Common Name(CN)是不同的。

ldap:user

已认证用户使用的Distinguished Name。

ldap:groups

已认证用户所属组的Distinguished Name。

例如,以下策略使用变量将已认证用户的 name 替换为 Resource 字段的一部分,以便用户只能访问与他们的名字匹配的前缀:

{
"Version": "2012-10-17",
"Statement": [
      {
         "Action": ["s3:ListBucket"],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::mybucket"],
         "Condition": {"StringLike": {"s3:prefix": ["${ldap:username}/*"]}}
      },
      {
         "Action": [
         "s3:GetObject",
         "s3:PutObject"
         ],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::mybucket/${ldap:username}/*"]
      }
   ]
}

MinIO将 Resource 字段中的 ${ldap:username} 变量替换为已认证用户 name 的值。 然后,MinIO 评估该策略并授予或撤销对所请求的 API 和资源的访问权限。

Join Slack 商业支持购买咨询