怎么获取IAM SDK访问密钥,有哪些步骤?

通过IAM SDK获取访问密钥,核心流程是创建IAM用户并授权,然后使用Python SDK调用API获取临时或长期凭证。 很多开发者初次接触云服务时,会混淆IAM密钥和访问密钥(AK/SK)的概念,实际上SDK获取密钥通常指的是获取临时安全凭证,这在自动化部署和临时授权场景中非常实用。参考2

IAM SDK获取访问密钥的两种典型场景

根据使用场景的不同,IAM SDK获取密钥分为长期密钥和临时密钥两种方式,长期密钥适合开发测试环境,临时密钥则在生产环境中更安全。

创建阿里云 API 的密钥
加载中

长期密钥获取方式(直接创建AK/SK)

长期密钥通常通过云控制台手动创建,或由管理员通过IAM接口创建,SDK也可以调用IAM接口直接创建永久AK/SK,但需要调用者具备管理员权限,这种方式获取的密钥不会过期,适合本地调试、数据处理等场景,但需要妥善保管。

  • 操作路径:IAM控制台 → 用户管理 → 指定用户 → 创建访问密钥。
  • SDK方式:使用Python SDK调用createPermanentAccessKey接口(需管理员账户)。
  • 注意事项:长期密钥泄露风险较高,建议在非生产环境使用。

临时密钥获取方式(推荐)

临时密钥通过STS(Security Token Service)服务获取,有效期通常为15分钟到24小时,SDK调用IAM接口返回临时AK、SK和SecurityToken,配合签名使用,这种方式在云函数、容器化部署、跨账号授权等场景中广泛使用。

  • 核心接口keystoneCreateTemporaryAccessKeyByToken(华为云)或AssumeRole(简米云)。
  • 返回参数:临时AK、SK、SecurityToken、过期时间。
  • 优势:即使泄露,影响范围有限;可通过权限策略精确控制访问资源。

华为云IAM SDK获取访问密钥实操步骤

下面以华为云Python SDK为例,演示如何获取临时访问密钥,整个过程分为环境准备、SDK配置和接口调用三步。

怎么获取IAM SDK访问密钥,有哪些步骤?

环境准备与SDK安装

确保已完成IAM用户创建和授权,需要为IAM用户授予Security Administrator或自定义策略(包含iam:credentials:createTemporaryAccessKey权限),然后安装相关SDK:参考2

pip install huaweicloud-sdk-python-iam huaweicloud-sdk-python-core

获取临时密钥的Python代码示例

使用已有AK/SK进行认证,调用IAM接口获取临时凭证,代码核心逻辑如下:

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkiam.v3 import IamClient, KeystoneCreateTemporaryAccessKeyByTokenRequest
from huaweicloudsdkiam.v3.model import KeystoneCreateTemporaryAccessKeyByTokenRequestBody
# 认证信息(使用长期AK/SK)
credentials = BasicCredentials(ak, sk, domain_id)
# 创建IAM客户端,指定区域Endpoint
client = IamClient.new_builder().with_credentials(credentials).with_endpoint("iam.cn-north-4.myhuaweicloud.com").build()
# 构建请求体,指定用户ID和过期时间
request = KeystoneCreateTemporaryAccessKeyByTokenRequest()
request.body = KeystoneCreateTemporaryAccessKeyByTokenRequestBody(
    auth={"identity": {"methods": ["token"], "token": {"id": token}}},  # 也可直接使用AK/SK认证
    duration_seconds=3600
)
response = client.keystone_create_temporary_access_key_by_token(request)
  • 关键参数duration_seconds控制密钥有效期,domain_iduser_id需要提前获取。
  • 返回结果response.credential中包含临时AK、SK、SecurityToken和过期时间。

Python SDK获取临时密钥常见报错与解决

在实际调用中,权限不足是最常见的报错,如果提示auth failedno permission,请检查IAM用户是否具有Security Administrator权限。区域节点配置错误也会导致调用失败,需确认Endpoint与IAM服务所在区域一致。

怎么获取IAM SDK访问密钥,有哪些步骤?

报错排查列表

  • 403 Forbidden:权限不足,需添加策略iam:credentials:createTemporaryAccessKey
  • 401 Unauthorized:AK/SK或Token过期,请检查凭证有效期。
  • 404 Not Found:Endpoint或API版本错误,建议使用最新SDK版本(如3.x)。
  • Timeout:网络原因,可尝试更换Endpoint或重试。

