管理赠款 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

管理赠款

具有所需权限的委托人可以查看、使用和删除(停用或撤销)授权。要优化创建和管理授权的权限,请Amazon KMS支持多个策略条件,您可以在密钥策略和 IAM 策略中使用。

控制对授权的访问

您可以控制对在关键策略、IAM 策略和授权中创建和管理授权的操作的访问权限。校长谁得到CreateGrant来自授权的权限具有更有限的授予权限

API 操作 关键策略或 IAM 策略 Grant
CreateGrant
ListGrants -
ListRetirableGrants -
停用授予 (限制。 请参阅退休和撤销补助金
RevokeGrant -

您使用密钥策略或 IAM 策略控制对创建和管理授权的操作的访问时,可以使用以下一个或多个策略条件来限制权限。Amazon KMS支持以下所有与授权相关的条件键。有关详细信息和示例,请参阅Amazon KMS 条件键

kms:GrantConstraintType

只有当授权包含指定的授权约束

kms:GrantIsForAWSResource

允许委托人调用CreateGrantListGrants,或者RevokeGrant仅当一个Amazon服务,与Amazon KMS代表委托人发送请求。

kms:GrantOperations

允许委托人创建授权,但将授予限制为指定操作。

kms:GranteePrincipal

允许委托人仅为指定的被授权者委托人

kms:RetiringPrincipal

允许委托人仅在授权指定特定的已弃用委托人

查看授予

要查看授权,请使用 ListGrants 操作。您必须指定授权应用到的 CMK。您还可以按授权 ID 或被授权者委托人筛选授权列表。有关更多示例,请参阅 查看授予

若要查看 Amazon Web Services 账户 和具有特定已弃用委托人,请使用ListRetirableGrants。答复包括每项赠款的详细信息。

注意

ListGrants 响应中的 GranteePrincipal 字段通常包含授权的被授权者委托人。但是,如果授权中的被授权委托人是Amazon服务,GranteePrincipal字段包含服务委托人,它可能代表几个不同的受赠者委托人。

例如,以下命令会列出 CMK 的所有授权。

$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1572216195.0, "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a", "Constraints": { "EncryptionContextSubset": { "Department": "IT" } }, "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole", "Name": "", "IssuingAccount": "arn:aws:iam::111122223333:root", "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser", "Operations": [ "Decrypt" ] } ] }

使用授权令牌

您在创建授权时,授权可能不会立即生效。有可能有一个短暂的时间间隔,不到五分钟,直到资助达到最终一致性,也就是说,在新的赠款在整个Amazon KMS。授权达到最终一致性后,被授权者可以使用授权中的权限,而无需指定授权令牌或授予的任何证据。然而,如果授予这是如此新的,它还不知道所有Amazon KMS,请求可能会失败,并显示AccessDeniedException错误。

要立即使用新授权中的权限,请使用授予令牌的授予。将授权令牌保存为CreateGrant操作返回。然后在请求中提交授予令牌Amazon KMSoperation. 您可以将授权令牌提交给任何Amazon KMS 授权操作,您可以在同一请求中提交多个授权令牌。

以下示例使用CreateGrant操作来创建一个允许GenerateDataKeyDecrypt运算。它保存了CreateGrant返回token变量。然后,在调用GenerateDataKey操作时,它使用token变量。

# Create a grant; save the grant token $ token=$(aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/appUser \ --retiring-principal arn:aws:iam::111122223333:user/acctAdmin \ --operations GenerateDataKey Decrypt \ --query GrantToken \ --output text) # Use the grant token in a request $ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ –-key-spec AES_256 \ --grant-tokens $token

具有权限的委托人也可以使用授权令牌来淘汰新授权,即使在授权达到最终一致性之前。(RevokeGrant操作不接受授权令牌。) 有关详细信息,请参阅退休和撤销补助金

# Retire the grant $ aws kms retire-grant --grant-token $token

退休和撤销补助金

要删除授权,请停用或撤销该授权。

这些区域有:RetireGrantRevokeGrant操作彼此非常相似。它们都会删除授权,这会消除授权允许的权限。区别在于它们是如何获得授权的。

RevokeGrant

最喜欢Amazon KMS操作,访问RevokeGrant操作通过密钥策略IAM 策略。这些区域有:RevokeGrantAPI 可以由任何具有kms:RevokeGrant权限。该权限包含在向密钥管理员授予的标准权限中。通常,管理员会撤销授权以拒绝授予允许的权限。

RetireGrant

赠款决定谁可以退休它。此设计允许您控制授权的生命周期,而无需更改关键策略或 IAM 策略。通常,您会在使用授权的权限时停用授权。

授权可以通过可选已弃用委托人指定的授权。这些区域有:被授权者委托人也可以淘汰该授权,但前提是他们也是即将退休的委托人,或者授权包括 RetiReGrant 操作。作为备份, Amazon Web Services 账户 (根用户)在其下创建授权时,可以停用授权。

有一个kms:RetireGrant权限,但它具有有限的实用程序。在授权中指定的委托人可以停用授权,而不kms:RetireGrant权限。这些区域有:kms:RetireGrant权限仅用权限不允许委托人停用授权。这些区域有:kms:RetireGrant权限在关键策略中无效。

  • 若要拒绝停用授权的权限,可以使用Deny使用kms:RetireGrant权限。

  • 这些区域有: Amazon Web Services 账户 (根用户)拥有 CMK 的kms:RetireGrant权限委派权限以取消授权。

  • 如果退休委托人是另一个 Amazon Web Services 账户 ,则其他帐户中的管理员可以使用kms:RetireGrant将权限委托给该账户中的 IAM 用户停用授权。

您可以使用授予令牌退休的补助金,但不撤销它。如果您需要立即删除一个新的授权,然后才能在整个Amazon KMS, 你必须退休它.

当您创建、停用或撤销授权时,可能会出现短暂的延迟(通常不到五分钟),直到操作完成最终一致性。您可以使用授予令牌可在授权被创建后立即停用。您不能使用授权令牌撤销授权。