本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 設定 IAM Identity Center 身分驗證 AWS CLI
本主題說明如何 AWS CLI 使用 AWS IAM Identity Center (IAM Identity Center) 設定 以擷取要執行 AWS CLI 命令的憑證。使用 IAM Identity Center 對使用者進行身分驗證,以取得憑證以透過 config
檔案執行 AWS CLI 命令的主要方式有兩種:
-
(建議) SSO 權杖提供者組態。
-
舊版不可重新整理的配置。
如需使用不使用帳戶 ID 和角色的不記名身分驗證的相關資訊,請參閱 Amazon 使用者指南 中的設定 以 AWS CLI 搭配 使用 CodeCatalyst 。 CodeCatalyst
注意
如需搭配 AWS CLI 命令使用 IAM Identity Center 的引導程序,請參閱 教學課程:使用 IAM Identity Center 在 中執行 Amazon S3 命令 AWS CLI。
主題
必要條件
-
安裝 AWS CLI。如需詳細資訊,請參閱安裝或更新至最新版本的 AWS CLI。
-
您必須先在 IAM Identity Center 中存取SSO身分驗證。選擇下列其中一種方法來存取您的 AWS 憑證。
請遵循 AWS IAM Identity Center 使用者指南的入門說明。此程序會啟用 IAM Identity Center、建立管理使用者,並新增適當的最低權限許可集。
注意
建立套用最低權限許可的許可集。建議您使用預先定義的 PowerUserAccess
許可集,除非您的雇主已為此目的建立了自訂許可集。
結束入口網站並再次登入,以查看 AWS 帳戶、程式設計存取詳細資訊,以及 Administrator
或 的選項PowerUserAccess
。使用 PowerUserAccess
時,選取 SDK。
AWS 透過身分提供者的入口網站登入 。如果您的雲端管理員已授予您 PowerUserAccess
(開發人員) 許可,您會看到您擁有存取權 AWS 帳戶 的 和許可集。您會在許可集名稱旁,看到使用該許可集手動或以程式設計方式存取帳戶的選項。
若您自訂實作,可能會產生不同體驗,例如不同的許可集名稱。若您不確定要使用哪個許可集,請聯絡您的 IT 團隊尋求協助。
AWS 透過您的 AWS 存取入口網站登入 。如果您的 Cloud Administrator 已授予您 PowerUserAccess
(開發人員) 許可,您會看到您有權存取 AWS 帳戶 的 和許可集。您會在許可集名稱旁,看到使用該許可集手動或以程式設計方式存取帳戶的選項。
請聯絡您的 IT 團隊尋求協助。
取得 IAM Identity Center 的存取權後,請執行下列動作來收集您的 IAM Identity Center 資訊:
-
在 AWS 存取入口網站中,選取您用於開發的許可集,然後選取存取金鑰連結。
-
在取得憑證對話方塊中,選擇與您的作業系統相符的索引標籤。
-
選擇 IAM Identity Center 憑證方法,以取得執行 所需的
SSO Start URL
和SSO Region
值aws configure sso
。如需要註冊哪些範圍值的資訊,請參閱 IAM Identity Center 使用者指南 中的 OAuth2.0 存取範圍。
使用 aws
configure sso
精靈設定您的設定檔
若要設定 的 IAM Identity Center 設定檔 AWS CLI:
-
在偏好的終端機中,執行
aws configure sso
命令。 -
會 AWS CLI 嘗試為 IAM Identity Center 帳戶的登入程序開啟預設瀏覽器。此程序可能會提示您允許 AWS CLI 存取您的資料。由於 AWS CLI 建置在 SDK for Python 的 之上,因此許可訊息可能包含
botocore
名稱的變化。如果 AWS CLI 無法開啟瀏覽器 ,則會顯示手動啟動登入程序的指示。
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://device.sso.us-west-2.amazonaws.com/
Then enter the code:QCFK-N451
-
從顯示的清單中選擇要使用 AWS 的帳戶。如果您獲得僅使用一個帳戶的授權, AWS CLI 會自動選取該帳戶並略過提示。
There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (
123456789011
) ProductionAccount, production-account-admin@example.com (123456789022
) -
從顯示的清單中選取要使用IAM的角色。如果只有一個角色可用, AWS CLI 會自動選取該角色並略過提示。
Using the account ID
123456789011
There are 2 roles available to you. > ReadOnly FullAccess -
指定預設輸出格式 、要傳送命令的預設值 AWS 區域,以及設定檔 的名稱。如果您指定
default
作為設定檔名稱,此設定檔會成為使用的預設設定檔。在下列範例中,使用者會輸入預設區域、預設輸出格式和設定檔的名稱。CLI default client Region [None]:
us-west-2
<ENTER>CLI default output format [None]:
json
<ENTER>CLI profile name [123456789011_ReadOnly]:
my-dev-profile
<ENTER> -
最後一則訊息說明完成的設定檔組態。您現在可以使用此設定檔來請求憑證。使用
aws sso login
命令來請求和擷取執行命令所需的憑證。如需說明,請參閱 登入 IAM Identity Center 工作階段。
這些步驟會導致在config
檔案中建立 sso-session
區段和具名設定檔,如下所示:
使用 aws configure sso-session
精靈只設定 sso-session
區段
注意
此組態與舊版 IAM Identity Center 不相容。
aws configure sso-session
命令會更新~/.aws/config
檔案中的sso-session
區段。執行 aws configure sso-session
命令並提供 IAM Identity Center 啟動,URL以及 AWS 託管 IAM Identity Center 目錄的區域。
$
aws configure sso-session
SSO session name:
my-sso
SSO start URL [None]:
https://my-sso-portal.awsapps.com/start
SSO region [None]:
us-east-1
SSO registration scopes [None]:
sso:account:access
使用 config
檔案手動設定
IAM Identity Center 組態資訊會儲存在 config
檔案中,並且可以使用文字編輯器編輯。若要手動將 IAM Identity Center 支援新增至具名設定檔,您必須將金鑰和值新增至 config
檔案。
config
檔案的 sso-session
區段會用來將用來取得SSO存取權杖的組態變數分組,然後可用來取得 AWS 憑證。使用下列的設定:
您可以定義sso-session
區段並將其與設定檔建立關聯。sso_region
和 sso_start_url
設定必須在 sso-session
區段中設定。一般而言, sso_account_id
和 sso_role_name
必須在 profile
區段中設定,以便 SDK可以請求SSO憑證。
下列範例會將 設定為SDK請求SSO憑證,並支援自動權杖重新整理:
[profile
dev
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole
[sso-sessionmy-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
這也讓 sso-session
組態能在多個設定檔中重複使用:
[profile
dev
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole
[profileprod
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole2
[sso-sessionmy-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
不過,權SSO杖組態的所有案例sso_role_name
不需要 sso_account_id
和 。如果您的應用程式僅使用支援不記名身分驗證 AWS 的服務,則不需要傳統 AWS 憑證。無記名身分驗證是一種身分HTTP驗證機制,它使用稱為無記名權杖的安全權杖。在這種情況下,sso_account_id
和 sso_role_name
並非必要資訊。請參閱 AWS 服務的個別指南,判斷其是否支援承載權杖授權。
此外,註冊範圍也可以設定為 sso-session
的一部分。Scope 是 2.0 OAuth 中的機制,用於限制應用程式對使用者帳戶的存取。應用程式可以請求一個或多個範圍,則合法給應用程式的存取字符將僅限於授予的範圍。這些範圍會定義請求授權給已註冊OIDC用戶端的許可,以及用戶端擷取的存取權杖。下列範例設定 sso_registration_scopes
以提供列出帳戶/角色的存取權限:
[sso-session
my-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
sso_registration_scopes =sso:account:access
身分驗證字符會以基於工作階段名稱的檔案名稱快取至 sso/cache
目錄下的磁碟。
注意
使用舊版不可重新整理的組態,不支援自動字符重新整理。建議使用SSO權杖組態。
若要手動將 IAM Identity Center 支援新增至具名設定檔,您必須將下列金鑰和值新增至config
檔案中的設定檔定義。
您可以在.aws/config
檔案中包含任何其他有效的金鑰和值。下列範例是 IAM Identity Center 設定檔:
[profile
my-sso-profile
] sso_start_url =https://my-sso-portal.awsapps.com/start
sso_region =us-west-2
sso_account_id =111122223333
sso_role_name =SSOReadOnlyRole
region =us-west-2
output =json
若要執行命令,您必須先登入 IAM Identity Center 工作階段請求和擷取您的臨時憑證。
如需 config
和 credentials
檔案的詳細資訊,請參閱 中的組態和憑證檔案設定 AWS CLI。
登入 IAM Identity Center 工作階段
注意
登入程序可能會提示您允許 AWS CLI 存取您的資料。由於 AWS CLI 是建置在 SDK for Python 的 之上,因此許可訊息可能包含botocore
名稱的變化。
若要擷取和快取一組 IAM Identity Center 憑證,請為 執行下列命令 AWS CLI ,以開啟預設瀏覽器並驗證IAM您的 Identity Center 登入。
$
aws sso login --profile my-dev-profile
SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.
Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start
您的 IAM Identity Center 工作階段憑證會快取,而 AWS CLI 會使用它們來安全地擷取設定檔中指定IAM角色的 AWS 憑證。
如果 AWS CLI 無法開啟瀏覽器,它會提示您自行開啟瀏覽器,並輸入指定的程式碼。
$
aws sso login --profile
my-dev-profile
Using a browser, open the following URL:
https://device.sso.us-west-2.amazonaws.com/
and enter the following code:QCFK-N451
您也可以指定使用 aws sso login
指令的 --sso-session
參數登入時要使用的 sso-session
設定檔。sso-session
此選項不適用於舊版 IAM Identity Center。
$
aws sso login --sso-session
my-dev-session
驗證權杖會快取至~/.aws/sso/cache
目錄下的磁碟,並以 為基礎的檔案名稱sso_start_url
。
使用 IAM Identity Center 設定檔執行命令
登入後,您可以使用您的憑證來使用關聯的具名設定檔叫用 AWS CLI 命令。下列範例顯示使用設定檔的 命令:
$
aws sts get-caller-identity --profile
my-dev-profile
只要您已登入 IAM Identity Center,且這些快取的憑證尚未過期, 就會在需要時 AWS CLI 自動續約過期的 AWS 憑證。但是,如果 IAM Identity Center 憑證過期,您必須再次登入 IAM Identity Center 帳戶,明確續約。
登出 IAM Identity Center 工作階段
使用 IAM Identity Center 設定檔完成時,您可以讓憑證過期,或執行下列命令來刪除快取的憑證。
$
aws sso logout
Successfully signed out of all SSO profiles.
故障診斷
如果您使用 遇到問題 AWS CLI,請參閱 對 的錯誤進行故障診斷 AWS CLI 以取得疑難排解步驟。
相關資源
其他資源如下所示。
-
aws configure sso
第 AWS CLI 2 版參考中的 -
aws configure sso-session
第 AWS CLI 2 版參考中的 -
aws sso login
第 AWS CLI 2 版參考中的 -
aws sso logout
第 AWS CLI 2 版參考中的 -
在 Amazon 使用者指南中設定 以 AWS CLI 搭配 使用 CodeCatalyst CodeCatalyst