適用於 .NET 的 AWS SDK V3 已進入維護模式。
我們建議您遷移至 適用於 .NET 的 AWS SDK V4。如需如何遷移的其他詳細資訊和資訊,請參閱我們的維護模式公告
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 設定 SDK 身分驗證 AWS
在使用 進行開發 AWS 時,您必須建立程式碼向 進行身分驗證的方式 AWS 服務。視環境和您可用的存取權而定,您可以透過不同方式設定 AWS 資源的程式設計 AWS 存取。
若要查看 SDK 的各種身分驗證方法,請參閱 AWS SDKs和工具參考指南中的身分驗證和存取。
本主題假設新的使用者正在本機開發,其雇主尚未提供身分驗證方法,且將使用 AWS IAM Identity Center 取得臨時登入資料。如果您的環境不適用這些假設,則本主題中的有些資訊可能不適用您的環境,或者有些資訊可能已經提供給您。
設定此環境需要幾個步驟,總結如下:
使用主控台登入資料登入
您可以使用現有的 AWS 管理主控台登入憑證,以程式設計方式存取 AWS 服務。在瀏覽器型身分驗證流程之後, AWS 會產生臨時憑證,可用於 CLI AWS AWS Tools for PowerShell 和適用於 .NET v3 的 AWS SDK 等本機開發工具。
透過此程序,您可以使用在初始帳戶設定期間建立的根登入資料、IAM 使用者或來自身分提供者的聯合身分,以及 AWS CLI 進行身分驗證,或 AWS Tools for PowerShell 自動為您管理臨時登入資料。這種方法消除了在本機存放長期登入資料的需求,進而增強安全性。
當您從 AWS CLI 執行 aws login命令時,您可以從作用中主控台工作階段中選取 ,或透過瀏覽器型身分驗證流程登入,這樣會自動產生臨時登入資料。臨時登入資料字符將在 15 分鐘內過期,但適用於 .NET v3 的 AWS SDK 會在請求期間視需要自動重新整理字符。
警告
.NET Framework 目標不支援此功能。
重要
如果您使用主控台登入資料進行身分驗證,您的應用程式必須參考下列 NuGet 套件,才能進行 AWS 登入解析:
-
AWSSDK.Signin
未參考這些套件將導致執行時間例外狀況。
按照 CLI AWS 上提供的步驟登入後, config 檔案看起來會像這樣。
[default] login_session = arn:aws:iam::0123456789012:user/usernameregion = us-east-1 [my-dev-profile] login_session = arn:aws:iam::0123456789012:user/usernameregion = us-east-1
啟用和設定 IAM Identity Center
若要使用 IAM Identity Center,必須先啟用和設定它。若要查看如何為 SDK 執行此操作的詳細資訊,請參閱 SDK 和工具參考指南中的 IAM Identity Center 身分驗證主題中的步驟 1。 https://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]設定檔的共用 AWSconfig檔案,其中包含一組可從 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 =111122223333sso_role_name =SampleRoleregion = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/startsso_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名稱的變化。