本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用入口 AWS CLI 網站登入
從工具的 4.1.538 版開始 PowerShell,設定 SSO 認證和啟動 AWS 存取入口網站工作階段的建議方法是使用Initialize-AWSSSOConfiguration
和Invoke-AWSSSOLogin
指令程式,如中所述。設定工具驗證 AWS如果您無法存取 PowerShell (或更新版本) 的工具版本,或無法使用這些指令程式,您仍然可以使用 AWS CLI.
透過設定 PowerShell 要使用 IAM 身分中心的工具 AWS CLI。
如果您尚未這麼做,請務必在繼續之前啟用和設定 IAM 身分中心。
有關如何設定 PowerShell 要使用 IAM 身分中心工具的資訊,請參閱 AWS SDK 和工具參考指南中 IAM 身分中心身分中心主題的步驟 2。 AWS CLI 完成此組態之後,您的系統應該包含下列元素:
-
您可以在 AWS CLI執行應用程式之前啟動 AWS 存取入口網站工作階段。
-
包含設定 AWS
config
檔的共用檔案,其中包含可從的「工具」參考的一組組態值 PowerShell。[default]
若要尋找此檔案的位置,請參閱 AWS SDK 和工具參考指南中的共用檔案位置。在傳送要求之前, PowerShell 使用設定檔的 SSO 權杖提供者取得認證的工具 AWS。這個sso_role_name
值是連接到 IAM 身分中心權限集的 IAM 角色,應該允許存取應用程式中 AWS 服務 使用的角色。下列範例
config
檔案顯示使用[default]
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
重要
您的工作 PowerShell 階段必須安裝並匯入下列模組,以便 SSO 解析能夠運作:
-
AWS.Tools.SSO
-
AWS.Tools.SSOOIDC
如果您使用的是較舊版本的工具, PowerShell 並且沒有這些模塊,則會出現類似以下內容的錯誤:「找不到彙編 AWSSDK .SSOIDC...」。
啟動 AWS 存取入口網站會話
在執行存取的命令之前 AWS 服務,您需要使用中存 AWS 取入口網站工作階段,以便 Windows 適用的工具 PowerShell 可以使用 IAM 身分中心驗證來解析登入資料。根據您設定的工作階段長度,您的存取最終會過期,而 Windows 的工具 PowerShell 會遇到驗證錯誤。若要登入 AWS 存取入口網站,請在中執行下列命令 AWS CLI。
aws sso login
由於您使用的是[default]
設定檔,因此您不需要使用此--profile
選項呼叫命令。如果您的 SSO 權杖提供者組態使用具名的設定檔,則aws sso login --profile
改為此命令。有關命名配置文件的更多信息,請參閱 AWS SDK 和工具參考指南中的配置文件部分。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 身分中心與的工具搭配使用的範例 PowerShell。假設如下:
-
您已啟用 IAM Identity Center,並依照本主題先前所述進行設定。SSO 屬性位於
[default]
設定檔中。 -
當您透過使用登入時
aws sso login
,該使用者至少擁有 Amazon S3 的唯讀許可。 AWS CLI -
部分 S3 儲存貯體可供該使用者檢視。
使用下列 PowerShell 命令來顯示 S3 儲存貯體的清單:
Install-Module AWS.Tools.Installer Install-AWSToolsModule S3 # And if using an older version of the AWS Tools for PowerShell: Install-AWSToolsModule SSO, SSOOIDC # In older versions of the AWS Tools for PowerShell, we're not invoking a cmdlet from these modules directly, # so we must import them explicitly: Import-Module AWS.Tools.SSO Import-Module AWS.Tools.SSOOIDC # Older versions of the AWS Tools for PowerShell don't support the SSO login flow, so login with the CLI aws sso login # Now we can invoke cmdlets using the SSO profile Get-S3Bucket
如上所述,由於您正在使用[default]
設定檔,因此不需要使用此-ProfileName
選項呼叫Get-S3Bucket
指令程式。如果您的 SSO 權杖提供者組態使用已命名的設定檔,則命令為 Get-S3Bucket -ProfileName
。有關命名配置文件的更多信息,請參閱 AWS SDK 和工具參考指南中的配置文件部分。named-profile
其他資訊
-
有關「工具」身份驗證的更多選項 PowerShell,例如使用配置文件和環境變量,請參閱 AWS SDK 和工具參考指南中的配置一章。
某些指令需要指定「 AWS 區域」。有許多方法可以這樣做,包括
-Region
cmdlet 選項、[default]
設定檔和AWS_REGION
環境變數。如需詳細資訊,請參閱本指南指定 AWS 區域中的以及 AWS SDK 和工具參考指南中的AWS 區域。-
如需了解有關最佳實務的資訊,請參閱 IAM 使用者指南中的 IAM 安全最佳實務。
-
若要建立短期 AWS 登入資料,請參閱 IAM 使用者指南中的臨時安全登入資料。
-
若要瞭解其他憑證提供者,請參閱 AWS SDK 和工具參考指南中的標準化憑證提供者。