创建应用接入点
当自建应用访问KMS实例的资源时,需要通过应用接入点AAP完成身份和权限验证。本文介绍如何创建应用接入点。
什么是应用接入点
应用接入点AAP(Application Access Point)是KMS提供的一种身份验证和访问控制机制,当自建应用访问KMS实例的资源时,对其进行身份认证和行为鉴权。建议您为每个集成KMS的应用单独创建应用接入点,以确保访问权限的独立性。应用接入点AAP包含两个关键信息:权限策略和身份凭证。
KMS根据业务场景提供多种SDK,其支持的身份认证方式不同,有RAM认证(例如AccessKey、RAM角色等)和应用接入点AAP。建议您在创建应用接入点AAP前先了解SDK支持哪种认证方式。详细内容,请参见SDK参考。
权限策略
用于设置允许哪些应用访问KMS实例,以及允许访问KMS实例中的哪些密钥、凭据。每个应用接入点可以配置1~3个权限策略。每个权限策略包含如下内容:
作用域:应用允许访问的KMS实例。
RBAC权限:
允许访问资源:应用允许访问的密钥、凭据。支持在控制台直接选择,也可以手动输入,手动输入的资源格式如下:
密钥:格式为
key/密钥ID
,如果允许访问当前KMS实例的所有密钥请输入key/*
。凭据:格式为
secret/凭据ID
,如果允许访问当前KMS实例的所有凭据请输入secret/*
。
网络控制规则:自建应用所属服务器的私网IP地址,表示允许这些私网IP地址访问KMS实例。支持私网IP地址或者私网网段,多个IP地址之间用半角逗号(,)分隔。
身份凭证
身份凭证用于对KMS资源访问者进行身份认证和行为鉴权。支持两种身份凭证,本文以ClientKey为例进行介绍。
ClientKey(客户端密钥):应用与KMS实例之间通过ClientKey对请求进行数字签名和验证。包含凭证口令和应用身份凭证内容。
重要KMS不会保存ClientKey,如果您未保存或不慎遗失,请删除后新创建一个ClientKey。
ClientKey的有效期默认为5年,您也可以在创建ClientKey时指定有效期,推荐您设置为1年。请务必在到期前更换,以免无法正常访问KMS。具体操作,请参见更换ClientKey。建议您在更换完成后,在KMS删除不再使用的ClientKey。
如果ClientKey泄露,请删除并创建新的ClientKey。每个应用接入点最多可以创建3个ClientKey。
ClientKey到期前6个月、3个月、1个月、7天,阿里云会通过短信、邮件、站内信提醒您。您也可以设置云监控告警,在到期前提醒。具体操作,请参见告警设置。
RAMRole(RAM角色):当您应用程序的运行环境是ECS实例、ACK集群或函数计算并绑定了RAM角色,且需要通过KMS服务Endpoint获取凭据值时,可使用本方式。KMS将通过访问控制RAM对OpenAPI请求者进行委托认证。
前提条件
已购买和启用KMS实例。具体操作,请参见购买和启用KMS实例。
已创建密钥。具体操作,请参见密钥管理快速入门。
如果您需要在KMS托管凭据,请确保已创建凭据。具体操作,请参见凭据管理快速入门。
操作步骤
通过控制台创建
方式一:在实例管理页面快速创建(推荐)
该方式可以快速创建应用接入点,但有以下限制:
应用接入点中的ClientKey有效期为5年,不支持自定义有效期。建议您使用1年后及时更换,具体操作,请参见更换ClientKey。
应用接入点中的权限策略,允许访问资源默认为指定KMS实例中的所有密钥和凭据。您可以在创建完成后修改权限策略。具体操作,请参见修改应用接入点。
登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,单击实例管理页面。
在实例管理页面,单击快速创建应用接入点。
在快速创建应用接入点面板,完成各项配置后,单击创建。
保存凭证口令和应用身份凭证内容。
浏览器默认自动下载凭证口令和应用身份凭证内容,凭证口令文件名默认为
clientKey_****_Password.json
,应用身份凭证内容文件名默认为clientKey_****.json
。您也可以根据控制台指引手动保存。
方式二:在应用管理页面创建
登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,在左侧导航栏单击应用管理页面。
创建应用接入点AAP并配置权限策略。
在应用管理页面,单击创建应用接入点。
配置基本信息,其中认证方式请选择ClientKey,然后单击下一步。
配置权限与访问控制,单击下一步。
单击可选策略后的
图标,创建权限策略。关于各配置项的详细信息,请参见权限策略。
检查并确认信息无误后,单击创建。
创建并保存应用身份凭证(ClientKey)。
在创建成功对话框,单击创建凭证。
在身份凭证页签,单击创建凭证,然后单击确定。
Client Key加密口令:8~64位,支持数字、英文大小写、特殊字符
~!@#$%^&*?_-
。有效期:默认为5年,建议您设置为1年,以降低ClientKey被泄露的风险。
保存凭证口令和应用身份凭证内容。
浏览器默认自动下载凭证口令和应用身份凭证内容,凭证口令文件名默认为
clientKey_****_Password.json
,应用身份凭证内容文件名默认为clientKey_****.json
。您也可以根据控制台指引手动保存。
通过OpenAPI创建
调用CreateNetworkRule接口设置允许访问KMS的私网IP或私网网段。
调用CreatePolicy接口设置允许应用访问的密钥和凭据,并绑定网络控制规则。
调用CreateApplicationAccessPoint接口设置认证方式,并绑定权限策略。
调用CreateClientKey接口设置ClientKey的加密口令、有效期,并绑定应用接入点。
通过Terraform创建
具体操作,请参见创建应用接入点。
相关操作
通过SDK访问KMS实例时,还需要配置KMS实例CA证书以及KMS实例域名地址,建议您同步获取。
获取KMS实例CA证书
KMS实例内置SSL/TLS证书,使用HTTPS协议用于身份验证和加密通信。KMS实例CA证书,用于检查KMS实例SSL/TLS证书的有效性。例如:检查KMS实例SSL/TLS证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。
KMS实例仅支持TLS 1.2版本。
在实例管理页面,单击获取实例CA证书区域的下载。
在获取实例CA证书对话框中选择实例ID,单击下载并妥善保管。
CA证书下载后文件名默认为PrivateKmsCA_kst-******.pem。
获取KMS实例域名地址
在实例管理页面,单击软件密钥管理或硬件密钥管理页签后,选择目标KMS实例。
单击实例ID进入到详情页,查看实例VPC地址。
将实例VPC地址中的
https://
去掉,即KMS实例域名地址(也称为KMS实例Endpoint)。
相关文档
对于长期不使用的应用接入点,建议您及时删除。具体操作,请参见删除应用接入点。
对于使用超过1年的ClientKey,建议及时更换。具体操作,请参见更换ClientKey。