[AWS] 使用 aws-azure-login 以 CLI 方式取得 AWS 登入資訊

[AWS] 使用 aws-azure-login 以 CLI 方式取得 AWS 登入資訊

公司有使用 Azure AD (AAD) 與 AWS 帳號串聯,

因此在使用公司 email 登入 AWS 時,都需要先透過 AAD 登入後,

才能選擇要登入的 AWS 帳號進入 AWS console。

 

今天想要用 Lens 連線這 AWS 帳號下的某個 EKS,

發現它出現認證錯誤,但以上面的認證方式來說,

我是拿不到 AWS access key 和 secret key 的。

可以做的事大概是這幾種:

  1. 建立另外一個使用者,給少一點權限:這樣會有 access key 和 secret key,但這個長存的使用者風險會較高
  2. 使用 STS token:目前得透過公司一個網頁,先透過 AAD 認證後,才能拿到 AWS STS token

上面的第 2 種方法較安全,但就得每次拿到 STS token 後,

貼到 terminal 裡面,再從 terminal 裡面把 Lens 打開才行,有點不便…

 

後來看到有人用到 aws-azure-login 這個東西來輔助,

來看看它可以做什麼吧~

 

首先在 Mac 上用 npm 安裝 aws-azure-login 套件:

npm install -g aws-azure-login

 

接著執行  aws-azure-login --configure 來做初始設定。

這邊要想辦法取得 Azure tenant ID 與 app ID URL,

以及要使用哪個 AWS 角色 (role) 登入的 ARN:

$ aws-azure-login --configure

Configuring profile 'default'
? Azure Tenant ID: 11111111-2222-3333-4444-555555555555
? Azure App ID URI: https://signin.aws.amazon.com/saml
? Default Username: test_user
? Stay logged in: skip authentication while refreshing aws credentials (true|false) true
? Default Role ARN (if multiple): arn:aws:iam::112233445566:role/AAD-ADMIN
? Default Session Duration Hours (up to 12): 1
? AWS Region: eu-central-1

 

初始設定完成後,執行  aws-azure-login --mode gui

會跳出平常 AAD 登入的畫面:

$ aws-azure-login --mode gui

Logging in with profile 'default'...
Using AWS SAML endpoint https://signin.aws.amazon.com/saml
Please complete the login in the opened window
Assuming role arn:aws:iam::112233445566:role/AAD-ADMIN in region eu-central-1...

 

登入完成之後,那個 terminal 裡面就已經帶好 AWS access key 與 secret key 等資訊,

可以直接在裡面跑 Lens 囉~

 

(本頁面已被瀏覽過 17 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料