文件

存取管理

概觀

MinIO 使用基於原則的存取控制 (PBAC) 來定義已驗證使用者有權存取的授權動作和資源。每個原則描述一個或多個動作條件,這些動作和條件概述了使用者使用者群組的權限。

MinIO PBAC 的設計旨在與 AWS IAM 原則語法、結構和行為相容。MinIO 文件盡力涵蓋 IAM 特定的行為和功能。請參考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),例如:

排除清單權限是故意的,因為典型的使用案例並不希望「唯讀」角色在物件儲存資源上具有完整的可探索性(列出所有儲存貯體和物件)。

readwrite

授予對 MinIO 伺服器上所有儲存貯體和物件的讀取和寫入權限。等同於s3:*

diagnostics

授予在 MinIO 部署上執行診斷動作的權限。特別包含以下動作:

writeonly

授予對 MinIO 部署上任何命名空間(儲存貯體和物件路徑)的唯寫權限。PUT 動作必須應用於特定物件位置,而無需任何清單。等同於s3:PutObject 動作。

使用mc admin policy attach將策略關聯到 MinIO 部署上的使用者或群組。

例如,請考慮以下使用者表。每個使用者都被指派一個內建策略或一個支援的動作。此表描述了如果使用者以該使用者身分驗證時,用戶端可以執行的一組操作子集:

使用者

策略

操作

操作

finance 儲存貯體上的readwrite
audit 儲存貯體上的readonly
finance 儲存貯體上執行 PUTGET
audit 儲存貯體上執行 GET

稽核

audit 儲存貯體上的readonly

audit 儲存貯體上執行 GET

管理員

admin:*

所有mc admin命令。

每個使用者只能存取由內建角色明確授予的那些資源和操作。MinIO 預設會拒絕存取任何其他資源或操作。

Deny 會覆蓋 Allow

MinIO 遵循 IAM 策略評估規則,其中 Deny 規則會覆蓋相同動作/資源上的 Allow 規則。例如,如果使用者具有明確指派的策略,其中包含動作/資源的 Allow 規則,而其某個群組具有指派的策略,其中包含該動作/資源的 Deny 規則,則 MinIO 將僅套用 Deny 規則。

如需 IAM 策略評估邏輯的詳細資訊,請參閱 IAM 文件中的判斷是否允許或拒絕帳戶內的請求

策略文件結構

MinIO 策略文件使用與AWS IAM 策略文件相同的結構描述。

以下範例文件提供了建立自訂策略以用於 MinIO 部署的範本。如需 IAM 策略元素的更完整文件,請參閱IAM JSON 策略元素參考

任何單一策略文件的最大大小為 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 資源規格使用 *? 萬用字元。

    根據模式比對* 萬用字元可能會導致策略無意中應用於多個儲存貯體或前置詞。例如,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

控制對DeleteBucket S3 API 操作的存取,以用於具有 x-minio-force-delete 旗標的操作。移除非空的儲存貯體時需要。

s3:GetBucketLocation

控制對 GetBucketLocation S3 API 操作的存取權。

s3:ListAllMyBuckets

控制對 ListBuckets S3 API 操作的存取權。

s3:DeleteObject

控制對 DeleteObject S3 API 操作的存取權。

s3:GetObject

控制對 GetObject S3 API 操作的存取權。

支援下列額外的條件金鑰

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

控制對 ListObjectsV2 S3 API 操作的存取權。

支援下列額外的條件金鑰

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

控制對 PutObject S3 API 操作的存取權。

支援下列額外的條件金鑰

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 操作的存取權。

支援下列額外的條件金鑰

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

控制對 GetObjectTagging S3 API 操作的存取權。

支援下列額外的條件金鑰

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

控制對 DeleteObjectTagging S3 API 操作的存取權。

支援下列額外的條件金鑰

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 操作的存取權。

支援下列額外的條件金鑰

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 操作的存取權。

支援下列額外的條件金鑰

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

控制對 ListBucketVersions S3 API 操作的存取權。