IAM密钥与AK/SK的区别对比

很多刚接触云服务的人会问:IAM密钥和访问密钥是一回事吗?行业共识认为,两者定义不同,IAM密钥通常指用户登录密码或访问密钥(AK/SK),而AK/SK是访问密钥的具体形式,下表从多个维度对比常用的长期AK/SK和临时密钥:

对比维度 长期AK/SK 临时密钥
有效期 永久(除非手动删除) 15分钟至24小时
获取方式 控制台手动创建或IAM管理员调用API SDK/API调用STS服务
使用场景 开发测试、本地数据处理 云函数、容器、临时授权
安全性 较低,需严格保管 较高,短期有效,可撤销
权限控制 固定权限,依赖用户策略 可附加临时权限策略,更灵活

业内专家指出,临时密钥在实际生产中正逐渐取代长期密钥,尤其在自动化运维和跨账号访问场景中,其安全性优势明显。

不同区域IAM密钥管理与配置

云服务中IAM服务通常有区域化部署,不同区域的Endpoint不同,例如华为云IAM的国内Endpoint有iam.cn-north-4.myhuaweicloud.com(北京四)、iam.cn-east-3.myhuaweicloud.com(华东三)等。如果跨区域使用IAM SDK获取密钥,需要明确指定目标区域的Endpoint,否则可能导致资源访问失败。参考2

怎么获取IAM SDK访问密钥,有哪些步骤?

密钥管理中的权限策略配置

获取临时密钥时,可以在请求中附加临时权限策略,限制临时密钥能访问的资源范围。

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["obs:object:GetObject"],
            "Resource": ["obs::bucket:example-bucket"]
        }
    ]
}
  • 该策略仅允许临时密钥读取指定桶中的对象,进一步缩小风险面。
  • 如果不指定策略,临时密钥继承IAM用户本身的权限。

Q&A:IAM SDK获取密钥常见问题解答

问题1:Python SDK获取临时密钥时提示“policy not found”怎么办?

这类报错通常是因为IAM用户缺少iam:credentials:createTemporaryAccessKey权限,请检查用户权限策略,确保包含该操作,同时确认使用的认证凭证(AK/SK或Token)有效且未过期。

问题2:IAM密钥和AK/SK有什么区别?为什么SDK获取的密钥有多个字段?

IAM密钥是广义概念,包括登录密码和访问密钥(AK/SK),SDK获取的临时密钥包含三个字段:临时AK、临时SK和SecurityToken,其中SecurityToken是临时会话令牌,用于签名认证,这是与长期AK/SK最大的区别。

问题3:不同区域下的IAM密钥管理是否独立?能否跨区域使用?

IAM服务属于全局服务,但不同区域的IAM服务Endpoint独立,获取的临时密钥可以跨区域访问,前提是权限策略允许,例如在北京四区域获取的临时密钥,可以用于访问华东三的OBS桶,只要策略中不限制区域,但建议在Endpoint配置时选择资源所在区域,避免网络延迟。

掌握IAM SDK获取密钥,本质上是理解云服务的权限模型。 无论是华为云还是其他云厂商,核心逻辑都是通过身份认证获取临时凭证,再基于凭证访问资源,生产环境中优先使用临时密钥,并配合细粒度权限策略,是保障云上安全的最佳实践。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/533518.html

(0)
华为云域名MX记录怎么设置,域名配置问题怎么解决?
上一篇 2026年7月31日 11:19
IPv6-EIP最新动态有哪些?,如何配置
下一篇 2026年7月31日 11:21

