AWS Key Management Service へのアクセス - AWS Key Management Service

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

AWS Key Management Service へのアクセス

次の方法で AWS KMS を使用できます。

AWS Management Console

コンソールは、AWS KMS および AWS リソースを管理するためのウェブベースのユーザーインターフェイスです。AWS アカウント にサインアップ済みの場合、AWS Management Console にサインインし、AWS Management Console のホームページで AWS KMS を選択することで、AWS KMS コンソールにアクセスできます。

AWS KMS コンソールの使用に必要な許可

AWS KMS コンソールを使用して作業するユーザーには、AWS アカウント の AWS KMS リソースの使用を許可する一連の最小限のアクセス許可が必要です。これらの AWS KMS アクセス許可に加えて、ユーザーには、IAM ユーザーおよび IAM ロールを一覧表示するためのアクセス許可も必要です。これらの最小限必要なアクセス許可よりも制限された IAM ポリシーを作成した場合、AWS KMS コンソールは、その IAM ポリシーを使用するユーザーの意図したとおりには機能しません。

AWS KMS コンソールへの読み取り専用アクセスをユーザーに許可するために必要な最小限のアクセス権限については、「AWS KMS コンソールでの KMS キーの表示をユーザーに許可する」を参照してください。

ユーザーが AWS KMS コンソールを使用して KMS キーを作成および管理できるようにするには、パワーユーザー用向けの AWS 管理ポリシー で説明するように、AWSKeyManagementServicePowerUser マネージドポリシーをユーザーにアタッチします。

AWS SDKAWS Command Line Interface、もしくは AWS Tools for PowerShell を経由して AWS KMS API を使用するユーザーに対して、最小限のコンソールアクセス許可を付与する必要はありません。ただし、API を使用する権限をこれらのユーザーに付与する必要があります。詳細については、「アクセス許可に関するリファレンス」を参照してください。

AWS Command Line Interface

AWS CLI ツールを用いてコマンドを発行するか、もしくはお使いのシステムのコマンドラインでスクリプトを作成して、AWS (AWS KMS を含む) タスクを実行することができます。

AWS CLI を経由した AWS KMS の使用の詳細については、「AWS CLI コマンドリファレンス」を参照してください。

AWS KMS REST API

AWS KMS のアーキテクチャは、プログラミング言語に依存せず、AWS でサポートされているインターフェイスを使用してオブジェクトを保存、取得するよう設計されています。AWS KMS REST API を使用して、プログラムによって S3 や AWS にアクセスすることができます。REST API は、AWS KMS に対する HTTP インターフェイスです。REST API では、標準 HTTP リクエストを使用してバケットやオブジェクトを作成、取得、削除できます。

AWS KMS REST API の使用の詳細については、「AWS Key Management Service API リファレンス」を参照してください。

AWS SDK

AWS には、代表的なプログラミング言語およびプラットフォーム (Java、JavaScript、C、Python など) のライブラリとサンプルコードで構成される SDK (ソフトウェア開発キット) が用意されています。AWS SDK は、AWS KMS および AWS へのプログラムによるアクセス許可を作成する際に役立ちます。AWS KMS は REST サービスの一種です。AWS SDK ライブラリを使用して AWS KMS にリクエストを送信できます。これは、基盤となる AWS KMS REST API をラップすることで、プログラミングタスクを簡素化します。AWS SDKs のダウンロードやインストールなどの詳細については、「AWS 上に構築するツール」を参照してください。

AWS KMS を使用するためのコード例 AWS SDKs は、AWS SDKs を経由して AWS KMS を使用するための適切な開始点となります。

AWS Encryption SDK

AWS Encryption SDK は、アプリケーションにクライアント側の暗号化を実装するためのツールです。KMS へのフルアクセスは提供しませんが、代わりに AWS KMS と統合するか、もしくは KMS キーを参照せずにスタンドアロン SDK として使用できます。Java、JavaScript 、C、Python、およびその他のプログラミング言語のライブラリをご用意しています。

詳細については、AWS Encryption SDK デベロッパーガイドを参照してください。

AWS KMS key ポリシーと IAM ポリシー

AWS KMS の結果整合性

システムの分散特性により、AWS KMS API は結果整合性モデルに従います。その結果、AWS KMS リソースへの変更は、それ以降に実行するコマンドにすぐに表示されない場合があります。

AWS KMS API 呼び出しを実行すると、変更が AWS KMS 全体に適用されるまでに若干の遅延が生じることがあります。通常、変更がシステム全体に反映されるまでに数秒もかかりませんが、場合によっては数分かかることがあります。この間、InvalidStateException または NotFoundException などの予期しないエラーが発生することがあります。例えば、CreateKey を呼び出した直後に GetParametersForImport を呼び出すと AWS KMS が NotFoundException を返すことがあります。

短い待機期間の後に自動的にオペレーションを再試行するよう AWS KMS クライアントで再試行戦略を設定することをお勧めします。詳細については、AWS SDK とツールのリファレンスガイドの「再試行動作」を参照してください。

API 呼び出し関連のグラントでは、グラントトークンを使用して潜在的な遅延を回避し、グラント内のアクセス許可をすぐに使用できます。詳細については、「結果整合性 (グラント用)」を参照してください。