第 3 單元:設定 AWS CLI

教學課程

設定 AWS CLI

在本單元中,您將設定 AWS Command Line Interface (CLI)

您會完成的目標

在本單元中,您將會學習以下內容:
  • 為您的作業系統安裝 AWS Command Line Interface (AWS CLI)
  • 設定憑證以存取您的 AWS 帳戶
  • 設定多個描述檔以存取不同的 AWS 帳戶

實作

AWS CLI 是管理 AWS 服務的統一工具。只要一個工具來下載和設定,就可以從命令列控制多個 AWS 服務,並透過指令碼將服務自動化。 

若要使用 CLI 與 AWS 互動,我們需要設定憑證以供其在進行 API 呼叫時使用。我們還將展示如何設定多個描述檔以存取多個 AWS 帳戶,使用附加憑證或透過 IAM 角色切換。

 完成時間

10 分鐘

 單元要求

  • 網際網路瀏覽器
  • AWS 帳戶

 取得協助

安裝 AWS CLI

安裝 AWS CLI 有多種方法,具體取決於您的作業系統或使用容器的偏好。若要安裝 AWS CLI v2,請參閱安裝或更新最新版本的 AWS CLI

安裝 AWS CLI 後,您可以在命令列中執行 aws --version 並查看以下輸出 (版本可能不同):

aws --version

例如,在 Windows 10 上安裝 AW CLI 時的回應如下:

aws-cli/2.12.1 Python/3.11.3 Windows/10 exe/AMD64 prompt/off

現在已安裝 AWS CLI,您可隨時設定您的憑證。 

設定 AWS CLI 憑證

若要設定憑證,請使用命令 <aws configure sso>,然後包含在本教學課程的前一個單元中建立的使用者憑證。

在 CLI 中,執行 <aws configure sso> 命令,將要求您提供以下資訊:

  • SSO 工作階段名稱提供此工作階段關聯項目的 AWS CloudTrail 日誌中所包含的工作階段名稱。如果您未輸入名稱,則會自動產生名稱。在本教學課程中,請使用 <Test1>。
  • SSO 開始 URL設定 IAM Identity Center 時為您提供的 AWS 存取入口網站 URL
  • SSO 區域在本教學課程中,範例使用 <us-east-1>。在您自行執行命令時,指定啟用 IAM Identity Center 的區域。您可以在 IAM Identity Center 儀表板的「設定摘要」上的 AWS 管理主控台中找到此資訊。
  • SSO 註冊範圍範圍會授權對不同端點的存取。在本教學課程中,我們將使用 <sso:account:access> 的最小範圍,從 IAM Identity Center 服務中取得重新整理權杖。

輸入 <aws configure sso> 命令之後,系統會提示您在終端輸入這些項目中的每個項目。

aws configure sso

注意:如果您不知道帳戶的開始 URL 或區域,請以根使用者身分登入主控台,然後前往 IAM Identity Center 儀表板。區域和 AWS Access 入口網站 URL 會在設定摘要中顯示。

下列範例程式碼會顯示此階段的 CLI 內容:

$ aws configure sso

SSO 工作階段名稱 (建議):Test1
SSO 開始 URL [無]:https://my-sso-portal.awsapps.com/start
SSO 區域 [無]:us-east-1
SSO 註冊範圍 [無]:sso:account:access

CLI 會嘗試在預設瀏覽器中自動開啟 SSO 授權頁面,並開始您的 IAM Identity Center 帳戶的登入程序。

提供密碼之後 (及 MFA 憑證,如果啟用),系統會要求您允許存取您的資料。這樣可授予 AWS CLI 許可,以擷取並顯示您已授權使用 IAM Identity Center 的 AWS 帳戶和角色。

由於 AWS CLI 在 SDK for Python 之上建置,因此許可訊息可能包含 botocore 名稱的變化,例如 botocore-client-Test1。選取允許。驗證之後,會告知您可以關閉視窗。   

