我正在按照本教程將檔案上傳到 AWS S3 存盤桶。
作者AppConfiguration用于配置 AWS:
public class AppConfiguration : IAppConfiguration
{
// Keep the following details in appsettings.config file or DB or Enivironment variable
// Get those values from it and assign to the below varibales. Based on the approach , modify the below code.
public AppConfiguration()
{
BucketName = "";
Region = "";
AwsAccessKey = "";
AwsSecretAccessKey = "";
AwsSessionToken = "";
}
public string BucketName { get; set; }
public string Region { get; set; }
public string AwsAccessKey { get; set; }
public string AwsSecretAccessKey { get; set; }
public string AwsSessionToken { get; set; }
}
其中,有一個AwsSessionToken我不知道如何檢索/生成的屬性。
如何檢索會話令牌?
uj5u.com熱心網友回復:
TLDR:使用共享的 AWS 憑證檔案并洗掉與您的應用程式中的憑證相關的所有代碼,包括憑證本身,因為它們存在安全風險。
永遠、永遠、永遠、永遠、永遠、永遠、永遠、永遠在應用程式檔案中存盤憑據。
以下是適用于 .NET 開發人員指南的 AWS 開發工具包針對憑證發出重要警告的內容:
不要將文字訪問密鑰放在應用程式檔案中。如果這樣做,例如,如果您將專案上傳到公共存盤庫,則會產生意外暴露您的憑據的風險。
不要在專案區域中包含包含憑據的檔案。
這幾乎在其他地方也得到了重申:
我們建議您永遠不要在任何生產檔案中將您的 AWS 訪問密鑰直接添加到客戶端。許多開發人員的帳戶因泄露的密鑰而受到損害。
相反,請使用在 .NET SDK 的默認憑據提供程式鏈中提供憑據的方法,以安全地向您的 .NET 應用程式提供憑據。
它比創建 POCO 或在代碼中處理憑據更容易、更簡潔。
對于本地開發,我總是更喜歡共享 AWS 憑證檔案,您可以自己創建或使用aws configureAWS CLI 進行設定。AWS 開發工具包將自動獲取憑證,您無需在代碼中指定任何內容。
使用 AWS 憑證檔案具有以下優勢:
- 您的專案憑據存盤在您的專案之外,因此不會意外將它們提交到版本控制中。
- 您可以在一處定義和命名多組憑據。
- 您可以輕松地在專案之間重復使用相同的憑據。
- 其他 AWS 開發工具包和工具支持相同的憑證檔案。這允許您使用其他工具重用您的憑據。
只是請不要對憑據進行硬編碼,無論您做什么。
僅供參考:會話令牌用于驗證臨時 AWS 憑證。您的訪問密鑰 ID 和秘密訪問密鑰是身份驗證的永久方法,直到它們被停用/洗掉,因此您根本不需要擔心會話令牌。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/428689.html
上一篇:如何在NodeJS中為不同檔案版本的AWSS3物件生成預簽名url?
下一篇:全面評估S3訪問
