

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用授予字符
<a name="using-grant-token"></a>

 AWS KMS API 遵循[最終一致性](grants.md#terms-eventual-consistency)模型。當建立授予時，授予可能無法立即生效。在該變更適用於整個 AWS KMS之前，可能會有短暫延遲。變更傳播到整個系統通常需要不到幾秒鐘的時間，但在某些情況下可能需要幾分鐘。一旦授權完全人傳播至整個系統，承授者主體即可使用授權的許可，而不需指定授權字符或授權的任何證據。不過，如果授予是如此新，但尚未讓所有 知道 AWS KMS，則請求可能會失敗並顯示`AccessDeniedException`錯誤。

若要立即使用新授予中的許可，請使用授予的[授予字符](grants.md#grant_token)。儲存 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 操作傳回的授予字符。然後在 AWS KMS 操作的請求中提交授予字符。您可以提交授予字符到任何 AWS KMS [授予操作](grants.md#terms-grant-operations)，也可以在相同的請求中提交多個授予字符。



以下範例使用 `CreateGrant` 操作來建立允許 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 和 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 操作的授予。它會儲存 `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` 操作不接受授予字符。) 如需詳細資訊，請參閱[淘汰和撤銷授予](grant-delete.md)。

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