簡體   English   中英

如何不將Boto3客戶端憑據硬編碼到Python3 / Kivy腳本中

[英]How not to hard code Boto3 client credentials in to Python3 / Kivy script

我試圖將憑證隱藏到位於kivy應用程序(python3)中的boto3客戶端。 boto3用於SecretsManager,以保存其他憑據以進行RDS數據庫訪問。

    client = session.client(
        service_name='secretsmanager',
        region_name=region_name,
        aws_access_key_id='AK########.....'

我不想硬編碼我的訪問密鑰,秘密等

我曾考慮過為該客戶端分配一個特定的IAM角色,從理論上講,它將給我boto3所需的角色/訪問權限,但我不知道該怎么做。

我還使用cognito進行登錄(身份驗證); 我可能會建立一個附屬於這些用戶的組,然后通過此組獲得對boto3客戶端的信任/訪問權限(我認為這是可行的)。

有更好的解決方案還是我的工作流程全錯了?!

非常感謝!

硬編碼訪問密鑰ID和秘密訪問密鑰的另一種方法是使用Amazon Cognito身份池,該池會生成具有一組權限的角色。 我建議你看看到GETIDGetCredentialsForIdentity在Boto3 API調用。

根據文檔 ,這樣做的方法有多種,您可以讀取環境變量,文件,共享文件配置(.aws / credentials文件...)。

我建議使用庫中的秘密來獲取那些密鑰。

如果您正在尋找一種快速的方法,則在主機內使用共享憑據(項目4)將不是一個大問題(IMO)。

如果發生任何問題,您只需禁用這些信用憑證並生成一個新的信用憑證。

暫無
暫無

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

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