默认凭据概述

部分云产品将用户提交的敏感凭证以及自身产生的敏感凭证,例如数据库账密、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

集成支付宝MCP Server,为您的智能体应用添加收款功能

百炼(API Key)

免费凭据

100

AI网关

付费凭据

KMS实例额度为准。

创建密钥(AI网关)

API网关

付费凭据

KMS实例额度为准。

创建密钥(API网关)

步骤二:配置访问权限

要允许您的应用程序(通过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调用,用户侧可执行的操作主要集中在凭据的读取和权限策略管理,具体请参见下表。

说明

用户可以通过集成阿里云SDK调用OpenAPI,或者在应用程序中集成凭据客户端KMS Agent获取凭据。免费的默认凭据只能通过共享网关调用,付费的默认凭据既可以通过共享网关,也可以通过专属网关调用。

API

描述

云产品调用

用户调用

凭据管理

CreateSecret

创建凭据,并存入凭据的初始版本。

支持

不支持

ListSecrets

查询当前阿里云账号在调用地域的所有凭据。

支持

支持

DescribeSecret

获取凭据的元数据信息。

支持

支持

UpdateSecret

更新凭据的元数据。

支持

不支持

PutSecretValue

为凭据存入一个新版本的凭据值。

支持

不支持

UpdateSecretVersionStage

更新凭据的版本状态。

支持

不支持

DeleteSecret

计划删除或直接删除凭据。

支持

不支持

RestoreSecret

恢复计划删除中的凭据。

支持

不支持

ListSecretVersionIds

查询凭据的所有版本信息。

支持

支持

RotateSecret

手动轮转凭据。

支持

-

UpdateSecretRotationPolicy

更新凭据轮转策略。

-

-

SetSecretPolicy

设置凭据策略。

支持

支持

获取凭据

GetSecretValue

获取凭据值。

支持

支持

常见问题

  • 如何在控制台或代码中识别一个凭据是否为默认凭据?

    通过凭据名称。

    默认凭据的名称遵循<产品码>!<凭据标识>的固定格式,例如bailian!secret-123是百炼产品的默认凭据,aigw!secret-abcAI网关的默认凭据。

  • 我的应用程序获取默认凭据失败,应如何排查?

    请按以下步骤排查:

    1. 权限检查:确认运行应用程序的RAM角色或RAM用户是否已被授予访问目标凭据的权限策略。

    2. 凭据状态检查:在KMS控制台检查凭据是否处于正常状态,而不是计划删除中。

    3. 网络连通性:如果使用专属网关,请检查应用程序所在VPCKMS专属网关之间的网络是否可达。

    4. 加密密钥权限:如果凭据使用用户自主管理的密钥加密(即付费模式),请确认RAM身份是否同时拥有该密钥的kms:Decrypt权限。

  • 默认凭据有QPS(每秒查询率)限制吗?

    有。以获取凭据值为例,通过共享网关调用时QPS限制为450,通过专属网关调用时,QPS以您购买的实例规格为准,具体数据,请参见性能数据