部分云产品将用户提交的敏感凭证以及自身产生的敏感凭证,例如数据库账密、API Key、AccessKey/AccessKeySecret等创建为KMS凭据,使用KMS安全存储,这类凭据称为默认凭据。云产品以及用户的应用程序通过KMS获取凭据,KMS为这些凭据提供安全存储、访问控制、操作审计以及多种接入方案,避免敏感凭证泄露风险。本文介绍什么是默认凭据。
什么是默认凭据
默认凭据本质上是由云产品为您创建和管理的KMS凭据。
管理权(由云产品负责):默认凭据的创建、更新和删除等生命周期操作,均由其关联的云产品完成。
使用权(由您控制):您作为资源所有者,可以通过RAM访问控制来精确控制,哪个身份(RAM用户/角色)可以在何种条件下访问和使用这些凭据。
默认凭据的名称遵循固定的格式 <产品码>!<凭据标识>,例如 bailian!secret-123 是百炼产品创建的凭据。
托管模式说明
默认凭据提供免费和付费两种托管模式,其在费用、安全、功能等方面存在差异,具体以各云产品支持的情况为准。
对比维度 | 免费的默认凭据 | 付费的默认凭据 |
费用 | 免费。 无需额外购买KMS实例。 | 付费。 需购买KMS实例,按实例规格付费。 |
额度限制 | 每个云产品额度有限。 | 由所购买的KMS实例规格决定,支持按需扩容。 |
生命周期管理 | 用户仅能通过云产品侧进行删除或修改,KMS侧仅可读取。 | 用户仅能通过云产品侧进行删除或修改,KMS侧仅可读取。 |
加密密钥 | 使用阿里云系统托管密钥,用户不可见、不可控。 | 使用用户自主管理(CMK)的密钥,用户对加密密钥拥有完全控制权。 因此您在云产品侧创建默认凭据前,需要先在KMS侧创建密钥。 |
权限策略 | 仅支持基于身份的策略。 | 支持如下两种策略: |
安全审计 | 仅支持在操作审计中查询访问记录。 | 操作审计及KMS实例的SLS日志中均可查询访问记录。 |
访问网关 | 共享网关 | 专属网关、共享网关 |
集成流程
步骤一:确认云产品支持情况
在开始之前,请确认您使用的云产品支持默认凭据功能。默认凭据由用户在云产品侧触发创建,云产品扮演RAM角色在KMS侧创建默认凭据。
产品 | 支持的凭据类型 | 额度 | 参考文档 |
百炼(MCP) | 免费凭据 | 20 | |
百炼(API Key) | 免费凭据 | 100 | 无 |
AI网关 | 付费凭据 | 以KMS实例额度为准。 | |
API网关 | 付费凭据 | 以KMS实例额度为准。 |
步骤二:配置访问权限
要允许您的应用程序(通过RAM角色)或开发人员(通过RAM用户)获取凭据值,您必须为其授予相应的RAM权限。
您可以配置基于身份的策略,若使用付费模式,还可以配置凭据策略以实现更灵活的授权。
若凭据采用付费模式(即使用用户自主管理的密钥加密),授权策略中除了需包含对凭据的操作权限外,还必须包含对该加密密钥的解密权限(kms:Decrypt)。
基于身份的策略
该策略授权给RAM用户或RAM角色上,用于控制其能访问哪些凭据。授权的具体操作,请参见授权信息。
以下示例表示允许访问百炼(产品码
mcp)创建的所有默认凭据。{ "Version": "1", "Statement": [{ "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*", "kms:GetSecretValue" ], "Resource": "acs:kms:${region}:${account}:secret/mcp!*" }] }凭据策略(仅限付费模式)
该策略直接附加在默认凭据资源上,常用于实现跨账号授权。
以下示例表示,允许另一个阿里云账号(
190325303126****)下的RAM用户(key_ramuser3)获取此凭据的凭据值。{ "Statement": [ { "Action": [ "kms:List*", "kms:Describe*", "kms:GetSecretValue" ], "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::190325303126****:user/key_ramuser3" ] }, "Resource": [ "acs:kms:cn-hangzhou:123456789012****:secret/ai-gateway!secret-name" ] }], "Version": "1" }
步骤三:调用凭据
支持以下调用方式:
支持调用的API
默认凭据支持云产品调用以及用户调用。默认凭据的创建、更新和删除等写操作由其关联的云产品自动完成,用户无法直接通过API调用,用户侧可执行的操作主要集中在凭据的读取和权限策略管理,具体请参见下表。
API | 描述 | 云产品调用 | 用户调用 | |
凭据管理 | 创建凭据,并存入凭据的初始版本。 | |||
查询当前阿里云账号在调用地域的所有凭据。 | ||||
获取凭据的元数据信息。 | ||||
更新凭据的元数据。 | ||||
为凭据存入一个新版本的凭据值。 | ||||
更新凭据的版本状态。 | ||||
计划删除或直接删除凭据。 | ||||
恢复计划删除中的凭据。 | ||||
查询凭据的所有版本信息。 | ||||
手动轮转凭据。 | - | |||
更新凭据轮转策略。 | - | - | ||
设置凭据策略。 | ||||
获取凭据 | 获取凭据值。 |
常见问题
如何在控制台或代码中识别一个凭据是否为默认凭据?
通过凭据名称。
默认凭据的名称遵循
<产品码>!<凭据标识>的固定格式,例如bailian!secret-123是百炼产品的默认凭据,aigw!secret-abc是AI网关的默认凭据。我的应用程序获取默认凭据失败,应如何排查?
请按以下步骤排查:
权限检查:确认运行应用程序的RAM角色或RAM用户是否已被授予访问目标凭据的权限策略。
凭据状态检查:在KMS控制台检查凭据是否处于正常状态,而不是计划删除中。
网络连通性:如果使用专属网关,请检查应用程序所在VPC与KMS专属网关之间的网络是否可达。
加密密钥权限:如果凭据使用用户自主管理的密钥加密(即付费模式),请确认RAM身份是否同时拥有该密钥的
kms:Decrypt权限。
默认凭据有QPS(每秒查询率)限制吗?
有。以获取凭据值为例,通过共享网关调用时QPS限制为450,通过专属网关调用时,QPS以您购买的实例规格为准,具体数据,请参见性能数据。