![](/img/trans.png)
[英]What should I do to fix "The AWS Access Key Id you provided does not exist in our records" using boto3
[英]How do I rotate my AWS IAM user access and secret key using boto3?
我們正在使用 Python AWS SDK ( boto3
) 連接到 S3。
我們有一個 static 訪問和秘密令牌,但是 my.network 並不安全。
我不能使用 another.network 發送請求,所以有沒有辦法在每次請求后更改訪問密鑰和密鑰?
我可以在安全數據庫中保存一個新令牌以發送另一個請求,但重要的是在使用該令牌后,它會過期。
我在找什么:
send: curl https://aws.endpoint/refresh/token
response: {“new_access_token”:”blablabla”, “new_secret_token”:”blablablabla”}
如果必須,您可以結合使用iam.create_access_key
、 iam.get_access_key_last_used
、 iam.update_access_key
和iam.delete_access_key
API 操作來輪換密鑰。
請記住,每個用戶最多只能有 2 個訪問密鑰,因此您必須使用create_access_key
創建一個新訪問密鑰,禁用/禁用當前(舊)訪問密鑰( get_access_key_last_used
& update_access_key
),將您的訪問密鑰更改為下一個應用程序代碼中的一個,然后最后刪除當前的一個delete_access_key
。
但是, AWS 訪問密鑰是 IAM 用戶或 AWS 賬戶根用戶的長期憑證; 您可以定期輪換它們,但在這種情況下我不會首先這樣做。
您的最佳解決方案將取決於您使用的服務。
例如,如果使用 EC2 實例調用 S3,則不要使用/嵌入/傳遞/讀取訪問密鑰,而是使用短期臨時安全憑證,這些憑證將通過啟動具有 S3 訪問角色的 EC2 實例來提供。
如果您在本地使用此腳本,則可以使用AWS Security Token Service (AWS STS) ,它使您能夠為 AWS IAM 用戶/聯合用戶(單點登錄等)請求臨時的、有限權限的憑證。 您會尋找GetSessionToken
API 操作( 此處為 Boto3 SDK 文檔)。
在這兩種情況下,憑據都包含一個安全令牌,指示憑據何時過期並且它們是有意短暫存在的,以幫助降低您的風險,以防憑據被意外暴露。
閱讀: 管理 AWS 訪問密鑰的最佳實踐
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.