本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 AWS CLI 使用IAM身分識別中心驗證
本主題提供有關如何 AWS CLI 使用 AWS IAM Identity Center (IAMIdentity Center) 設定以擷取認證以執行 AWS CLI 命令的指示。主要有兩種方法可透過 IAM Identity Center 驗證使用者,以取得透過config
檔案執行 AWS CLI 命令的認證:
-
(建議) SSO 權杖提供者組態。
-
舊版不可重新整理的配置。
如需使用不使用帳戶 ID 和角色的承載身份驗證的相關資訊,請參閱 Amazon 使用 CodeCatalyst 者指南 CodeCatalyst中的設定以使用 AWS CLI 與。
注意
如需將身IAM分識別中心與 AWS CLI 指令搭配使用的引導程序,請參閱教學課程:使用IAM身分識別中心執行 Amazon S3 命令。
主題
必要條件
-
安裝 AWS CLI. 如需詳細資訊,請參閱 安裝或更新到最新版本的 AWS CLI。
-
您必須先擁有IAM身分識別中心內的SSO驗證存取權。選擇下列其中一種方法來存取您的 AWS 認證。
請遵循 AWS IAM Identity Center 使用者指南的入門說明。此程序會啟動 IAM Identity Center、建立系統管理使用者,並新增適當的最低權限權限集。
注意
建立套用最低權限權限的權限集。建議您使用預先定義的 PowerUserAccess
許可集,除非您的雇主已為此目的建立了自訂許可集。
結束入口網站並再次登入 AWS 帳戶,以查看您的程式設計存取詳細資料,以及Administrator
或PowerUserAccess
的選項。使用PowerUserAccess
時選取SDK。
AWS 透過身分提供者的入口網站登入。如果您的 Cloud 管理員已授予您 PowerUserAccess
(開發人員) 權限,您會看到您 AWS 帳戶 有權存取的權限以及您的權限集。您會在許可集名稱旁,看到使用該許可集手動或以程式設計方式存取帳戶的選項。
若您自訂實作,可能會產生不同體驗,例如不同的許可集名稱。若您不確定要使用哪個許可集,請聯絡您的 IT 團隊尋求協助。
AWS 透過您的 AWS 存取入口網站登入。如果您的 Cloud 管理員已授予您 PowerUserAccess
(開發人員) 權限,您會看到您 AWS 帳戶 有權存取的權限以及您的權限集。您會在許可集名稱旁,看到使用該許可集手動或以程式設計方式存取帳戶的選項。
請聯絡您的 IT 團隊尋求協助。
取得IAM身分識別中心的存取權後,請執行下列動作來收集您的IAM身分識別中心資訊:
-
在您的 AWS 存取入口網站中,選取您用於開發的權限集,然後選取 [存取金鑰] 連結。
-
在 [取得認證] 對話方塊中,選擇符合您作業系統的索引標籤。
-
選擇IAM身分識別中心認證方法,以取得您需要執行的
SSO Start URL
和SSO Region
值aws configure sso
。如需要註冊哪些範圍值的相關資訊,請參閱IAM身分識別中心使用者指南中的 OAuth2.0 存取範圍。
使用 aws
configure sso
精靈設定您的設定檔
若要為您的IAM身分識別中心設定檔 AWS CLI:
-
在您偏好的終端機中,執行
aws configure sso
指令。 -
AWS CLI 嘗試為您的IAM身分中心帳戶的登入程序開啟預設瀏覽器。此過程可能會提示您允許 AWS CLI 訪問您的數據。由 AWS CLI 於建置在SDK用於 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身分識別中心工作階段。
這些步驟會導致在檔案中建立sso-session
截面和具名設定config
檔,如下所示:
使用 aws configure sso-session
精靈只設定 sso-session
區段
注意
此組態與舊版IAM身分識別中心不相容。
指aws configure sso-session
令會更新~/.aws/config
檔案中的sso-session
區段。執行命aws configure sso-session
令,並提供您的IAM身分識別中心啟動URL和裝載IAM身分識別中心目錄的 AWS 區域。
$
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識別中心規劃資訊儲存在config
檔案中,並且可以使用文字編輯器進行編輯。若要手動將 IAM Identity Center 支援新增至具名的設定檔,您必須將金鑰和值新增至config
檔案。
該config
文件的sso-session
部分用於對配置變量進行分組以獲SSO取訪問令牌,然後可以使用該訪問令牌來獲取 AWS 憑據。使用下列的設定:
您可以定義sso-session
截面並將其與輪廓相關聯。必須在區段中sso_start_url
設定sso_region
和設sso-session
定。一般而言,sso_account_id
且sso_role_name
必須在profile
區段中設定,才SDK能要求SSO認證。
下列範例會設定要求SSO認證,並支援自動權杖重新整SDK理:
[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_account_id
並sso_role_name
不是SSO令牌配置的所有場景都是必需的。如果您的應用程式只使用支援承載驗證的 AWS 服務,則不需要傳統的 AWS
認證。承載身份驗證是一種使用稱為承載令牌的安全令牌的HTTP身份驗證方案。在這種情況下,sso_account_id
和 sso_role_name
並非必要資訊。請參閱您 AWS 服務的個別指南,以確定其是否支援承載權杖授權。
此外,註冊範圍也可以設定為 sso-session
的一部分。範圍是 OAuth 2.0 中的一種機制,用於限制應用程序對用戶帳戶的訪問。應用程式可以請求一個或多個範圍,則合法給應用程式的存取字符將僅限於授予的範圍。這些範圍定義了請求為註冊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身分識別中心設定檔:
[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身分識別中心工作階段要求並擷取暫時認證。
如需 config
和 credentials
檔案的詳細資訊,請參閱 組態與憑證檔案設定。
登入IAM身分識別中心工作階段
注意
登入程序可能會提示您允許 AWS CLI 存取您的資料。由 AWS CLI 於建置在SDK用於 Python 之上,因此權限訊息可能會包含botocore
名稱的變體。
若要擷取並快取一組 IAM Identity Center 認證,請執行下列命令 AWS CLI 以開啟預設瀏覽器並驗證您的IAM身分中心登入。
$
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身分識別中心。
$
aws sso login --sso-session
my-dev-session
驗證 Token 會快取至~/.aws/sso/cache
目錄下的磁碟,檔案名稱是以sso_start_url
.
使用您的IAM身分中心設定檔執行命令
登入後,您可以使用認證來叫用具有關聯具名設定檔的命 AWS CLI 令。下列範例顯示使用設定檔的指令:
$
aws sts get-caller-identity --profile
my-dev-profile
只要您登入 IAM Identity Center 且那些快取的認證尚未過期,就會在需要時 AWS CLI 自動更新過期的 AWS 認證。不過,如果您的IAM身分中心認證過期,您必須重新登入您的IAM身分中心帳戶,以明確地更新這些憑證。
登出您的IAM身分識別中心工作階段
使用 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 參考 -
OAuthIAM身分識別中心使用者指南中的 2.0 存取範圍
-
IAM身分識別中心使用者指南中的入門教學課程