在 ECS 執行個體或 ECI 執行個體上運行阿里雲 CLI 時,可使用 EcsRamRole 憑證類型。CLI 通過執行個體中繼資料服務(IMDS)自動擷取與執行個體綁定的 RAM 角色的臨時安全憑證(STS Token),無需配置 AccessKey,是雲上環境的推薦認證方式。本文介紹 EcsRamRole 憑證的前置準備及配置流程。
前提條件
阿里雲 CLI 版本 ≥
3.3.0。運行aliyun version查看目前的版本,低於此版本時,請參考安裝/更新 CLI升級。CLI 需要安裝在 ECS 執行個體或 ECI 執行個體上。本地開發環境不支援此憑證類型。
執行個體已綁定 RAM 角色,且該角色擁有所需資源的存取權限。為ECS和ECI執行個體授予RAM角色,具體操作請參見建立並為ECS執行個體授予RAM角色和為ECI執行個體授予執行個體RAM角色。
配置憑證
互動式配置
運行以下命令開始配置。將
<ProfileName>替換為自訂的配置名稱(如EcsProfile):aliyun configure --mode EcsRamRole --profile <ProfileName>按提示依次輸入ECS執行個體RAM角色名稱、預設地區及語言等配置資訊 :
Configuring profile 'EcsProfile' in 'EcsRamRole' authenticate mode... Ecs Ram Role []: ecs-role-name Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[EcsProfile] ...Done.具體地區請參見地區和可用性區域。部分雲產品不支援跨地區訪問,建議您優先將預設地區設定為已購資源所在地區。
終端顯示
Configure Done及歡迎資訊,表示配置成功。
非互動式配置
Bash
aliyun configure set \
--profile EcsProfile \
--mode EcsRamRole \
--ram-role-name ECSAdmin \
--region cn-hangzhouPowerShell
aliyun configure set `
--profile EcsProfile `
--mode EcsRamRole `
--ram-role-name ECSAdmin `
--region cn-hangzhou配置成功後,該配置自動成為當前啟用的配置。如需切換到其他配置,運行 aliyun configure switch --profile <ProfileName> 命令。
驗證憑證配置
配置完成後,運行以下命令驗證憑證是否生效:
aliyun sts get-caller-identity輸出類似如下,在Arn欄位中會包含ECS執行個體RAM角色名稱:
{
"AccountId": "191317683912****",
"Arn": "acs:ram::191317683912****:assumed-role/<ecs-role-name>/<role-session-name>",
"IdentityType": "AssumedRoleUser",
"PrincipalId": "30004467717606****:<role-session-name>",
"RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****",
"RoleId": "30004467717606****"
}憑證的重新整理
EcsRamRole 憑證本質是通過 IMDS 服務擷取的 STS 臨時憑證。憑證的重新整理由IMDS服務自動控制,整個過程對使用者透明,無需手動幹預。
刪除憑證
刪除 CLI 本地配置中的 EcsRamRole 憑證:
aliyun configure delete --profile <ProfileName>此命令僅刪除 ~/.aliyun/config.json 中的對應配置條目,不會解除執行個體上的 RAM 角色綁定。如需完全撤銷許可權,請在 ECS 控制台解除綁定 RAM 角色。
常見問題
如何確認執行個體已綁定 RAM 角色?
在執行個體內運行以下命令查詢 IMDS,返回角色資訊表示已綁定:
curl http://100.100.100.200/latest/meta-data/ram/security-credentials/若返回為空白或 404,說明執行個體未綁定 RAM 角色。
使用 EcsRamRole 憑證時擷取憑證異常怎麼辦?
阿里雲 CLI 預設使用加固模式(IMDSv2)從執行個體中繼資料服務擷取訪問憑據。若擷取憑證時發生異常,可通過環境變數 ALIBABA_CLOUD_IMDSV1_DISABLED 控制回退行為:
值為
false(預設):回退到普通模式(IMDSv1)繼續擷取憑據。值為
true:僅允許加固模式,回退失敗時直接拋出異常。