全部產品
Search
文件中心

Alibaba Cloud CLI:RAM 角色憑證

更新時間:Jun 03, 2026

通過配置 RAM 角色扮演,讓阿里雲 CLI 使用低許可權 AccessKey 自動擷取 STS 臨時憑證來訪問雲資源,避免直接暴露高許可權 AccessKey。本文介紹 RamRoleArn(直接扮演 RAM 角色)和 ChainableRamRoleArn(從已有 CLI 憑證鏈式扮演)兩種配置方式及其適用情境。

版本要求

阿里雲 CLI 版本 ≥ 3.3.0。運行 aliyun version 查看目前的版本,低於此版本時,請參考安裝/更新 CLI升級。

RamRoleArn

RamRoleArn 使用低許可權 AccessKey 扮演高許可權 RAM 角色,擷取 STS 臨時憑證。AccessKey 只需擁有 AliyunSTSAssumeRoleAccess 策略,實際操作許可權由目標角色的授權策略決定。此方式適合本地開發環境及需要許可權分級管理的情境。

前提條件

  • 已為 RAM 使用者建立 AccessKey,並授予 AliyunSTSAssumeRoleAccess 策略。

  • 已建立目標 RAM 角色,並在角色信任策略中允許上述 RAM 使用者扮演該角色。

  • 已擷取目標 RAM 角色的 ARN。可在 RAM 控制台角色詳情頁查看,格式為 acs:ram::<ACCOUNT_ID>:role/<RoleName>

關於具體的前提條件準備,可參考使用AccessKey調用API間接使用AccessKey下的步驟。

配置憑證

互動式配置

  1. 運行以下命令開始配置。將 <ProfileName> 替換為自訂的配置名稱(如 RamRoleProfile):

    aliyun configure --mode RamRoleArn --profile <ProfileName>
  2. 按提示依次輸入配置資訊:

    Configuring profile 'RamRoleArnProfile' in 'RamRoleArn' authenticate mode...
    Access Key Id []: <yourAccessKeyID>
    Access Key Secret []: <yourAccessKeySecret>
    Sts Region []: cn-hangzhou
    Ram Role Arn []: acs:ram::012345678910****:role/Alice
    Role Session Name []: alice
    External ID []: abcd1234
    Expired Seconds [900]: 900
    Default Region Id []: cn-hangzhou
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en: en
    Saving profile[RamRoleArnProfile] ...Done.
  3. 終端顯示 Configure Done 及歡迎資訊,表示配置成功。

說明

配置成功後,該配置自動成為當前啟用的配置。如需切換到其他配置,運行 aliyun configure switch --profile <ProfileName> 命令。

非互動式配置

Bash
aliyun configure set \
  --profile RamRoleArnProfile \
  --mode RamRoleArn \
  --access-key-id <yourAccessKeyID> \
  --access-key-secret <yourAccessKeySecret> \
  --sts-region "cn-hangzhou"
  --ram-role-arn "acs:ram::012345678910****:role/Alice" \
  --role-session-name "alice" \
  --external-id "abcd1234" \
  --expired-seconds 900 \
  --region "cn-shanghai"
PowerShell
aliyun configure set `
  --profile RamRoleArnProfile `
  --mode RamRoleArn `
  --access-key-id <yourAccessKeyID> `
  --access-key-secret <yourAccessKeySecret> `
  --sts-region "cn-hangzhou" `
  --ram-role-arn "acs:ram::012345678910****:role/Alice" `
  --role-session-name "alice" `
  --external-id "abcd1234" `
  --expired-seconds 900 `
  --region "cn-shanghai"

完整配置參數

參數名稱

必填

說明

樣本值

--mode

固定值 RamRoleArn,指定憑證類型。

RamRoleArn

--profile

配置名稱。未指定時預設使用當前啟用的配置;首次配置預設名稱為 default。建議使用有意義的名稱以便區分多套憑證。

RamRoleProfile

--region

預設 Region ID。

cn-hangzhou

--access-key-id

RAM 使用者的 AccessKey ID,需擁有 AliyunSTSAssumeRoleAccess 策略。

LTAI5t****

--access-key-secret

對應的 AccessKey Secret。

****

--ram-role-arn

目標 RAM 角色的 ARN。可在 RAM 控制台的角色詳情頁擷取。

acs:ram::191317683912****:role/DevOpsRole

--role-session-name

會話名稱,用於在審計日誌中標識此次扮演。建議使用應用程式名稱或機器名等有意義的標識。

my-session

--expired-seconds

臨時憑證有效期間(秒),範圍 900–3600。互動配置預設 900 秒;configure set 不填時預設 3600 秒。

900

--external-id

外部 ID,用於跨帳號角色扮演時增強安全性。僅當目標角色的信任策略要求時才需填寫。具體請參考使用ExternalId防止混淆代理人問題

--sts-region

STS 服務端點的地區 ID。不填時使用全域端點 sts.aliyuncs.com

cn-shanghai

驗證憑證

配置完成後,運行以下命令驗證憑證是否生效:

aliyun sts get-caller-identity

輸出:

{
  "AccountId": "191317683912****",
  "Arn": "acs:ram::191317683912****:assumed-role/<role-name>/<role-session-name>",
  "IdentityType": "AssumedRoleUser",
  "PrincipalId": "30004467717606****:<role-session-name>",
  "RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****",
  "RoleId": "30004467717606****"
}

