憑證和設定檔解析 - AWS SDK for .NET

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

憑證和設定檔解析

會依特定順序AWS SDK for .NET搜尋認證,並針對目前的應用程式使用第一個可用的認證集。

認證搜尋順序
  1. 在AWS服務用戶端上明確設定的認證,如中所述存取應用程式中的認證和設定檔

    注意

    該主題位於特殊考量本節中,因為它不是指定憑據的首選方法。

  2. 身份證明設定檔,其名稱由中的值指定AWSConfigs。 AWSProfileName

  3. 具有AWS_PROFILE環境變數所指定名稱的認證設定檔。

  4. [default] 登入資料設定檔。

  5. AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN環境變量創建的會AWSCredentials話,如果它們都是非空的。

  6. 基本AWSCredentials的是從AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY環境變量創建的,如果它們都是非空的。

  7. 適用於 Amazon ECS 任務之任務的 IAM 角色

  8. Amazon EC2 實例中繼資料。

如果您的應用程式在 Amazon EC2 執行個體上執行,例如在生產環境中執行,請按照中所述使用 IAM 角色使用 IAM角色授予存取權。否則,例如在發行前測試中,請將您的認證儲存在使用 Web 應用程式在伺服器上可存取之AWS認證檔案格式的檔案中。

輪廓解析度

使用兩種不同的認證儲存機制,了解如何設定以使用它們非常重要。AWS SDK for .NET的 AWSConfigs. AWSProfilesLocation屬性控制如何查AWS SDK for .NET找憑證配置文件。

AWSProfilesLocation 設定檔解析行為

null (未設定) 或為空

搜尋 SDK 存放區 (如果平台支援),然後在預設位置搜尋共用認AWS證檔案。如果設定檔不在這些位置,請搜尋 ~/.aws/config (Linux 或 macOS) 或 %USERPROFILE%\.aws\config (視窗)。

AWS認證檔案格式的檔案路徑

搜尋指定的檔案中是否有特定名稱的設定檔。

使用聯合使用者帳戶認證

使用 AWS SDK for .NET (AWSSDK.Core 版本 3.1.6.0 及更新版本) 的應用程式可以使用透過 Active Directory 同盟服務 (AD FS) 的同盟使用者帳戶,使用安全性宣告標記語言 (SAML) 來存取AWS服務。

聯合身分存取權支援表示使用者可以使用 Active Directory 進行身分驗證。自動授與臨時登入資料給使用者。這些臨時登入資料 (有效期為一小時) 會在您的應用程式叫用AWS服務時使用。開發套件會管理臨時登入資料。對於網域加入的使用者帳戶,如果您的應用程式呼叫過期,則會自動重新對使用者進行身分驗證和重新整理授與登入資料。(對於 non-domain-joined 帳戶,系統會提示使用者在重新驗證之前輸入認證。)

若要在 .NET 應用程式中使用此支援,您必須先使用 PowerShell 指令程式來設定角色設定檔。要了解如何操作,請參閱AWS Tools for Windows PowerShell文檔

設定角色設定檔後,請參考應用程式中的設定檔。有許多方法可以做到這一點,其中之一是使用 AWSConfigs. AWSProfileName與其他憑據配置文件相同的方式屬性。

AWS Security Token Service件 (AWSSDK. SecurityToken) 提供 SAML 支援以取得AWS認證。若要使用聯合使用者帳戶認證,請確定您的應用程式可以使用此組件。

指定角色或臨時登入資料

對於在 Amazon EC2 執行個體上執行的應用程式,管理登入資料最安全的方式是使用 IAM 角色,如中所述使用 IAM角色授予存取權

對於組織外部使用者可以使用軟體可執行檔的應用程式案例,建議您將軟體設計為使用臨時安全性登入資料。除了提供AWS資源的限制存取權之外,這些認證還具有在指定時間段後到期的好處。如需臨時安全登入資料的詳細資訊,請參閱以下:

使用代理憑證

如果您的軟體透AWS過 Proxy 進行通訊,您可以使用服務Config類別的ProxyCredentials屬性來指定 Proxy 的認證。服務的Config類別通常是服務主要命名空間的一部分。示例包括以下內容:AmazonCloudDirectoryConfigAmazon。 CloudDirectory命名空AmazonGameLiftConfig間和 Amazon。 GameLift命名空間。

例如,對於 Amazon S3,您可以使用類似下列的程式碼,其中SecurelyStoredUserNameSecurelyStoredPasswordNetworkCredential物件中指定的代理使用者名稱和密碼。

AmazonS3Config config = new AmazonS3Config(); config.ProxyCredentials = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword);
注意

舊版的開發套件使用 ProxyUsernameProxyPassword,但這些屬性都已停用。