這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:使用 IAM Identity Center 進行驗證自動權杖重新整理,以便與 搭配使用 AWS CDK CLI
在此範例中,我們會設定 AWS Command Line Interface (AWS CLI) 以使用 Identity Center 權杖提供者組態來 AWS IAM驗證使用者。SSO 權杖提供者組態可讓 AWS CLI 自動擷取重新整理的身分驗證權杖,以產生我們可以搭配 AWS Cloud Development Kit (AWS CDK) 命令列介面 (AWS CDK CLI).
必要條件
此範例假設已完成下列先決條件:
-
設定 AWS 和安裝啟動所需的先決條件 CLI 工具。如需詳細資訊,請參閱必要條件。
-
IAM 我們的組織已將 Identity Center 設定為管理使用者的方法。
-
在 IAM Identity Center 中至少已建立一位使用者。
步驟 1:設定 AWS CLI
如需此步驟的詳細說明,請參閱 AWS Command Line Interface 使用者指南 中的設定 AWS CLI 以使用 IAM Identity Center 權杖提供者憑證搭配自動身分驗證重新整理。
我們會登入組織提供的 AWS 存取入口網站,以收集IAM身分中心資訊。這包括SSO開始URL和SSO區域 。
接下來,我們使用 AWS CLI aws configure sso
命令來設定 IAM Identity Center 設定檔,並在本機機器sso-session
上:
$
aws configure sso
SSO session name (Recommended):my-sso
SSO start URL [None]:https://my-sso-portal.awsapps.com/start
SSO region [None]:us-east-1
SSO registration scopes [sso:account:access]:<ENTER>
會 AWS CLI 嘗試開啟我們的預設瀏覽器,以開始 IAM Identity Center 帳戶的登入程序。如果 AWS CLI 無法開啟我們的瀏覽器,則會提供手動啟動登入程序的指示。此程序會將 IAM Identity Center 工作階段與目前的 AWS CLI 工作階段建立關聯。
建立工作階段後, AWS CLI 會顯示可供我們 AWS 帳戶 使用的 :
There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (
123456789011
) ProductionAccount, production-account-admin@example.com (123456789022
)
我們使用方向鍵來選取我們的 DeveloperAccount。
接下來, AWS CLI 會顯示我們從所選帳戶中可用的IAM角色:
Using the account ID
123456789011
There are 2 roles available to you. > ReadOnly FullAccess
我們使用方向鍵選取 FullAccess。
接下來, 會針對我們的設定檔指定預設輸出格式、預設 和名稱 AWS 區域,以 AWS CLI 提示我們完成組態:
CLI default client Region [None]:
us-west-2
<ENTER>
> CLI default output format [None]:json
<ENTER>
CLI profile name [123456789011_FullAccess]:my-dev-profile
<ENTER>
AWS CLI 會顯示最終訊息,說明如何搭配 使用具名設定檔 AWS CLI:
To use this profile, specify the profile name using --profile, as shown: aws s3 ls --profile
my-dev-profile
完成此步驟後,我們的config
檔案會如下所示:
[profilemy-dev-profile
] sso_session =my-sso
sso_account_id =123456789011
sso_role_name =fullAccess
region =us-west-2
output =json
[sso-sessionmy-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
sso_registration_scopes =sso:account:access
我們現在可以使用這個 sso-session
和具名設定檔來請求安全憑證。
步驟 2:使用 AWS CLI 產生安全憑證
如需此步驟的詳細說明,請參閱 使用者指南 中的使用名為 的 IAM Identity Center 設定檔。 AWS Command Line Interface
我們使用 AWS CLI aws sso login
命令來請求設定檔的安全憑證:
$
aws sso login --profile
my-dev-profile
會 AWS CLI 嘗試開啟我們的預設瀏覽器並驗證我們的IAM登入。如果我們目前尚未登入 IAM Identity Center,系統會提示您完成登入程序。如果 AWS CLI 無法開啟我們的瀏覽器,則會提供手動啟動授權程序的指示。
成功登入後, 會 AWS CLI 快取我們的 IAM Identity Center 工作階段憑證。這些憑證包含過期時間戳記。到期時, AWS CLI 會要求我們再次登入 IAM Identity Center。
使用有效的 IAM Identity Center 憑證, AWS CLI 安全地擷取我們設定檔中指定IAM角色的 AWS 憑證。從這裡,我們可以使用 AWS CDK CLI 使用我們的憑證。
步驟 3:使用 CDK CLI
使用任何 CDK CLI 命令,我們使用 --profile
選項來指定我們為其產生憑證的具名設定檔。如果我們的憑證有效, CDKCLI 會成功執行 命令。以下是範例:
$
cdk diff --profile
Stack CdkAppStack Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff) Resources [-] AWS::S3::Bucket amzn-s3-demo-bucket amzn-s3-demo-bucket5AF9C99B destroy Outputs [-] Output BucketRegion: {"Value":{"Ref":"AWS::Region"}} ✨ Number of stacks with differences: 1my-dev-profile
當我們的憑證過期時,會顯示如下錯誤訊息:
$
cdk diff --profile
Stack CdkAppStack Unable to resolve AWS account to use. It must be either configured when you define your CDK Stack, or through the environmentmy-dev-profile
若要重新整理我們的憑證,我們使用 AWS CLI aws sso login
命令:
$
aws sso login --profile
my-dev-profile