支援下列額外的條件金鑰

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

控制對 PutObjectVersionTagging S3 API 操作的存取權。

支援下列額外的條件金鑰

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

控制對 GetObjectVersionTagging S3 API 操作的存取權。

支援下列額外的條件金鑰

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

控制對 DeleteObjectVersionTagging S3 API 操作的存取權。

支援下列額外的條件金鑰

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 儲存貯體通知相關的 API 操作的 MinIO 擴充功能。

此動作**不**適用於其他 S3 相容服務。

s3:ListenBucketNotification

用於控制與 MinIO 儲存貯體通知相關的 API 操作的 MinIO 擴充功能。

此動作**不**適用於其他 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 擴充功能。

作為 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:Refereraws:SourceIpaws.UserAgent 索引鍵可能很容易被詐騙,因此會造成潛在的安全風險。MinIO 建議僅使用這些條件索引鍵作為第二道安全措施來 _拒絕_ 存取。

絕對不要單獨使用這三個索引鍵來授與存取權。

如需特定 S3 動作所支援的其他索引鍵,請參閱該動作的參考文件。

MinIO 擴充條件索引鍵

MinIO 使用以下擴充索引鍵擴充了 S3 標準條件索引鍵

sts:DurationSeconds

新版本於 MinIO:SERVER RELEASE.2024-02-06T21-36-22Z

指定以秒為單位的時間,以限制由 AssumeRoleWithWebIdentity產生的 _所有_ 安全性權杖服務憑證的持續時間。

此值會覆寫指定給用戶端的 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 主要金鑰

admin:KMSKeyStatus

允許取得 KMS 金鑰狀態

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

允許取得使用者資訊的 GET 權限。

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

允許存取啟動、查詢或停止在具有不同可用儲存空間的集區之間重新平衡物件的權限。

mc admin 原則條件金鑰

MinIO 支援以下條件,以便用於定義 mc admin 動作 的原則。

  • aws:Referer

  • aws:SourceIp

  • aws:UserAgent

  • aws:SecureTransport

  • aws:CurrentTime

  • aws:EpochTime

如需任何列出的條件金鑰的完整資訊,請參閱 IAM 條件元素文件

原則變數

MinIO 支援使用原則變數,以自動將經過驗證的使用者和/或操作的內容替換到使用者已指派的原則中。使用 ${POLICYVARIABLE} 格式在 ConditionResource 定義中指定原則的變數。MinIO 原則變數的功能與 AWS IAM 原則元素:變數和標籤類似。

每個 MinIO 身分提供者 都支援其自身的一組原則變數

MinIO 原則變數

下表包含建議在授權 MinIO 管理使用者 時使用的原則變數清單。

變數

描述

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 會將 ${aws:username} 變數替換為 Resource 欄位中的使用者名稱。然後,MinIO 會評估政策,並授予或撤銷對請求的 API 和資源的存取權。

OpenID 政策變數

下表包含授權 OIDC 管理的使用者 時可使用的支援政策變數列表。

每個變數都對應於作為已驗證使用者 JWT 權杖一部分傳回的聲明。

變數

描述

jwt:sub

傳回使用者的 sub 聲明。

jwt:iss

傳回 ID 權杖中的發行者識別碼聲明。

jwt:aud

傳回 ID 權杖中的受眾聲明。

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 會將 ${jwt:preferred_username} 變數替換為 Resource 欄位中 JWT 權杖中 preferred_username 的值。然後,MinIO 會評估政策,並授予或撤銷對請求的 API 和資源的存取權。

Active Directory / LDAP 政策變數

下表包含授權 AD/LDAP 使用者 時可使用的支援政策變數列表。

變數

描述

ldap:username

已驗證使用者的簡單使用者名稱 (name)。

這與使用者的 DistinguishedName 或 CommonName 不同。

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 會將 ${ldap:username} 變數替換為 Resource 欄位中已驗證使用者的 name 值。然後,MinIO 會評估政策,並授予或撤銷對請求的 API 和資源的存取權。