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