本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用授权令牌
AWS KMS API遵循最终一致性模型。创建授权时,授权可能不会立即生效。可能会出现短暂的延迟,才能使更改在整个 AWS KMS中可用。更改通常需要不到几秒钟的时间即可在整个系统中传播,但在某些情况下,可能需要几分钟。更改完全传播到整个系统后,被授权者主体可以使用授权中的权限,而无需指定授权令牌或授权的任何证据。但是,如果拨款过于新以至于所有人都不知道 AWS KMS,则请求可能会因AccessDeniedException
错误而失败。
要立即使用新授权中的权限,请使用该授权的授权令牌。保存CreateGrant操作返回的授权令牌。然后在 AWS KMS 操作请求中提交授权令牌。您可以向任何 AWS KMS 授权操作提交授权令牌,也可以在同一个请求中提交多个授权令牌。
以下示例使用该CreateGrant
操作创建允许GenerateDataKey和解密操作的授权。它将保存 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
具有权限的主体也可以使用授权令牌来停用新授权,即使授权在整个 AWS KMS中可用之前。(RevokeGrant
操作不接受授权令牌。) 有关详细信息,请参阅停用和撤销授权。
# Retire the grant
$
aws kms retire-grant --grant-token $token