CLI 將更新並向您顯示可用的 AWS 帳戶和角色。因為您目前僅設定一個具有 AdministratorAccess role 的 AWS 帳戶,即您登入的帳戶和角色。您的 CLI 視窗現在應顯示以下命令列:

您唯一可用的 AWS 帳戶是:111122223333
使用帳戶 ID 111122223333
您唯一可用的角色是:AdministratorAccess
使用角色名稱 "AdministratorAccess"   

接著,系統會要求您指定預設輸出格式、要傳送命令的預設 AWS 區域,以及為設定檔提供名稱,以便在 CLI 中執行命令時參考此設定檔。

建議的設定檔名稱為帳戶 ID 編號,後面加上底線,然後是角色名稱,但在本教學課程中,我們將使用較短的設定檔名稱 admin-1。您的 CLI 視窗現在應顯示以下命令列:

若要使用此設定檔,請使用 --profile 指定如下所示設定檔名稱:
aws s3 ls --profile admin-1

現在,執行 <aws ec2 describe-vpcs> 命令來檢查設定是否正確。每個新的 AWS 帳戶都設定了預設 VPC,因此您可以執行此命令,而無需在 AWS 帳戶上設定任何其他服務。

aws ec2 describe-vpcs

您的 CLI 視窗現在應顯示以下資訊。

這將確認您的 AWS CLI 現已正確設定。

透過執行此程序,您已使用 sso-session 區段和命名設定檔來更新 AWS 組態檔案。

組態檔案位置:若是執行 Linux 或 macOS 的電腦,則位於 ~/.aws/config,若是執行 Windows 的電腦,則位於 C:\Users\ USERNAME \.aws\config。如果您開啟設定檔,您會看到以下兩個部分:

aws ec2 describe-vpcs --profile admin-1

{
    "Vpcs": [
        {
            "CidrBlock": "10.0.0.0/16",
            "DhcpOptionsId": "dopt-d12345",
            "State": "available",
            "VpcId": "vpc-0123456789abcdef",
            "OwnerId": "111122223333",
            "InstanceTenancy": "default",
............"CidrBlockAssociationSet": [
................{
....................."AssociationId": "vpc-cidr-assoc-38b060a751a39af8e",
....................."CidrBlock": "10.24.34.0/23",
....................."CidrBlockState": {
........................."State": "associated"
......................}
................}
............],
............"IsDefault": true
.........}
    ]
}

[profile admin-1]
sso_session = Test1
sso_account_id = 111122223333
sso_role_name = AdministratorAccess
region = us-east-1
output = json

[sso-session Test1]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access

您現在可以藉助此 sso-session 和設定檔,使用 <aws sso login> 命令來請求憑證。 

aws sso login

您的 CLI 視窗現在應顯示以下資訊:

aws sso login -–profile admin-1
嘗試在預設瀏覽器中自動開啟 SSO 授權頁面。

如果瀏覽器未開啟或您希望使用不同裝置來授權此請求,請開啟下列 URL:
https://device.sso.us-east1.amazonaws.com/

然後輸入代碼:
XXXX-XXXX

導覽至瀏覽器視窗,並允許存取您的資料。當您返回 CLI 視窗時,會顯示下列訊息行:

已成功登入開始 URL:https://my-sso-portal.awsapps.com/start

設定多個描述檔 (選用)

您將角色新增至 AWS 帳戶並新增其他 AWS 帳戶至您的組織時,請重複上述程序,為這些角色和帳戶建立設定檔。

在您增加複雜性時,建議使用關聯 AWS 帳戶 ID 和角色名稱的設定檔命名策略,以便可以區分設定檔。 

結語

恭喜您! 您已學習如何設定 AWS CLI 和設定具名設定檔。在下一個單元中,您將學習如何設定 AWS Cloud9,這是一個以雲端為基礎的 IDE。

本頁對您是否有幫助?

設定 AWS Cloud9