授权信息

本文以RAM用户为例介绍如何授权。

操作步骤

  1. 使用阿里云账号登录RAM控制台

  2. 创建自定义的权限策略。

    1. 在左侧导航栏,选择权限管理 > 权限策略

    2. 权限策略页面,单击创建权限策略

    3. 创建权限策略页面,单击脚本编辑页签。

      说明

      RAM提供可视化编辑和脚本编辑方式来创建权限策略。创建KMS资源的自定义权限策略时,您需要使用脚本编辑方式,可视化编辑方式仅支持选择KMS的全部资源和全部操作。

    4. 编辑权限策略脚本,然后单击继续编辑基本信息

      编写KMS权限策略脚本时,您需要自定义授权语句,包括效果(Effect)、操作(Action)、资源(Resource)以及条件(Condition,可选项)。更多信息,请参见附录:KMS支持的资源(Resource)、操作(Action)、条件(Condition)

      说明

      关于权限策略语法结构的详情,请参见权限策略语法和结构

    5. 输入权限策略名称和备注信息,根据页面提示检查并优化权限策略内容。

    6. 单击确定

  3. 授予RAM用户自定义的权限策略。

    1. 在左侧导航栏,选择身份管理 > 用户

    2. 用户页面,找到目标RAM用户,在操作列单击添加权限

    3. 新增授权面板,完成如下配置,然后单击确认新增授权

      配置项

      说明

      资源范围

      选择权限在当前阿里云账号生效或者在指定资源组内生效。目前KMS还未支持资源组功能,请选择整个云账号

      授权主体

      需要授权的RAM用户。系统自动填入您选择的RAM用户,您也可以手动添加其他RAM用户。

      权限策略

      根据使用场景选择自定义的权限策略。

附录:KMS支持的资源(Resource)、操作(Action)、条件(Condition)

资源(Resource)