相关推荐

  • 大模型到底是什么意思通俗易懂解释?大模型和人工智能有什么区别

    大模型本质上是经过海量数据训练、具备极强泛化能力的超级人工智能系统,它能像人一样理解语言、逻辑推理并生成内容,而非简单的关键词匹配工具,大模型到底是什么意思:从“字典”到“大脑”的进化传统AI与大模型的核心区别过去我们接触的AI,更像是一个只会查字典的实习生,你问它“苹果”是什么,它就在数据库里找“苹果”的定义……

    2026年6月23日
    3310
  • flv视频播放器怎么用?flv格式视频怎么转换成mp4

    FLV视频播放器是处理Flash遗留格式及轻量级流媒体文件的必备工具,其核心价值在于无需转码即可直接播放、资源占用极低以及支持批量转换,是解决老旧视频素材归档与播放难题的最优解,在数字媒体快速迭代的今天,虽然H.264和H.265已成为主流,但FLV(Flash Video)格式因其早期的带宽优势,依然在监控录……

    2026年7月8日
    19500
  • innerHTML开发样例有哪些,怎么用?

    写入时,浏览器会解析字符串并构建对应的DOM节点树,这意味着**每次设置innerHTML,浏览器都会重新解析字符串并创建节点**,如果替换的是一个大型列表,代价会明显上升,### 字符串拼接的常见误区很多新手会写出这样的代码:“`javascriptconst list = [‘苹果’, ‘香蕉’, ‘橙子……

    2026年8月8日
    300
  • 大模型温度参数Temperature是什么?大模型Temperature怎么设置

    温度参数(Temperature)是控制大模型输出随机性的核心开关,数值越低(接近0)输出越确定和保守,数值越高(接近1或更高)输出越发散和富有创意,理解这个概念,就像是在调整一个精密仪器的灵敏度,在2026年的今天,无论是开发智能客服、编写代码,还是进行创意写作,掌握Temperature的调节技巧,已经不再……

    2026年6月22日
    3700
  • implode函数怎么用,php中implode的用法?

    implode()函数是PHP中将数组元素拼接为字符串的首选方法,正确使用它能显著提升你的代码可读性与执行效率,implode函数怎么用?基础语法与示例函数语法与参数implode()接受两个参数:分隔符和数组,如果只传入一个参数,PHP会将该参数视为数组并使用空字符串连接,为了代码清晰,官方推荐始终使用两个参……

    2026年8月20日
    500
  • 服务器如何监听客户端发起的请求?服务器监听客户端请求的具体流程

    在计算机网络编程中,服务器监听客户端发起的请求是构建客户端-服务器(C/S)架构应用的核心步骤,这一过程通常涉及以下几个关键阶段和概念:基本流程概述服务器启动并绑定端口服务器程序启动后,会创建一个监听套接字(Listening Socket),将该套接字绑定到一个特定的 IP 地址和端口号(如 0.0.0:80……

    2026年7月10日
    3900
  • 如何正确打开服务器电脑主机?,开机步骤有哪些

    服务器电脑主机打开主要取决于你是指物理开箱还是系统开机,对于绝大多数机架式服务器,需先解锁前面板锁扣或旋转门锁,然后拉出机箱;塔式服务器则多采用侧板螺丝或卡扣固定,开机方面,服务器电源键通常位于前面板或通过远程管理接口控制,服务器机箱怎么打开:物理操作指南物理打开服务器机箱是硬件维护、升级内存或硬盘的必经步骤……

    2026年7月26日
    1400
  • 服务器文件夹权限怎么设置,怎么配置权限?

    服务器文件夹权限是保障数据安全的核心机制,正确的权限配置能够有效控制用户访问级别,防止数据泄露和系统入侵,服务器文件夹权限的核心原则与配置方法权限管理不是简单的“给谁开什么门”,而是需要一套严谨的逻辑来支撑,业内专家指出,超过80%的内部数据泄露事件与权限配置不当有直接或间接关系,掌握核心原则,才能让配置过程有……

    2026年7月20日
    1300
  • 服务器和客户端为何不断连接?

    服务器和客户端不断交互是Web应用运行的基石,其核心在于通过HTTP/HTTPS协议在请求与响应之间建立高效、安全的数据通道,任何一方的延迟或故障都会直接导致用户体验下降,理解服务器与客户端的持续对话机制想象一下,你正在一家繁忙的餐厅用餐,你就是“客户端”,负责发出点单指令;而厨房里的厨师团队就是“服务器”,负……

    2026年7月3日
    1200
  • IDEA如何远程调试?,配置方法有哪些?

    **远程调试的核心是打通本地IDE与远端运行环境的网络链路,让代码如同在本地执行一样可断点、可追踪,IDEA作为Java开发的主流工具,其远程调试功能主要通过JVM的JPDA协议实现,无论你是调试线上Bug还是验证开发环境,配置逻辑都围绕“远端JVM启动参数”与“本地IDEA配置”的匹配展开,下面从场景、原理到……

    2026年8月18日
    900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注