簡體   English   中英

使用Python和boto3向AWS中的S3對象添加權限

[英]Add permission to a S3 object in AWS using Python and boto3

我正在編寫代碼以向S3中的存儲桶中的對象添加權限。 這將在已經存在的權限上添加一個權限,然后我要對該文件執行操作,然后刪除保留原始權限的創建的權限。

我想使用python的boto3庫執行此操作。

到目前為止,我編寫的代碼是-

object_acl = s3.ObjectAcl(bucket_name,filename)
response = object_acl.put(AccessControlPolicy={
        'Grants': [
            {
                'Grantee': {
                    'DisplayName': 'DefaultPermisson',
                    'ID': '66414256532656',
                    'Type': 'CanonicalUser'
                  },
                'Permission': 'FULL_CONTROL'
            },
        ],

    })
print response 

這將產生錯誤,並且我無法創建新的權限。 需要幫助。

除了授予文件臨時下載訪問權限之外,最合適的解決方案是使用Amazon S3預簽名URL

默認情況下,Amazon S3中的所有對象都是私有的。 然后,您可以添加權限,以便其他人可以訪問您的對象。 這可以通過以下方式完成:

  • 對單個對象的訪問控制列表權限
  • 桶策略 (根據路徑,IP地址,引薦來源網址等,授予廣泛的訪問權限)
  • IAM用戶和組 (向具有AWS憑證的用戶授予權限)
  • 預先簽署的網址

可以使用預簽名URL來授予對S3對象的訪問權限,作為“覆蓋”訪問控制的一種方式。 通常的私有對象可以通過附加過期時間和簽名來通過URL訪問。 這是無需Web服務器即可提供私人內容的好方法。

您可以提供一個僅臨時訪問所需人員/應用程序的URL,而不是向所有人臨時開放訪問權限。

您說您的目標是“給予臨時許可,以將文件從S3下載到EC2實例的臨時文件夾中” 為此,只需讓您的應用程序生成預簽名URL,然后就可以使用該URL來下載文件。 無需更改 S3對象的權限

看到:

暫無
暫無

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

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