全部产品
Search
文档中心

密钥管理服务:密钥管理快速入门

更新时间:Mar 22, 2024

您可以使用Key Management Service轻松地创建密钥,使用密钥加密、解密业务数据,保护您的数据安全。本文介绍如何创建及使用密钥。

概述

KMS提供默认密钥、软件密钥和硬件密钥三种密钥管理类型,以满足不同业务场景、安全与合规要求。更多详细信息,请您参见密钥服务概述密钥管理类型和密钥规格

默认密钥

服务密钥由云产品代您创建和管理,主密钥由您自主创建和管理。本文以创建和使用主密钥为例。

步骤一:创建主密钥

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

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

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

    配置项

    说明

    密钥别名

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

    描述信息

    自定义密钥的说明信息。

    高级选项

    密钥材料来源:

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

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

      说明

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

步骤二:使用密钥

您可在已集成KMS的阿里云产品中使用默认密钥。关于云产品集成KMS的更多信息,请参见云产品集成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用户授权为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密钥进行数据加密和解密

    KMS提供了KMS实例SDK,帮助您轻松使用密码运算API,实现使用密钥对数据进行加密、解密、签名、验签等功能。具体信息,请参见KMS实例SDK

    此外,根据使用场景KMS提供了详细的指导文档,便于您使用密钥。如果您使用KMS密钥在线加密和解密数据,请参见使用KMS密钥在线加密和解密数据。如果您使用KMS密钥进行信封加密,请参见使用KMS密钥进行信封加密

硬件密钥

前提条件

已购买并启用KMS硬件密钥管理实例。具体操作,请参见购买和启用KMS实例

步骤一:创建密钥

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

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

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

    配置项

    说明

    密钥类型

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

    重要

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

    密钥规格

    密钥的规格。

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

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

    密钥用途

    密钥的用途。取值:

    • 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用户授权为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加密概述支持集成KMS加密的云产品。关于云产品服务端加密集成KMS支持的密钥类型,请参考对应云产品的相关文档。

  • 应用集成KMS密钥进行数据加密和解密

    KMS提供了KMS实例SDK,帮助您轻松使用密码运算API,实现使用密钥对数据进行加密、解密、签名、验签等功能。具体信息,请参见KMS实例SDK

    此外,根据使用场景KMS提供了详细的指导文档,便于您使用密钥。如果您使用KMS密钥在线加密和解密数据,请参见使用KMS密钥在线加密和解密数据。如果您使用KMS密钥进行信封加密,请参见使用KMS密钥进行信封加密

相关文档