適用於 .NET 的 AWS SDK 使用 驗證 AWS - 適用於 .NET 的 AWS SDK (V4)

第 4 版 (V4) 適用於 .NET 的 AWS SDK 已發行!

如需有關中斷變更和遷移應用程式的資訊,請參閱遷移主題

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

適用於 .NET 的 AWS SDK 使用 驗證 AWS

在使用 進行開發 AWS 時,您必須建立程式碼向 進行身分驗證的方式 AWS 服務。視環境和您可用的存取權而定,您可以透過不同方式設定 AWS 資源的程式設計 AWS 存取。

若要查看 SDK 的各種身分驗證方法,請參閱 AWS SDKs和工具參考指南中的身分驗證和存取

本主題假設新的使用者正在本機開發,其雇主尚未提供身分驗證方法,且將使用 AWS IAM Identity Center 取得臨時登入資料。如果您的環境不適用這些假設,則本主題中的有些資訊可能不適用您的環境,或者有些資訊可能已經提供給您。

設定此環境需要幾個步驟,總結如下:

使用主控台登入資料登入

您可以使用現有的 AWS 管理主控台登入憑證,以程式設計方式存取 AWS 服務。在瀏覽器型身分驗證流程之後, AWS 會產生臨時登入資料,可用於 CLI AWS AWS Tools for PowerShell 和適用於 .NET v4 的 AWS SDK 等本機開發工具。

透過此程序,您可以使用在初始帳戶設定期間建立的根登入資料、IAM 使用者或身分提供者的聯合身分,以及 AWS CLI 進行身分驗證,或 AWS Tools for PowerShell 自動為您管理臨時登入資料。這種方法無需在本機存放長期登入資料,可增強安全性。當您從 AWS Tools for PowerShell 執行 Invoke-AWSLogin cmdlet 或從 CLI AWS 執行 aws login命令時,您可以從作用中主控台工作階段中選取 ,或透過瀏覽器型身分驗證流程登入,這樣會自動產生臨時登入資料。臨時登入資料字符將在 15 分鐘內過期,但適用於 .NET v4 的 AWS SDK 會在請求期間在需要時自動重新整理字符。

重要

如果您使用主控台登入資料進行身分驗證,您的應用程式必須參考下列 NuGet 套件,才能進行 AWS 登入解析:

  • AWSSDK.Signin

未參考這些套件將導致執行時間例外狀況。

按照上述為 AWS Tools for PowerShell 或 CLI AWS 提供的步驟登入後, config 檔案看起來會像這樣。

[default] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1 [my-dev-profile] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1

啟用和設定 IAM Identity Center

若要使用 IAM Identity Center,必須先啟用和設定它。若要查看如何為 SDK 執行此操作的詳細資訊,請參閱 SDK 和工具參考指南中的 IAM Identity Center 身分驗證主題中的步驟 1https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html AWS SDKs 具體來說,請遵循我沒有透過 IAM Identity Center 建立存取權限下的任何必要說明。

設定 SDK 以使用 IAM Identity Center。

有關如何設定 SDK 以使用 IAM Identity Center 的資訊,請參閱 SDK AWS SDKs 和工具參考指南IAM Identity Center 身分驗證主題的步驟 2。完成此組態之後,您的系統應該包含下列元素:

  • 在執行應用程式之前 AWS CLI,您用來啟動 AWS 存取入口網站工作階段的 。

  • 包含[default]設定檔的共用 AWS config檔案,其中包含一組可從 SDK 參考的組態值。若要尋找此檔案的位置,請參閱 AWS SDK 和工具參考指南中的共用檔案位置。 適用於 .NET 的 AWS SDK 使用描述檔的 SSO 字符提供者,在傳送請求至 之前取得憑證 AWS。該 sso_role_name 值是連接到 IAM Identity Center 許可集合的 IAM 角色,應該允許存取應用程式中使用的 AWS 服務 。

    下列範例 config 檔案顯示使用 SSO 權杖提供者設定的預設設定檔。設定檔的 sso_session 設定是指已命名的 sso-session 區段。sso-session 區段包含啟動 AWS 存取入口網站工作階段的設定。

    [default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://provided-domain.awsapps.com/start sso_registration_scopes = sso:account:access
重要

如果您使用 AWS IAM Identity Center 進行身分驗證,您的應用程式必須參考下列 NuGet 套件,以便 SSO 解析能夠運作:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

未參考這些套件將導致執行時間例外狀況。

啟動 AWS 存取入口網站工作階段

在執行存取的應用程式之前 AWS 服務,您需要 SDK 的作用中 AWS 存取入口網站工作階段,才能使用 IAM Identity Center 身分驗證來解析登入資料。視您設定的工作階段長度而定,您的存取最終會過期,且 SDK 將遇到身分驗證錯誤。若要登入 AWS 存取入口網站,請在 中執行下列命令 AWS CLI。

aws sso login

由於您有預設的設定檔設定,因此您不需要使用 --profile 選項呼叫指令。如果您的 SSO 權杖提供者組態使用已命名的設定檔,則命令為 aws sso login --profile named-profile

若要測試您是否已經有作用中的工作階段,請執行下列 AWS CLI 命令。

aws sts get-caller-identity

對此命令的回應,應報告共用 config 檔案中設定的 IAM Identity Center 帳戶和許可集合。

注意

如果您已有作用中的 AWS 存取入口網站工作階段並執行 aws sso login,則不需要提供登入資料。

登入程序可能會提示您允許 AWS CLI 存取您的資料。由於 AWS CLI 建置在適用於 Python 的 SDK 之上,因此許可訊息可能包含botocore名稱的變化。

其他資訊

  • 如需有關在開發環境中使用 IAM Identity Center 和 SSO 的其他資訊,請參閱 進階身分驗證一節單一登入中的 。此資訊包括替代和更進階的方法,以及向您展示如何使用這些方法的教學課程。

  • 如需 SDK 身分驗證的更多選項,例如使用設定檔和環境變數,請參閱 AWS SDKs和工具參考指南中的組態章節。

  • 如需了解有關最佳實務的資訊,請參閱 IAM 使用者指南中的 IAM 安全最佳實務

  • 若要建立短期 AWS 登入資料,請參閱《IAM 使用者指南》中的暫時安全登入資料。

  • 若要瞭解其他憑證提供者,請參閱 AWS SDK 和工具參考指南中的標準化憑證提供者