第 4 版 (V4) 適用於 .NET 的 SDK 正在預覽!若要在預覽中查看此新版本的相關資訊,請參閱 適用於 .NET 的 AWS SDK (第 4 版預覽) 開發人員指南。
請注意,開發套件的 V4 處於預覽狀態,因此其內容可能會有所變更。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
憑證和設定檔解析
會依特定順序 適用於 .NET 的 AWS SDK 搜尋登入資料,並使用目前應用程式的第一個可用集合。
登入資料搜尋順序
-
在 AWS 服務用戶端上明確設定的登入資料,如中所述在應用程式中存取登入資料和設定檔。
注意
該主題位於 特殊考量區段中,因為它不是指定憑證的偏好方法。
-
登入資料設定檔,其名稱由 AWSConfigs.AWSProfileName 中的值指定。
-
登入資料設定檔,名稱為
AWS_PROFILE
環境變數所指定的名稱。 -
[default]
登入資料設定檔。 -
SessionAWSCredentials 是從
AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
和AWS_SESSION_TOKEN
環境變數建立的,如果它們都是非空的。 -
從
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
環境變數建立的 BasicAWSCredentials,如果兩者都是非空的。 -
Amazon EC2 執行個體中繼資料。
如果您的應用程式在 Amazon EC2 執行個體上執行,例如在生產環境中,請使用 IAM 角色,如中所述使用 IAM 角色授予存取權。否則,例如在發行前測試中,將您的登入資料存放在使用您 Web 應用程式在伺服器上可存取之 AWS 登入資料檔案格式的檔案中。
設定檔解析
使用兩種不同的 憑證儲存機制,了解如何設定 適用於 .NET 的 AWS SDK 來使用它們非常重要。AWSConfigs.AWSProfilesLocation 屬性控制 如何 適用於 .NET 的 AWS SDK 尋找登入資料設定檔。
AWSProfilesLocation | 設定檔解析行為 |
---|---|
null (未設定) 或為空 |
如果平台支援 SDK Store,請搜尋 SDK Store,然後在預設位置搜尋共用 AWS 的登入資料檔案。如果設定檔不在這些位置,請搜尋 |
AWS 登入資料檔案格式的檔案路徑 |
只 搜尋指定的檔案中是否有特定名稱的設定檔。 |
使用聯合使用者帳戶登入資料
使用 適用於 .NET 的 AWS SDK (AWSSDK.Core
聯合身分存取權支援表示使用者可以使用 Active Directory 進行身分驗證。自動授與臨時登入資料給使用者。這些臨時登入資料在一小時內有效,會在您的應用程式叫用 AWS 服務時使用。開發套件會管理臨時登入資料。對於網域加入的使用者帳戶,如果您的應用程式呼叫過期,則會自動重新對使用者進行身分驗證和重新整理授與登入資料。(對於非網域加入的帳戶,在重新進行身分驗證前,不會提示使用者輸入登入資料。)
若要在您的 .NET 應用程式中使用此支援,您必須先使用 PowerShell cmdlet 建立角色設定檔。若要了解如何操作,請參閱 AWS Tools for Windows PowerShell 文件。
設定角色描述檔之後,請在應用程式中參考描述檔。有多種方法可以執行此操作,其中一個方法是使用 AWSConfigs.AWSProfileName 屬性,就像使用其他登入資料描述檔一樣。
AWS Security Token Service 組件 (AWSSDK.SecurityToken
指定角色或臨時登入資料
對於在 Amazon EC2 執行個體上執行的應用程式,管理憑證的最安全方式是使用 IAM 角色,如 中所述使用 IAM 角色授予存取權。
對於可供組織外部使用者使用軟體可執行檔的應用程式案例,我們建議您設計軟體以使用臨時安全登入資料。除了提供對 AWS 資源的限制存取之外,這些登入資料還具有在指定期間後過期的好處。如需臨時安全登入資料的詳細資訊,請參閱以下:
使用代理憑證
如果您的軟體 AWS 透過代理與 通訊,您可以使用 服務Config
類別的 ProxyCredentials
屬性來指定代理的登入資料。服務的Config
類別通常是服務主要命名空間的一部分。範例包括:Amazon.AmazonCloudDirectoryConfig中的 AmazonCloudDirectoryConfig 和 Amazon.GameLift 命名空間中的 AmazonGameLiftConfig。 GameLift CloudDirectory
例如,對於 Amazon S3,您可以使用類似以下的程式碼,其中 SecurelyStoredUserName
和 SecurelyStoredPassword
是 NetworkCredential
AmazonS3Config config = new AmazonS3Config();
config.ProxyCredentials = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword);
注意
舊版的開發套件使用 ProxyUsername
和 ProxyPassword
,但這些屬性都已停用。