本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本文为您介绍什么是AccessKey,以及如何创建RAM用户和阿里云账号(主账号)的访问密钥AccessKey(简称AK)。
什么是AccessKey
访问密钥AccessKey(简称AK)是阿里云提供给用户的长期访问凭证,由AccessKey ID和AccessKey Secret组成的一组密钥对。
AccessKey ID:访问密钥的唯一公开标识符。
AccessKey Secret:访问密钥的密文部分。用于对API请求进行签名,以验证请求的真实性和完整性。AccessKey Secret必须严格保密。
为降低AccessKey泄露的风险,AccessKey Secret 只在创建时显示一次,后续无法查看。请务必妥善保管。
如何使用AccessKey
AccessKey不能用于控制台登录,而是用于以程序性的方式(如使用CLI、SDK、Terraform等)调用阿里云API。
根据阿里云的最佳实践,程序或服务应尽可能避免直接使用AccessKey来访问阿里云资源。阿里云提供了多种无AK方案,帮助您使用安全性更高的临时身份凭证(STS Token)访问阿里云资源。具体使用案例请参考:应用开发场景。
如确有需要创建和使用AccessKey,请参考使用AccessKey的最佳实践:正确保管和使用不可避免的AccessKey。
AccessKey的工作原理
AccessKey ID和AccessKey Secret由访问控制(RAM)根据算法生成,阿里云对其存储及传输均进行加密。
当程序使用AK发起请求时,请求会携带AccessKey ID以及使用AccessKey Secret加密请求内容生成的签名。阿里云收到请求后,会对其进行身份验证及请求合法性校验。关于阿里云所采用的具体签名机制,请参见V3版本请求体&签名机制。
AccessKey分类
AccessKey归属于阿里云账号或RAM用户。依据所属主体类型,可以将AccessKey分为以下两类:
阿里云账号(主账号)AccessKey(不推荐)
由阿里云账号(主账号)直接创建,默认拥有当前账号下的全部操作权限,可对所有资源执行管理。一旦主账号 AccessKey 泄露,风险极高。强烈建议不创建和使用主账号AccessKey。
RAM用户AccessKey(推荐)
属于RAM用户的程序访问凭证。需要先创建RAM用户,然后才能为其创建AccessKey。RAM用户AccessKey继承RAM用户的权限,可以进行最小化权限管理。建议针对每一个独立业务应用分配一个独立的RAM用户和AccessKey,防止因混用造成权限过大或泄露风险扩大。
权限需求
由于主账号权限过大,实际环境中应尽量避免使用主账号创建AccessKey,转而使用被授予相应权限的RAM用户来创建和管理AccessKey(主账号AccessKey除外)。
您可以为管理人员授予
AliyunRAMFullAccess(RAM管理员)系统策略,以允许其创建和管理RAM用户的AccessKey。您也可以打开RAM全局安全设置中的允许用户管理AccessKey选项(详情请参见管理RAM用户安全设置),允许用户管理自己的AccessKey。
说明打开该设置意味着所有RAM用户均可自主管理自己的AccessKey(包括创建、禁用、删除等所有AccessKey相关操作),除非管理员为其分配显式拒绝AccessKey操作的权限策略。
在生产环境中不建议打开该设置。如需允许特定用户自主管理AccessKey,建议使用自定义策略,并将
Resource限定在用户本人。参考策略如下:允许自主创建AccessKey
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateAccessKey", "ram:ListAccessKeys" ], "Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME" } ] }允许用户自主管理AccessKey
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateAccessKey", "ram:ListAccessKeys", "ram:UpdateAccessKey", "ram:DeleteAccessKey", "ram:GetAccessKeyLastUsed", "ram:ListAccessKeysInRecycleBin" ], "Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME" } ] }
创建RAM用户的AccessKey
请使用RAM管理员(AliyunRAMFullAccess)完成以下操作。如果您的账号中还没有任何RAM用户,请参考创建RAM用户。
RAM用户自主创建AccessKey的操作步骤同创建阿里云账号(主账号)的AccessKey。
控制台
登录RAM控制台。在左侧导航栏选择。
在用户列表中,找到目标 RAM 用户,单击其名称。
在认证管理页签下的AccessKey区域,单击创建AccessKey。
说明每个 RAM 用户最多允许创建 2 个 AccessKey。一个正常使用,另一个在需要轮转时创建,用于替换旧的AccessKey。
在弹出的对话框中,阅读AccessKey使用场景及使用建议,建议您遵从使用建议选择更合适的凭据方案。如必须创建AccessKey,请选择对应使用场景,勾选我确认必须创建AccessKey,然后单击继续创建。创建的AccessKey不受使用场景的影响。

根据界面提示完成安全验证。
在创建AccessKey对话框,保存AccessKey ID和AccessKey Secret,然后单击确定。
配置AccessKey网络访问限制策略(可选):您可以限制使用永久AccessKey的API请求来源IP地址,将AccessKey调用来源控制在可信的网络环境内,提升AccessKey的安全性。建议您明确AccessKey使用的网络环境,然后单击配置网络访问策略。具体操作请参见配置RAM用户的AccessKey级网络访问限制策略。
重要为降低AccessKey泄露的风险,AccessKey Secret 只在创建时显示一次,后续无法查看。请务必妥善保管。
OpenAPI
调用CreateAccessKey接口创建AccessKey,并传入以下参数:
UserPrincipalName:AccessKey绑定用户的登录名称,格式为test@example.onaliyun.com。用户的登录名称可在RAM控制台查看。
为降低AccessKey泄露的风险,AccessKey Secret 只在调用CreateAccessKey接口时显示,后续无法查看。请务必妥善保管。
创建阿里云账号(主账号)的AccessKey(不推荐)
如非必要,强烈不建议创建和使用主账号AccessKey。在创建和使用主账号AccessKey之前,请先评估是否可以使用RAM用户AccessKey替代。
使用阿里云账号(主账号)登录阿里云控制台。
将鼠标悬浮在右上方的账号图标上,单击AccessKey。

在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须创建主账号AccessKey,勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。

在AccessKey页面,单击创建AccessKey。
说明阿里云账号最多允许创建 2 个 AccessKey。一个正常使用,另一个在需要轮转时创建,用于替换旧的AccessKey。
在创建云账号AccessKey对话框,再次阅读创建主账号AccessKey的风险及使用限制,如果确定要创建主账号AccessKey,勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。

根据界面提示完成安全验证。
在创建AccessKey对话框,保存AccessKey ID和AccessKey Secret,然后勾选我已保存好AccessKey Secret,最后单击确定。
配置AccessKey网络访问限制策略(推荐):您可以限制使用永久AccessKey的API请求来源IP地址,将AccessKey调用来源控制在可信的网络环境内,提升AccessKey的安全性。建议您明确AccessKey使用的网络环境,然后单击配置网络访问策略。具体操作请参见配置主账号的AccessKey级网络访问限制策略。
重要为降低AccessKey泄露的风险,阿里云账号(主账号)的AccessKey Secret只在创建时显示,后续不支持查看,请妥善保管。