簡體   English   中英

向規范ID授予權限時,API“ aws s3”和“ aws s3api”之間的區別

[英]Difference between the APIs `aws s3` and `aws s3api` when granting permissions to a canonical ID

為了將文件上傳到s3存儲桶,我們使用以下CLI命令(該命令可以正常運行):

aws s3api put-object --grant-full-control id=e2cxxxxxxxxx --bucket my_bucket --key folder/filename --body filename

aws s3api不支持上傳大於5GB的文件,我們將不得不盡快開始支持。 我嘗試使用aws s3 (高級API)進行上傳。 現在,命令如下所示:

aws s3 cp filename s3://my_bucket/folder/filename --grants full=id=e2cxxxxxxxxx

但是,此命令引發An error occurred (AccessDenied) when calling the UploadPart operation: Access Denied

我試圖了解兩者之間的區別,以及為什么一個拋出AccessDenied而另一個沒有拋出。

s3api命令集是與低級S3 API的1:1映射。 s3命令集增加了一些更高級別的功能,例如同步 為此,它通常需要多個API級權限。 因此,在后台,一個簡單的aws s3 cp命令可能會使用多個低級API,並且調用者需要每個API的權限。

您需要在IAM策略的“操作”部分中添加所有低級API。

沒有簡單的方法來檢查高級命令使用的低級API的列表是什么。 在您的示例中,看起來好像缺少了UploadPart 您應該嘗試將其添加到用戶/角色/組策略中,然后重試直到獲得所有這些( "Actions" : ["s3:Uploadpart", ...] )您也可以嘗試具有管理員權限的用戶( "Actions" : "s3:*" ),並將Cloudtrail配置為從日志中分析一個特定命令使用的所有S3 API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM