管理密钥

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

KMS为您提供密钥的全生命周期管理和安全存储能力,本文介绍如何创建密钥、禁用密钥、开启删除保护、计划删除密钥及为密钥设置标签。

创建密钥

默认密钥

默认密钥包含服务密钥、主密钥,服务密钥由云产品创建及管理生命周期,主密钥由您创建及管理生命周期。您可以参考如下步骤创建主密钥。

说明

每个地域下,只支持您创建一个默认密钥(主密钥)。如您需要创建多个密钥,建议购买KMS实例。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,单击默认密钥页签。

  3. 单击主密钥操作列的启用,完成配置项设置,然后单击确定

    配置项

    说明

    密钥别名

    密钥的别名标识符。支持英文字母、数字、下划线(_)、短划线(-)和正斜线(/)。

    描述信息

    自定义密钥的说明信息。

    高级选项

    密钥材料来源

    • 阿里云KMS:密钥材料将由KMS生成。

    • 外部:KMS不会生成密钥材料,您需要自行导入密钥材料。更多信息,请参见导入对称密钥材料

      说明

      请仔细阅读并选中我了解使用外部密钥材料的方法和意义

软件密钥

创建软件密钥前,请确保已购买并启用KMS实例。具体操作,请参见购买和启用KMS实例

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,单击用户主密钥页签,实例ID选择软件密钥管理实例,单击创建密钥

  3. 创建密钥面板,完成配置项设置,然后单击确定

    配置项

    说明

    密钥类型

    选择密钥是对称密钥还是非对称密钥。

    重要

    如果您创建的密钥用于加密凭据值,请选择对称密钥。

    密钥规格

    密钥的规格。关于密钥规格遵循的标准、密钥算法等详细介绍,请参见密钥管理类型和密钥规格

      • 对称密钥规格:Aliyun_AES_256

      • 非对称密钥规格:RSA_2048、RSA_3072、EC_P256、EC_P256K

    密钥用途

    密钥的用途。取值:

    • Encrypt/Decrypt:数据加密和解密。

    • Sign/Verify:产生和验证数字签名。

    密钥别名

    密钥的别名标识符。支持英文字母、数字、下划线(_)、短划线(-)和正斜线(/)。

    标签

    密钥的标签,方便您对密钥进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。

    说明
    • 标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)、空格。

    • 标签键不能以aliyun或acs:开头。

    • 每个密钥最多可以设置20个标签键值对。

    自动轮转

    仅对称密钥支持设置自动轮转,开关默认开启。详细内容,请参见密钥轮转

    轮转周期

    支持设置为7~365天。

    描述信息

    密钥的说明信息。

    高级设置

    密钥的策略配置。

    • 默认策略:如果密钥由当前主账号使用,或者资源共享单元中的主账号使用,请选择默认策略。

      • 实例未共享给其他账号:仅当前主账号能管理及使用密钥。

      • 实例已共享给其他账号:以主账号1将KMS实例A共享给主账号2为例介绍。

        • 主账号1创建的密钥:仅主账号1能管理及使用密钥。

        • 主账号2创建的密钥:主账号1和主账号2,都能管理及使用密钥。

    • 自定义策略:如果密钥需要授权给RAM用户、RAM角色,或授权给其他账号使用,请选择自定义策略。

      重要

      选择管理员、使用者时不消耗访问管理数量配额。选择其他账号使用者时,会消耗KMS实例的访问管理数量配额,按主账号个数计算消耗的配额,如果您取消了授权,请等待约5分钟,再查看配额,配额会返还。

      • 管理员:对密钥进行管控类操作,不支持密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

        管理员支持的权限列表

        {
        	"Statement": [
        		{
        			"Action": [
        				"kms:List*",
        				"kms:Describe*",
        				"kms:Create*",
        				"kms:Enable*",
        				"kms:Disable*",
        				"kms:Get*",
        				"kms:Set*",
        				"kms:Update*",
        				"kms:Delete*",
        				"kms:Cancel*",
        				"kms:TagResource",   
        				"kms:UntagResource", 
        				"kms:ImportKeyMaterial",
        				"kms:ScheduleKeyDeletion"
        			]
        		}
        	]
        }
      • 使用者:仅支持使用密钥进行密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

        使用者支持的权限列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }
      • 其他账号使用者:使用密钥进行加解密,可以是其他阿里云账号的RAM用户或RAM角色。

        • RAM用户:格式为acs:ram::<userId>:user/<ramuser>,例如acs:ram::119285303511****:user/testpolicyuser

        • RAM角色:格式为acs:ram::<userId>:role/<ramrole>,例如acs:ram::119285303511****:role/testpolicyrole

          说明

          授权给RAM用户、RAM角色后,您仍需在访问控制RAM侧,使用该RAM用户、RAM角色的主账号为其授权使用该密钥,RAM用户、RAM角色才能使用该密钥。

          具体操作,请参见密钥管理服务自定义权限策略参考为RAM用户授权为RAM角色授权

        其他账号使用者支持的权限列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }

硬件密钥

创建硬件密钥前,请确保已购买并启用KMS实例。具体操作,请参见购买和启用KMS实例

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,单击用户主密钥页签,实例ID选择硬件密钥管理实例,单击创建密钥

  3. 创建密钥面板,完成配置项设置,然后单击确定

    配置项

    说明

    密钥类型

    选择要创建的密钥是对称密钥还是非对称密钥。

    重要

    如果您创建的密钥用于加密凭据值,请选择对称密钥。

    密钥规格

    密钥的规格。关于密钥规格遵循的标准、密钥算法等详细介绍,请参见密钥管理类型和密钥规格

      • 对称密钥规格:Aliyun_AES_256、Aliyun_AES_192、Aliyun_AES_128、Aliyun_SM4

      • 非对称密钥规格:RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P256K、EC_SM2

    密钥用途

    密钥的用途。取值:

    • Encrypt/Decrypt:数据加密和解密。

    • Sign/Verify:产生和验证数字签名。

    密钥别名

    密钥的别名标识符。支持英文字母、数字、下划线(_)、短划线(-)和正斜线(/)。

    标签

    密钥的标签,方便您对密钥进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。

    说明
    • 标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)、空格。

    • 标签键不能以aliyun或acs:开头。

    • 每个密钥最多可以设置20个标签键值对。

    描述信息

    密钥的说明信息。

    高级选项

    策略配置

    • 默认策略:如果密钥由当前主账号使用,或者资源共享单元中的主账号使用,请选择默认策略。

      • 实例未共享给其他账号:仅当前主账号能管理及使用密钥。

      • 实例已共享给其他账号:以主账号1将KMS实例A共享给主账号2为例介绍。

        • 主账号1创建的密钥:仅主账号1能管理及使用密钥。

        • 主账号2创建的密钥:主账号1和主账号2,都能管理及使用密钥。

    • 自定义策略:如果密钥需要授权给RAM用户、RAM角色,或授权给其他账号使用,请选择自定义策略。

      重要

      选择管理员、使用者时不消耗访问管理数量配额。选择其他账号使用者时,会消耗KMS实例的访问管理数量配额,按主账号个数计算消耗的配额,如果您取消了授权,请等待约5分钟,再查看配额,配额会返还。

      • 管理员:对密钥进行管控类操作,不支持密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

        管理员支持的权限列表

        {
        	"Statement": [
        		{
        			"Action": [
        				"kms:List*",
        				"kms:Describe*",
        				"kms:Create*",
        				"kms:Enable*",
        				"kms:Disable*",
        				"kms:Get*",
        				"kms:Set*",
        				"kms:Update*",
        				"kms:Delete*",
        				"kms:Cancel*",
        				"kms:TagResource",   
        				"kms:UntagResource", 
        				"kms:ImportKeyMaterial",
        				"kms:ScheduleKeyDeletion"
        			]
        		}
        	]
        }
      • 使用者:仅支持使用密钥进行密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

        使用者支持的权限列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }
      • 其他账号使用者:使用密钥进行加解密,可以是其他阿里云账号的RAM用户或RAM角色。

        • RAM用户:格式为acs:ram::<userId>:user/<ramuser>,例如acs:ram::119285303511****:user/testpolicyuser

        • RAM角色:格式为acs:ram::<userId>:role/<ramrole>,例如acs:ram::119285303511****:role/testpolicyrole

          说明

          授权给RAM用户、RAM角色后,您仍需在访问控制RAM侧,使用该RAM用户、RAM角色的主账号为其授权使用该密钥,RAM用户、RAM角色才能使用该密钥。

          具体操作,请参见密钥管理服务自定义权限策略参考为RAM用户授权为RAM角色授权

        其他账号使用者支持的权限列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }

    密钥材料来源

    • 阿里云KMS:密钥材料将由KMS生成。

    • 外部:KMS不会生成密钥材料,您需要自行导入密钥材料。更多信息,请参见导入对称密钥材料导入非对称密钥材料

      说明

      请仔细阅读并选中我了解使用外部密钥材料的方法和意义

外部密钥

  • 请确保已购买并启用KMS外部密钥管理实例。具体操作,请参见购买和启用KMS实例

  • 请提前通过XKI Proxy代理服务,在密钥管理设施中创建密钥,并记录密钥ID。具体操作,请参见密钥管理设施相关文档。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,单击用户主密钥页签,实例ID选择外部密钥管理实例,单击创建密钥

  3. 创建密钥面板,完成配置项设置,然后单击确定

    配置项

    说明

    外部密钥ID

    通过XKI管理服务生成的密钥的密钥ID。

    说明

    支持使用同一个外部密钥ID创建一个或多个KMS密钥。

    密钥规格

    密钥的规格。关于密钥规格遵循的标准、密钥算法等详细介绍,请参见密钥管理类型和密钥规格

    Aliyun_AES_256、Aliyun_SM4

    密钥用途

    密钥的用途。

    Encrypt/Decrypt:数据加密和解密。

    密钥别名

    密钥的别名标识符。支持英文字母、数字、下划线(_)、短划线(-)和正斜线(/)。

    标签

    密钥的标签,方便您对密钥进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。

    说明
    • 标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)、空格。

    • 标签键不能以aliyun或acs:开头。

    • 每个密钥最多可以设置20个标签键值对。

    描述信息

    密钥的说明信息。

    高级选项

    • 默认策略:如果密钥由当前主账号使用,或者资源共享单元中的主账号使用,请选择默认策略。

      • 实例未共享给其他账号:仅当前主账号能管理及使用密钥。

      • 实例已共享给其他账号:以主账号1将KMS实例A共享给主账号2为例介绍。

        • 主账号1创建的密钥:仅主账号1能管理及使用密钥。

        • 主账号2创建的密钥:主账号1和主账号2,都能管理及使用密钥。

    • 自定义策略:如果密钥需要授权给RAM用户、RAM角色,或授权给其他账号使用,请选择自定义策略。

      重要

      选择管理员、使用者时不消耗访问管理数量配额。选择其他账号使用者时,会消耗KMS实例的访问管理数量配额,按主账号个数计算消耗的配额,如果您取消了授权,请等待约5分钟,再查看配额,配额会返还。

      • 管理员:对密钥进行管控类操作,不支持密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

        管理员支持的权限列表

        {
        	"Statement": [
        		{
        			"Action": [
        				"kms:List*",
        				"kms:Describe*",
        				"kms:Create*",
        				"kms:Enable*",
        				"kms:Disable*",
        				"kms:Get*",
        				"kms:Set*",
        				"kms:Update*",
        				"kms:Delete*",
        				"kms:Cancel*",
        				"kms:TagResource",   
        				"kms:UntagResource", 
        				"kms:ImportKeyMaterial",
        				"kms:ScheduleKeyDeletion"
        			]
        		}
        	]
        }
      • 使用者:仅支持使用密钥进行密码运算操作。支持选择当前主账号下的RAM用户和RAM角色。

        使用者支持的权限列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }
      • 其他账号使用者:使用密钥进行加解密,可以是其他阿里云账号的RAM用户或RAM角色。

        • RAM用户:格式为acs:ram::<userId>:user/<ramuser>,例如acs:ram::119285303511****:user/testpolicyuser

        • RAM角色:格式为acs:ram::<userId>:role/<ramrole>,例如acs:ram::119285303511****:role/testpolicyrole

          说明

          授权给RAM用户、RAM角色后,您仍需在访问控制RAM侧,使用该RAM用户、RAM角色的主账号为其授权使用该密钥,RAM用户、RAM角色才能使用该密钥。

          具体操作,请参见密钥管理服务自定义权限策略参考为RAM用户授权为RAM角色授权

        其他账号使用者支持的权限列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }

禁用密钥

如果您不再需要使用密钥,推荐您先禁用密钥,确认不再使用后再删除密钥。密钥被禁用后无法用于密码运算。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,在用户主密钥默认密钥页签,定位到目标密钥,单击操作列的禁用

  3. 禁用密钥对话框,确认无误后,单击确定

    您可以单击密钥关联信息,检测该密钥是否被用于云产品服务端加密。详细内容,请参见密钥关联检测

    成功禁用密钥后,密钥状态由启用中变为已禁用。您也可以单击启用,再次启用密钥。

开启删除保护

为密钥开启删除保护后,您将无法通过控制台或API删除该密钥,从而避免误删除密钥。如果您确认需要删除密钥,要先关闭删除保护。

说明

待删除状态的密钥无法开启删除保护。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,在用户主密钥默认密钥页签,定位到目标密钥,单击操作列的详情

  3. 在密钥详情页面,打开删除保护开关。

  4. 确认开启对话框,确认无误后,单击确定

计划删除密钥

KMS不支持直接删除密钥,仅支持计划删除密钥,即通过设置预删除周期,在到期后删除密钥。计划删除密钥前请确保密钥已经关闭删除保护。

如果您不再使用密钥,推荐您先禁用密钥,确保不影响您的业务后再通过计划删除密钥来进行删除。

警告

系统会在预删除周期后删除密钥,使用该密钥加密的内容及产生的数据密钥也将无法解密。删除密钥前,请确认该密钥已不再使用,否则会导致您的业务不可用。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 用户主密钥默认密钥页签,定位到目标密钥,单击操作列的image.png图标后,单击计划删除密钥

  3. 计划删除密钥对话框,确认无误后,单击确定

    您可以单击密钥关联信息,检测该密钥是否被用于云产品服务端加密。详细内容,请参见密钥关联检测

    设置预删除周期后,密钥状态由启用中变为待删除。处于待删除状态的密钥无法用于加解密和产生数据密钥。在预删除周期结束前,您也可以取消删除密钥

下载非对称密钥的公钥

创建非对称密钥后,您可以下载密钥对中的公钥,不支持下载私钥。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 用户主密钥默认密钥页签,定位到目标密钥,单击操作列的详情

  3. 密钥版本页签,单击操作列的查看公钥

  4. 查看公钥对话框中单击下载

密钥关联检测

仅支持检测该密钥是否被ECS服务器用于服务端加密,不支持检测是否被其它云产品用于加密,也不支持检测是否被您的自建应用使用。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 用户主密钥默认密钥页签,定位到目标密钥,单击操作列的详情

  3. 密钥关联页签,单击关联检测,等待约1分钟后,单击右侧的image.png图标,查看检测结果。

    • 云产品:仅支持ECS。

    • 最后一次调用时间:云产品向KMS访问该密钥的最近时间。

      说明

      仅365天内的调用请求展示调用时间,对365天之前的调用,不展示最近一次调用时间。

    • 检测状态:本次检测状态。如显示失败,请刷新后重试。

    • 云产品查询入口:云产品提供的查询功能,查询KMS密钥用于加密云产品的哪个资源。

      重要

      ECS云盘密钥关联ECS快照密钥关联查询界面,仅展示当前账号有权限访问的云盘或快照。

    根据检测结果,如果密钥仍被使用,请您谨慎删除。

为密钥配置标签

密钥的标签,方便您对密钥进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。仅KMS实例中的密钥支持设置标签,默认密钥暂不支持设置标签。

说明
  • 标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)、空格。

  • 标签键不能以aliyun或acs:开头。

  • 每个密钥最多可以设置20个标签键值对。

为单个密钥配置标签

方式

操作

方式一:在密钥管理页面配置标签

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,选择实例ID,定位到目标密钥,单击标签列的image.png图标。

  3. 单击绑定,在编辑标签对话框中输入多个标签键标签值后,单击确认,然后在变更提示对话框中单击关闭

    您也可以在编辑标签对话框中修改标签值、批量解绑标签。

方式二:在密钥详情页面配置标签

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,选择实例ID,定位到目标密钥,单击操作列的密钥详情

  3. 在密钥详情页面,单击标签后的image.png图标。

  4. 编辑标签对话框中输入多个标签键标签值后,单击确认,然后在变更提示对话框中单击关闭

    您也可以在编辑标签对话框中修改标签值、批量解绑标签。

为多个密钥批量配置标签

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 密钥管理

  2. 密钥管理页面,选择实例ID,在密钥列表中勾选要操作的密钥。

    • 增加标签:在密钥列表的最下方,单击增加标签,输入多个标签键标签值后,单击确认,然后在变更提示对话框中单击关闭

    • 删除标签:在密钥列表的最下方,单击删除标签,在批量解绑标签对话框勾选要解绑的标签,单击解绑标签,然后在变更提示对话框中单击关闭