[AWS] 使用 aws-azure-login 以 CLI 方式取得 AWS 登入資訊
公司有使用 Azure AD (AAD) 與 AWS 帳號串聯,
因此在使用公司 email 登入 AWS 時,都需要先透過 AAD 登入後,
才能選擇要登入的 AWS 帳號進入 AWS console。
今天想要用 Lens 連線這 AWS 帳號下的某個 EKS,
發現它出現認證錯誤,但以上面的認證方式來說,
我是拿不到 AWS access key 和 secret key 的。
可以做的事大概是這幾種:
- 建立另外一個使用者,給少一點權限:這樣會有 access key 和 secret key,但這個長存的使用者風險會較高
- 使用 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) false ? 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 囉~
(本頁面已被瀏覽過 51 次)