

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置 Amazon KMS 的钥匙 Amazon Web Services 支持 授权
<a name="support-authorization-kms"></a>

## 键要求
<a name="support-authorization-kms-requirements"></a>

支持许可证的加密签名需要客户管理的 Amazon KMS 密钥。您的密钥必须满足以下要求：
+ 关键规格：`ECC_NIST_P384`
+ 密钥用法：`SIGN_VERIFY`
+ 密钥必须与支持许可证位于同一 Amazon 区域。

您的私钥材料永远不会消失 Amazon KMS。您可以在密钥上创建授权，允许其调用`DescribeKey``GetPublicKey`、和`Sign`。补助金的范围仅限于支持许可证，当支持许可证被删除或停用时，该补助金将失效。

## 操作方法 Amazon Web Services 支持 授权使用你的 Amazon KMS 键
<a name="support-authorization-kms-how-used"></a>

创建支持许可证时，您的 Amazon KMS 密钥将按以下方式使用：

1. 使用[前向访问会话](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_forward_access_sessions.html)`DescribeKey`代表您拨打电话，验证密钥是否符合要求的规范 (`ECC_NIST_P384`) 和用法 (`SIGN_VERIFY`)。

1. 代表您致电，在密钥`CreateGrant`上创建授权。该赠款允许`DescribeKey``GetPublicKey`、和`Sign`操作。

1. 当 Amazon Web Services 支持 请求与现有支持许可证匹配时，使用授权调`Sign`用密钥来验证授权。生成的签名将验证 Amazon Web Services 支持 谁有权执行该操作。

## 所需的关键政策声明
<a name="support-authorization-kms-policy"></a>

将以下政策声明添加到您的 Amazon KMS 密钥策略中。这些是 Amazon Web Services 支持 授权使用密钥所需的最低权限。

```
{
  "Sid": "Allows access to CreateGrant through SupportAuthZ",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleRole"},
  "Action": ["kms:CreateGrant"],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": "supportauthz.us-east-1.amazonaws.com",
      "kms:GranteeServicePrincipal": "us-east-1.supportauthz.amazonaws.com",
      "kms:RetiringServicePrincipal": "us-east-1.supportauthz.amazonaws.com"
    },
    "ForAllValues:StringEquals": {
      "kms:GrantOperations": ["DescribeKey", "GetPublicKey", "Sign"]
    },
    "ArnLike": {
      "kms:GrantConstraintSourceArn": "arn:aws:supportauthz:us-east-1:111122223333:supportpermit/*"
    }
  }
},
{
  "Sid": "Allows access to DescribeKey through SupportAuthZ",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleRole"},
  "Action": ["kms:DescribeKey"],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": "supportauthz.us-east-1.amazonaws.com"
    }
  }
}
```

这些语句授予以下权限：

CreateGrant  
允许为`DescribeKey``GetPublicKey`、和`Sign`操作创建授权。这些条件仅限于通过 Amazon Web Services 支持 授权服务提出的请求创建授权，其范围仅限于支持您账户中的许可资源。 Amazon Web Services 支持 授权使用[前向访问会话](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_forward_access_sessions.html)进行呼叫`CreateGrant`，这是创建支持许可证的一部分。

DescribeKey  
当您使用前向访问会话创建支持许可时，允许验证密钥是否符合所需的规格和使用类型。

**注意**  
`111122223333`替换为您的 Amazon 账户 ID `us-east-1` 和您创建支持许可证的地 Amazon 区。

## 撤销 Amazon Web Services 支持 授权访问
<a name="support-authorization-kms-revoke"></a>

撤消密钥签名权限的推荐方法是撤消授权。这样可以防止进一步的签名操作，而不会影响密钥的其他用途。

要列出和撤消 Amazon Web Services 支持 授权授权，请执行以下操作：

1. 在密钥上列出授权以查找授权 ID：

   ```
   aws kms list-grants \
       --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
   ```

   通过补助金的名称或引用您的支持许可的`GrantConstraints`来源 ARN 来识别补助金。

1. 撤销补助金：

   ```
   aws kms revoke-grant \
       --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
       --grant-id grant-id-from-list-grants
   ```

撤销拨款后，将无法再为使用此密钥的任何支持许可证颁发新的签名授权。由于 Amazon KMS API 遵循最终的一致性模型，因此在整个变更生效之前可能会有短暂的延迟 Amazon KMS。

**注意**  
撤销拨款不会删除相关的支持许可。支持许可证仍处于活动状态，但无法签署授权。补助金是针对每份支持许可证的。使用相同的 Amazon KMS 密钥创建新的支持许可证并不能恢复 Amazon Web Services 支持 授权使用原始支持许可证的密钥的能力。

## 禁用或删除密钥
<a name="support-authorization-kms-disable-delete"></a>

您还可以禁用或计划删除 Amazon KMS 密钥，以防止 Amazon Web Services 支持 授权颁发签名授权。但是，这会影响密钥的所有用途，而不仅仅是 Amazon Web Services 支持 授权。

**重要**  
两者 Amazon KMS 与 Amazon Web Services 支持 授权最终是一致的。禁用或计划删除密钥后，更改最多可能需要几分钟才能完全生效。在此期间，可能会继续使用密钥签发已签名的授权。撤销补助金最终也是一致的。

如果您禁用密钥，则可以在 Amazon KMS 控制台中或通过调`EnableKey`用重新启用该密钥。如果您删除密钥，则无法恢复。

## 监控密钥使用情况
<a name="support-authorization-kms-monitoring"></a>

当您的 Amazon KMS 密钥用于签署授权时，会在密钥的事件历史 Amazon CloudTrail 记录中记录签名操作。您可以使用这些事件来审核代表您签署授权的时间和频率。