翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の グラント AWS KMS
グラントは、プリンAWS シパルが暗号化オペレーションでKMSキーを使用できるようにするポリシー手段です。また、KMSキー (DescribeKey
) を表示し、許可を作成および管理することもできます。KMS キーへのアクセスを承認すると、 の許可はキーポリシーとIAMポリシー とともに考慮されます。権限は、キーポリシーまたはIAMポリシーを変更せずに作成、使用、削除できるため、一時的なアクセス許可としてよく使用されます。
グラントは、 と統合 AWS KMS して保管中のデータを暗号化する AWS サービスで一般的に使用されます。サービスは、アカウント内のユーザーの代わりにグラントを作成し、そのアクセス許可を使用して、タスクが完了するとすぐにグラント廃止にします。 AWS サービスの使用方法、許可の使用の詳細については、サービスのユーザーガイドまたはデベロッパーガイドの保管時の暗号化トピックを参照してください。
権限は、きわめて柔軟で便利なアクセス制御メカニズムです。KMS キーのグラントを作成すると、グラントで指定されたすべての条件が満たされていることを条件に、グラントのプリンシパルはKMSキーで指定されたグラントオペレーションを呼び出すことができます。
-
各許可では、1 つのKMSキーのみにアクセスできます。KMS キーの許可は、別の で作成できます AWS アカウント。
-
許可はKMSキーへのアクセスを許可できますが、アクセスを拒否することはできません。
-
各グラントは、それぞれ 1 つの被付与者プリンシパルを持っています。被付与者のプリンシパルは、KMSキー AWS アカウント と同じ または別のアカウント内の 1 つ以上の ID を表すことができます。
-
グラントは、グラントオペレーションのみを許可することができます。付与オペレーションは、付与の KMSキーでサポートされる必要があります。サポートされていないオペレーションを指定すると、CreateGrantリクエストは
ValidationError
例外で失敗します。 -
被付与者のプリンシパルは、アクセス許可がキーポリシーまたはIAMポリシーから取得された場合と同様に、付与を指定せずに付与するアクセス許可を使用できます。ただし、 AWS KMS APIは最終的な整合性モデルに従うため、許可を作成、廃止、または取り消すと、変更が 全体で利用可能になるまでに少し時間がかかる場合があります AWS KMS。権限でアクセス許可をすぐに使用するには、権限トークンを使用します。
-
認可されたプリンシパルはグラントを削除できます (グラントの廃止または失効)。グラントを削除すると、グラントが許可したすべてのアクセス許可が削除されます。グラントを取り消すために追加または削除するポリシーを特定する必要はありません。
-
AWS KMS は、各KMSキーに対する許可の数を制限します。詳細については、「KMS キーあたりのグラント: 50,000」を参照してください。
グラントを作成するとき、およびグラントを作成する許可を他のユーザーに付与するときは注意が必要です。許可を作成するアクセス許可には、kmsPutKeyPolicy を許可する場合と同様に、セキュリティ上の影響があります。つまり、ポリシーを設定するアクセス許可です。
-
KMS キー (
kms:CreateGrant
) の許可を作成する権限を持つユーザーは、許可を使用して、 AWS サービスを含むユーザーとロールにKMSキーの使用を許可できます。プリンシパルは、独自の ID AWS アカウント でも、別のアカウントや組織の ID でもかまいません。 -
許可は、 AWS KMS オペレーションのサブセットのみを許可できます。権限を使用して、プリンシパルにKMSキーの表示、暗号化オペレーションでの使用、権限の作成と廃止を許可できます。詳細については、「グラントオペレーション」を参照してください。グラントの制約を使用して、対称暗号化キーに対するグラントにある許可を制限することもできます。
-
プリンシパルは、キーポリシーまたはIAMポリシーから許可を作成するアクセス許可を取得できます。ポリシーから
kms:CreateGrant
アクセス許可を取得するプリンシパルは、KMSキーに対する任意の付与オペレーションの付与を作成できます。これらのプリンシパルは、キーに対して付与している許可を持っている必要はありません。ポリシーでkms:CreateGrant
アクセス許可を許可する場合は、ポリシー条件を使用してこの許可を制限します。 -
プリンシパルは、グラントからグラントを作成する許可を取得することもできます。これらのプリンシパルは、何らかのポリシーからの他のアクセス許可を持っている場合でも、グラントを受けたアクセス許可のみを委任することができます。詳細については、「アクセス CreateGrant 許可の付与」を参照してください。
グラントの概念
グラントを効果的に使用するには、 AWS KMS が使用する用語と概念を理解する必要があります。
- グラントの制約
-
グラントのアクセス許可を制限する条件。現在、 は、暗号化オペレーションのリクエストの暗号化コンテキストに基づく許可制約 AWS KMS をサポートしています。詳細については、「グラントの制約の使用」を参照してください。
- グラント ID
-
KMS キーの許可の一意の識別子。または RetireGrantRevokeGrantリクエストで許可を識別するために、 許可 ID とキー識別子 を使用できます。
- グラントオペレーション
-
グラントで許可できる AWS KMS オペレーション。他のオペレーションを指定した場合、CreateGrantリクエストは
ValidationError
例外で失敗します。これらは、グラントトークンを承認するオペレーションでもあります。これらのアクセス許可の詳細については、AWS KMS アクセス許可 を参照してください。これらのグラントオペレーションは、オペレーションを使用するアクセス許可を表します。したがって、
ReEncrypt
オペレーションの場合、ReEncryptFrom
、ReEncryptTo
、または両方のReEncrypt*
を指定できます。グラントオペレーション:
-
暗号化オペレーション
-
その他のオペレーション
許可する許可オペレーションは、許可の KMS キーでサポートされている必要があります。サポートされていないオペレーションを指定すると、CreateGrantリクエストは
ValidationError
例外で失敗します。例えば、対称暗号化KMSキーの許可では、署名 、検証 、GenerateMac
またはVerifyMac
オペレーションを許可できません。非対称KMSキーの許可は、データキーまたはデータキーペアを生成するオペレーションを許可できません。 -
- グラントトークン
-
は最終的な整合性モデル AWS KMS APIに従います。グラントを作成すると、変更が AWS KMS全体に適用されるまでに若干の遅延が生じることがあります。通常、変更がシステム全体に反映されるまでに数秒もかかりませんが、場合によっては数分かかることがあります。グラントがシステム全体に完全に伝播される前に使用しようとすると、アクセス拒否エラーが発生することがあります。グラントトークンを使用すると、グラントを参照し、グラントのアクセス許可をすぐに使用できます。
グラントトークンは、一意、非シークレット、可変長、base64 エンコードの、グラントを表す文字列です。グラントトークンを使用して、任意のグラントオペレーションでグラントを識別できます。ただし、トークン値はハッシュダイジェストであるため、グラントの詳細は明らかになりません。
グラントトークンは、グラントが AWS KMS 全体に完全に伝播されるまでにのみ使用されるように設計されています。その後、被付与者プリンシパルは、グラントトークンやその他のグラント限の証拠を提供することなく、グラントでアクセス許可を使用することができます。付与トークンはいつでも使用できますが、付与が最終的に一貫していれば、 は付与トークンではなく、アクセス許可を決定するために付与 AWS KMS を使用します。
例えば、次のコマンドは GenerateDataKeyオペレーションを呼び出します。付与トークンを使用して、発信者 (被付与者プリンシパル) に指定されたKMSキー
GenerateDataKey
を呼び出すアクセス許可を付与する付与を表します。$
aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --grant-token $token
また、グラントトークンを使用して、グラントを管理するオペレーションでグラントを識別することもできます。例えば、廃止プリンシパルは、 RetireGrantオペレーションへの呼び出しで許可トークンを使用できます。
$
aws kms retire-grant \ --grant-token $token
CreateGrant
は、グラントトークンを返す唯一のオペレーションです。他の AWS KMS オペレーションまたは CreateGrant オペレーションのCloudTrail ログイベントから許可トークンを取得することはできません。ListGrants および ListRetirableGrantsオペレーションは、グラント ID を返しますが、グラントトークンは返しません。詳細については、「グラントトークンを使用する」を参照してください。
- 被付与者プリンシパル
-
グラントで指定されたアクセス許可を取得する ID。各グラントはそれぞれ 1 つの被付与者プリンシパルを持っていますが、この被付与者プリンシパルは複数の ID を代表することができます。
被付与者のプリンシパルは、 AWS アカウント (ルート)、IAMユーザー 、IAMロール 、フェデレーティッドロールまたはユーザー 、または引き受けたロールユーザーを含む任意のプリン AWS シパルにすることができます。被付与者のプリンシパルは、KMSキーと同じアカウントにあることも、別のアカウントにあることもできます。ただし、被付与者プリンシパルは、サービスプリンシパル 、IAMグループ 、またはAWS 組織 にすることはできません。
注記
IAM ベストプラクティスでは、長期的な認証情報を持つIAMユーザーの使用をお勧めしていません。可能な限り、一時的な認証情報を提供するIAMロールを使用します。詳細については、「 ユーザーガイド」の「 セキュリティのベストプラクティスIAM」を参照してください。 IAM
- (グラント) を廃止にする
-
グラントを終了します。アクセス許可の使用が終了したら、グラントを廃止にします。
グラントの取り消しと使用停止のどちらも、グラント限を削除します。ただし、使用停止はグラントで指定されたプリンシパルによって行われます。通常、取り消しはキー管理者が行います。詳細については、「グラントの使用停止と取り消し」を参照してください。
- プリンシパルを使用停止にする
-
グラントを廃止にするプリンシパル。グラントで使用停止プリンシパルを指定できますが、必須ではありません。廃止プリンシパルは、、IAMユーザー、IAMロール AWS アカウント、フェデレーティッドユーザー、および引き受けたロールユーザーを含む任意のプリンシ AWS パルにすることができます。廃止するプリンシパルは、KMSキーと同じアカウントにあることも、別のアカウントにあることもできます。
注記
IAM ベストプラクティスでは、長期的な認証情報を持つIAMユーザーの使用をお勧めしていません。可能な限り、一時的な認証情報を提供するIAMロールを使用します。詳細については、「 ユーザーガイド」の「 セキュリティのベストプラクティスIAM」を参照してください。 IAM
グラントで指定されたプリンシパルの廃止に加えて、グラントは、グラントが作成された AWS アカウント によって廃止できます。グラントで
RetireGrant
オペレーションが許可されている場合は、被付与者プリンシパルがグラントを廃止にできます。また、廃止プリンシパル AWS アカウント である AWS アカウント または は、同じ のプリンシIAMパルに付与を廃止するアクセス許可を委任できます AWS アカウント。詳細については、「グラントの使用停止と取り消し」を参照してください。 - (グラント) を取り消す
-
グラントを終了します。グラントを取り消して、グラントが許可するアクセス許可をアクティブに拒否します。
権限の取り消しと使用停止のどちらも、権限を削除します。ただし、使用停止はグラントで指定されたプリンシパルによって行われます。通常、取り消しはキー管理者が行います。詳細については、「グラントの使用停止と取り消し」を参照してください。
- 結果整合性 (グラント用)
-
は、最終的な整合性
モデル AWS KMS APIに従います。グラントの作成、廃止、または取り消しを行うと、変更が AWS KMS全体に適用されるまでに若干の遅延が生じることがあります。通常、変更がシステム全体に反映されるまでに数秒もかかりませんが、場合によっては数分かかることがあります。 想定外のエラーが発生する場合は、この短い遅延に注意する必要があります。例えば、 全体で許可が認識される前に、新しい許可を管理したり、新しい許可で許可を使用したりしようとすると AWS KMS、アクセス拒否エラーが発生する可能性があります。グラントを廃止にするか取り消す場合でも、被付与者プリンシパルは、グラントが完全に削除されるまで、そのアクセス許可を短い期間使用できる可能性があります。一般的な戦略は、リクエストを再試行することです。中には、自動バックオフと再試行ロジックが含まれるものもあります AWS SDKs。
AWS KMS には、この短い遅延を軽減する機能があります。
-
新しいグラントでアクセス許可をすぐに使用するには、グラントトークンを使用します。グラントトークンを使用して、任意のグラントのオペレーションのグラントを参照できます。手順については、グラントトークンを使用する を参照してください。
-
CreateGrant オペレーションには、再試行オペレーションが重複する許可を作成できない
Name
パラメータがあります。
注記
サービスのすべてのエンドポイントが新しいグラント状態で更新されるまで、グラントトークンはグラントの有効性を優先します。ほとんどの場合、結果整合性は 5 分以内に取得されます。
詳細については、「AWS KMS の結果整合性」を参照してください。
-