簡體   English   中英

將 boto3 與臨時憑據一起使用

[英]Using boto3 with temporary credentials

我想使用 boto3 將文件上傳到 AWS S3。 但我只能臨時訪問 S3,由不受我控制的網絡服務提供。 我獲得了以下憑據信息:

    {
        "key": <string>,
        "x-amz-algorithm": <string>,
        "x-amz-credential": <string>,
        "x-amz-date": <string>,
        "policy": <string>,
        "x-amz-signature": <string>
    }

據我所知,這些信息可用於例如 POST 請求。 但我無法找出如何將此信息與 boto3 命令結合使用

s3 = boto3.client('s3')

通常需要aws_access_key_idaws_secret_access_key 此處的這篇文章表明,這應該是可能的:

您應該通過 AWS 安全令牌服務 (STS) 生成臨時憑證,而不是簽署 URL(通常在通過 web 瀏覽器進行調用時使用)

[...]

然后,您的 Python 應用程序將在調用 boto 時使用這些憑據

但我無法找到如何為 boto 客戶端提供臨時憑據。

看起來您已經獲得了Amazon S3 預簽名 URLs 這是一種授予對特定 Amazon S3 命令的臨時訪問權限的方法,帶有授權請求的散列簽名。

雖然訪問密鑰和密鑰用於生成請求,但您無法從請求中提取密鑰 (相反,它用於創建簽名。)因此,您不能使用 boto3 使用提供的信息發出請求。 這完全是故意的。

使用安全令牌服務生成臨時憑證不同於生成預簽名的 URL。 STS 將提供可供 boto3 使用的憑據。 但是,在向您提供訪問信息時,他們並沒有這樣做。

暫無
暫無

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

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