

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# グラントトークンを使用する
<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
```