憑證的重新整理

CLI 自動管理憑證重新整理,無需手動操作。STS 臨時憑證到期前,CLI 自動重新調用 STS AssumeRole 擷取新憑證,不影響正在執行的 CLI 命令。

ChainableRamRoleArn

ChainableRamRoleArn 從已有的 CLI 憑證配置(源配置集)鏈式扮演另一個 RAM 角色。CLI 先從源配置集擷取中間憑證,再用中間憑證調用 STS AssumeRole 擷取最終臨時憑證。此方式適合跨帳號多級角色鏈情境,或需要在 EcsRamRole 基礎上進一步扮演其他角色的情境。

ChainableRamRoleArn類型憑證通過指定一個前置身份憑證配置,從前置配置中擷取中間憑證(AccessKey或STS Token),再基於中間憑證完成角色扮演,擷取最終的臨時身份憑證(STS Token)。

前提條件

  • 已存在一個有效 CLI 憑證配置集(源配置集),例如已配置好的 EcsRamRole、AK 或 RamRoleArn 配置。

  • 源配置集所關聯的主體(RAM 使用者或角色)擁有扮演目標 RAM 角色的許可權(目標角色的信任策略允許該主體扮演)。

  • 已擷取目標 RAM 角色的 ARN,格式為 acs:ram::<ACCOUNT_ID>:role/<RoleName>

配置憑證

互動式配置

  1. 運行以下命令開始配置。將 <ProfileName> 替換為自訂的配置名稱(如 ChainProfile):

    aliyun configure --mode ChainableRamRoleArn --profile <ProfileName>
  2. 按提示依次輸入配置資訊:

    Configuring profile 'ChainableProfile' in 'ChainableRamRoleArn' authenticate mode...
    Source Profile []: RamRoleArnProfile
    Sts Region []: cn-hangzhou
    Ram Role Arn []: acs:ram::012345678910****:role/Alice
    Role Session Name []: alice
    External ID []: abcd1234
    Expired Seconds [900]: 900
    Default Region Id []: cn-hangzhou
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en: en
    Saving profile[ChainableProfile] ...Done.
    說明

    上述樣本中 EcsRoleProfile 為已存在的源配置集名稱,RAM 角色 ARN 為樣本值,請替換為實際值。Sts RegionExternal Id 可直接按 Enter 跳過。

  3. 終端顯示 Configure Done 及歡迎資訊,表示配置成功。

說明

配置成功後,該配置自動成為當前啟用的配置。如需切換到其他配置,運行 aliyun configure switch --profile <ProfileName> 命令。

非互動式配置

命令樣本:

Bash
aliyun configure set `
  --profile ChainableProfile `
  --mode ChainableRamRoleArn `
  --source-profile RamRoleArnProfile `
  --sts-region "cn-hangzhou" `
  --ram-role-arn "acs:ram::012345678910****:role/Alice" `
  --role-session-name "alice" `
  --external-id "abcd1234" `
  --expired-seconds 900 `
  --region "cn-shanghai"
PowerShell
aliyun configure set `
  --profile ChainProfile `
  --mode ChainableRamRoleArn `
  --region cn-hangzhou `
  --source-profile EcsRoleProfile `
  --ram-role-arn acs:ram::<UID>:role/<RoleName> `
  --role-session-name chain-session `
  --expired-seconds 900
重要

--source-profile 指定的配置集必須已存在於 CLI 設定檔中,否則報錯 can not load the source profile: <name>。運行 aliyun configure list 可查看所有已有配置集。

完整配置參數

參數名稱

必填

說明

樣本值

--mode

固定值 ChainableRamRoleArn,指定憑證類型。必須顯式指定,不支援自動推斷。

ChainableRamRoleArn

--profile

配置名稱。未指定時預設使用當前啟用的配置;首次配置預設名稱為 default

ChainProfile

--region

預設 Region ID。

cn-hangzhou

--source-profile

源配置集名稱。CLI 先從此配置集擷取中間憑證,再用中間憑證扮演目標角色。該配置集必須已存在。

EcsRoleProfile

--ram-role-arn

目標 RAM 角色的 ARN。

acs:ram::191317683912****:role/CrossAccountRole

--role-session-name

會話名稱,用於審計日誌標識。

chain-session

--expired-seconds

臨時憑證有效期間(秒),範圍 900–3600。不填時預設 3600 秒。

900

--external-id

外部 ID,僅當目標角色的信任策略要求時才需填寫。

--sts-region

STS 服務端點的地區 ID。不填時使用全域端點 sts.aliyuncs.com

cn-hangzhou

驗證憑證

配置完成後,可運行命令aliyun sts get-caller-identity驗證憑證是否生效。

憑證的重新整理

CLI 自動管理憑證重新整理,無需手動操作。STS 臨時憑證到期前,CLI 先重新整理源配置集的憑證(按源配置集自身的重新整理邏輯執行,例如 EcsRamRole 走 IMDS),再重新調用 STS AssumeRole 擷取新憑證。

刪除憑證

刪除 CLI 本地配置中的 RAM 角色憑證:

aliyun configure delete --profile <ProfileName>
說明

若刪除的是當前啟用的配置,CLI 會自動切換為配置列表中的第一個配置。