文档首页/ Flexus云服务_Flexus应用服务器L实例/ 常见问题/ 产品咨询/ 在Flexus L实例上如何通过委托的临时访问密钥访问其他云服务?
更新时间:2025-10-31 GMT+08:00
分享

在Flexus L实例上如何通过委托的临时访问密钥访问其他云服务?

应用场景

假如您是一位开发者,开发了一个应用程序,这个应用程序运行在L实例上,应用程序的代码中涉及调用API访问华为云服务。此时,因为华为云服务要求访问请求方出示访问凭证,所以您的API调用将会面临提供访问凭证的问题。

访问凭证按照时效性可分为永久凭证和临时凭证,相较于永久性访问凭证,例如用户名和密码,临时访问密钥因为有效期短且刷新频率高,所以安全性更高。因此,您的应用程序若想要以更安全的方式访问云服务,需要获取临时访问凭证,而IAM的委托功能,则支持通过委托获取临时访问密钥。

图1 应用程序获取临时访问密钥

图1所示,以访问数据库服务举例。因为数据库服务要求访问请求方提供访问凭证,所以应用程序需要获得委托的临时访问密钥AK、SK。应用程序与元数据服务通信,元数据服务再与IAM通信,拿到临时AK、SK后返回给应用程序。然后,应用程序将临时AK、SK作为访问凭证出示给数据库服务,数据库服务收到请求后,先校验访问凭证是否合法,凭证通过校验后,L实例上的应用程序才能访问数据库服务。

解决方案

针对以上应用场景,可使用IAM对云服务的委托来获取临时访问密钥。在IAM上对云服务授权,并对应用程序所在的L实例进行授权委托管理。L实例获得委托权限之后,应用程序可申请指定委托的临时访问密钥,从而以临时访问密钥为凭证安全访问华为云资源。详细方案如下:

  1. 创建云服务委托。账号在IAM控制台创建委托。委托创建时,选择权限策略,选择可访问的资源范围,不同的委托对应不同的权限策略。
  2. 调用更新云服务器元数据APIAPI为L实例配置委托。
  3. 获取委托的临时凭证。L实例配置了委托参数后,就获得了委托权限。此时,L实例上运行的应用程序可获取委托的临时访问密钥AK、SK。拥有临时访问密钥的应用程序可与华为云服务进行交互,交互行为遵循账号授予的权限策略和资源使用范围。

操作步骤

  1. 管理员创建云服务委托。

    1. 管理员登录统一身份认证服务控制台
    2. 在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击“创建委托”。
    3. 在创建委托页面,设置“委托名称”
    4. “委托类型”选择“云服务”,L实例在创建委托时对应云服务为“弹性云服务器 ECS 裸金属服务器 BMS”。
      图2 创建委托
    5. 选择“持续时间”。
    6. (可选)填写“委托描述”。建议填写描述信息。
    7. 单击“完成”。
    8. 在授权的确认弹窗中,单击“立即授权”。
    9. 勾选需要授予委托的权限,单击“下一步”,选择权限的作用范围,给委托授权。
    10. 单击“确定”,委托创建完成。

  2. 管理员或拥有L实例权限的IAM用户为L实例配置委托。

    L实例支持通过更新云服务器元数据API为L实例配置委托,更新metadata中agency_name字段为新的委托名称。

    图3 在线调试配置委托
    表1 调用API配置委托相关参数

    参数

    说明

    示例

    Region

    区域。

    请根据L实例所在区域选择Region。

    华北-北京四

    project_id

    项目ID。

    获取方法请参见获取项目ID

    2b31ed520xxxxxxebedb6e57xxxxxxxx

    server_id

    L实例云主机ID。获取方式请参见Flexus L实例的ID和实例中云服务器ID在哪里查看?

    e6b99563-xxxx-xxxx-xxxx-1820d4fd2a67

    metadata

    用户自定义metadata键值对。

    元数据的数据结构可参见数据结构(创建云服务器)中的“创建云服务器的metadata字段数据结构说明”部分。此处更新metadata中agency_name字段为新的委托名称。

    键:agency_name

    值:L_test

    如果上一步创建的委托名称为“L_test”,则请求示例如下:

    {
        "metadata": {
            "agency_name": "L_test"
        }
    }

  3. 应用程序获取临时凭证

    运行在L实例上的应用程序调用获取委托临时凭证的API,即可获得临时访问密钥,之后可使用该密钥访问其他的华为云服务。AK、SK获取方法如下,如需了解详情,可参见元数据获取

    • URI

    /openstack/latest/securitykey

    • 方法

    支持GET请求

    • 示例

    Linux操作系统:

    curl http://169.254.169.254/openstack/latest/securitykey

    Windows操作系统:

    Invoke-RestMethod http://169.254.169.254/openstack/latest/securitykey

    L实例会为您自动轮换这些临时凭证,从而确保每次申请的临时凭证安全、有效。

相关文档