KMS定义的资源类型包括抽象密钥容器、抽象凭据容器、抽象别名容器、密钥、凭据、别名,您可以通过以下方式获取资源对应的资源名称ARN(Aliyun Resource Names),用于RAM权限策略的Resource元素。例如,查看密钥的ARN:

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

  2. 用户主密钥页签,定位到目标密钥,单击操作列的详情,在密钥详情页面获取ARN。密钥详情不同资源类型对应的ARN格式不同,具体信息,如下表所示。

    说明

    请将${region}${account}替换为您实际的地域和阿里云账号,您也可以根据需求缩小资源范围。${region}支持通配符*,表示所有支持的地域。

    资源类型

    ARN

    抽象密钥容器

    acs:kms:${region}:${account}:key

    抽象凭据容器

    acs:kms:${region}:${account}:secret

    抽象别名容器

    acs:kms:${region}:${account}:alias

    密钥

    acs:kms:${region}:${account}:key/${key-id}

    说明

    密钥资源的ARN支持通配符*。例如:

    • acs:kms:${region}:${account}:key/*:表示对应地域和账号下的所有密钥。

    • acs:kms:*:${account}:key/*:表示对应账号下所有地域的所有密钥。

    凭据

    acs:kms:${region}:${account}:secret/${secret-name}

    说明

    凭据资源的ARN支持以下两种通配方式:

    • acs:kms:${region}:${account}:secret/*:表示对应地域和账号下的所有凭据。

    • acs:kms:${region}:${account}:secret/prefix*:表示对应地域和账号下凭据名称前缀为prefix的所有凭据。

    别名

    acs:kms:${region}:${account}:alias/${alias-name}

操作(Action)

针对每一个需要进行访问控制的接口,KMS都定义了用于RAM权限策略的操作(Action),通常为kms:<api-name>

说明

操作DescribeRegions不需要进行访问控制,只要请求可以通过认证校验,即可调用。调用者可以是阿里云账号、RAM用户或RAM角色。

以下表格列出了KMS接口的对应RAM权限策略操作,以及接口所访问的资源类型。

说明

请将${region}${account}替换为您实际的地域和阿里云账号,您也可以根据需求缩小资源范围。${region}支持通配符*,表示所有支持的地域。

密钥接口

KMS接口

Action

资源类型

ARN格式

ListKeys

kms:ListKeys

抽象密钥容器

acs:kms:${region}:${account}:key

CreateKey

kms:CreateKey

DescribeKey

kms:DescribeKey

密钥

acs:kms:${region}:${account}:key/${key-id}

UpdateKeyDescription

kms:UpdateKeyDescription

EnableKey

kms:EnableKey

DisableKey

kms:DisableKey

ScheduleKeyDeletion

kms:ScheduleKeyDeletion

CancelKeyDeletion

kms:CancelKeyDeletion

GetParametersForImport

kms:GetParametersForImport

ImportKeyMaterial

kms:ImportKeyMaterial

DeleteKeyMaterial

kms:DeleteKeyMaterial

ListAliasesByKeyId

kms:ListAliasesByKeyId

CreateKeyVersion

kms:CreateKeyVersion

DescribeKeyVersion

kms:DescribeKeyVersion

ListKeyVersions

kms:ListKeyVersions

UpdateRotationPolicy

kms:UpdateRotationPolicy

Encrypt

kms:Encrypt

Decrypt

kms:Decrypt

ReEncrypt

  • kms:ReEncryptFrom

    说明

    需要有操作源主密钥的kms:ReEncryptFrom权限。

  • kms:ReEncryptTo

    说明

    需要有操作目的主密钥的kms:ReEncryptTo权限。

GenerateDataKey

kms:GenerateDataKey

GenerateDataKeyWithoutPlaintext

kms:GenerateDataKeyWithoutPlaintext

ExportDataKey

kms:ExportDataKey

GenerateAndExportDataKey

kms:GenerateAndExportDataKey

AsymmetricSign

kms:AsymmetricSign

AsymmetricVerify

kms:AsymmetricVerify

AsymmetricEncrypt

kms:AsymmetricEncrypt

AsymmetricDecrypt

kms:AsymmetricDecrypt

GetPublicKey

kms:GetPublicKey

ListAliases

kms:ListAliases

抽象别名容器

acs:kms:${region}:${account}:alias

CreateAlias

kms:CreateAlias

别名和密钥

  • 别名:acs:kms:${region}:${account}:alias/${alias-name}

  • 密钥:acs:kms:${region}:${account}:key/${key-id}

UpdateAlias

kms:UpdateAlias

DeleteAlias

kms:DeleteAlias

凭据接口

KMS 接口

Action

资源类型

ARN

CreateSecret

kms:CreateSecret

抽象凭据容器

acs:kms:${region}:${account}:secret

ListSecrets

kms:ListSecrets

DescribeSecret

kms:DescribeSecret

凭据

acs:kms:${region}:${account}:secret/${secret-name}

DeleteSecret

kms:DeleteSecret

UpdateSecret

kms:UpdateSecret

RestoreSecret

kms:RestoreSecret

GetSecretValue

  • kms:GetSecretValue

  • kms:Decrypt

说明

仅当您使用自己创建的CMK作为凭据的加密主密钥时,需要验证kms:Decrypt。

PutSecretValue

  • kms:PutSecretValue

  • kms:GenerateDataKey

说明

仅当您使用自己创建的CMK作为凭据的加密主密钥时,需要验证kms:GenerateDataKey。

ListSecretVersionIds

kms:ListSecretVersionIds

UpdateSecretVersionStage

kms:UpdateSecretVersionStage

GetRandomPassword

kms:GetRandomPassword

标签接口

KMS 接口

Action

资源类型

ARN

ListResourceTags

kms:ListResourceTags

密钥

  • 密钥:acs:kms:${region}:${account}:key/${key-id}

  • 凭据:acs:kms:${region}:${account}:secret/${secret-name}

UntagResource

kms:UntagResource

密钥或凭据

TagResource

kms:TagResource

条件(Condition)

Condition元素用于指定授权生效的限制条件,是可选元素。您可以在RAM权限策略中设定条件关键字控制对KMS的访问,只有当条件满足时,权限验证才能通过。

  • 使用阿里云通用条件关键字:命名格式为acs:<condition-key>。例如,您可以使用acs:CurrentTime条件限制权限策略有效的时间。

    更多信息,请参见权限策略基本元素

  • 使用产品级条件关键字:命名格式为kms:<condition-key>。KMS目前支持的产品级条件关键字,请参见条件键