AWS Key Management Service
開発者ガイド

AWS KMS に対する認証とアクセスコントロール

AWS KMS へのアクセスには、AWS によってリクエストの認証に使用される認証情報が必要です。認証情報には、AWS KMS カスタマーマスターキー (CMK) などの AWS リソースへのアクセス権限が必要です。以下のセクションでは、AWS Identity and Access Management (IAM) と AWS KMS を使用して、リソースにアクセスできるユーザーを制御することで、リソースをセキュリティで保護する方法について詳しく説明します。

認証

AWS には、次のタイプのアイデンティティでアクセスできます。

  • AWS アカウントのルートユーザー – AWS にサインアップするときは、AWS アカウントの E メールアドレスとパスワードを指定します。これらはルート認証情報であり、これらの情報を使用すると、すべての AWS リソースへの完全なアクセスが可能になります。

    重要

    セキュリティ上の理由から、AWS アカウントへの完全なアクセス権限を持つ管理者ユーザー (IAM ユーザー) を作成するためにのみ、ルート認証情報を使用することをお勧めします。その後、この管理者ユーザーを使用して、制限されたアクセス権限を持つ他の IAM ユーザーとロールを作成できます。詳細については、『IAM ユーザーガイド』の「個別の IAM ユーザーの作成 (IAM のベストプラクティス)」および「管理者のユーザーおよびグループの作成」を参照してください。

  • IAM ユーザーIAM ユーザーは、特定のアクセス権限 (KMS CMK を使用するなど) を持つ、AWS アカウント内のアイデンティティです。IAM のユーザー名とパスワードを使用して、AWS マネジメントコンソールAWS ディスカッションフォーラムAWS Support Center などのセキュリティ保護された AWS ウェブページにサインインできます。

     

    ユーザー名とパスワードに加えて、アクセスキーを各ユーザーに作成し、ユーザーがいずれかの AWS SDK またはコマンドラインツールを通じて、AWS のサービスにプログラムでアクセスするようにできます。SDK やコマンドラインツールは、アクセスキーを使って API リクエストに暗号により署名します。AWS ツールを使用しない場合は、API リクエストを自分で署名する必要があります。AWS KMS では、署名バージョン 4 がサポートされています。これは API リクエストを認証するための AWS プロトコルです。API リクエストの認証の詳細については、『AWS General Reference』の「署名バージョン 4 の署名プロセス」を参照してください。

     

  • IAM ロールIAM ロールは、特定のアクセス権限を持ち、アカウントで作成できるもう 1 つの IAM アイデンティティです。これは IAM ユーザーに似ていますが、特定のユーザーに関連付けられていません。IAM ロールでは、AWS サービスおよびリソースにプログラムでアクセスする一時的なアクセスキーを取得することができます。IAM ロールは、次のような状況で役立ちます。

     

    • フェデレーティッドユーザーアクセス – IAM ユーザーを作成するのではなく、AWS Directory Service、エンタープライズユーザーディレクトリ、またはウェブアイデンティティプロバイダーの既存のユーザーアイデンティティを使用することもできます。このようなユーザーはフェデレーティッドユーザーと呼ばれます。フェデレーティッドユーザーは ID プロバイダーを介して IAM ロールを使用します。フェデレーティッドユーザーの詳細については、『IAM ユーザーガイド』の「フェデレーティッドユーザーとロール」を参照してください。

       

    • クロスアカウントアクセス – AWS アカウントで IAM ロールを使って、お客様のアカウントのリソースへのアクセス権を別の AWS アカウントに許可できます。この例については、『IAM ユーザーガイド』の「チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任」を参照してください。

       

    • AWS サービスアカウント – アカウントで IAM ロールを使って、お客様のアカウントのリソースにアクセスする AWS サービスのアクセス権限を許可できます。たとえば、Amazon Redshift がお客様に代わって S3 バケットにアクセスし、S3 バケットに保存されたデータを Amazon Redshift クラスターにロードすることを許可するロールを作成できます。詳細については、『IAM ユーザーガイド』の「AWS のサービスにアクセス権限を委任するロールの作成」を参照してください。

       

    • EC2 インスタンスで実行されるアプリケーション – インスタンスで実行し、AWS API リクエストを作成するアプリケーションで使用されるアクセスキーを EC2 インスタンスに保存する代わりに、IAM ロールを使用して、これらのアプリケーション用の一時アクセスキーを提供できます。EC2 インスタンスに IAM ロールを割り当てるには、インスタンスプロファイルを作成し、インスタンスを起動するときにそれをアタッチします。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるアプリケーションは一時アクセスキーを取得することができます。詳細については、『IAM ユーザーガイド』の「Amazon EC2 上のアプリケーションに対するロールの使用」を参照してください。

アクセスコントロール

リクエストを認証する有効な認証情報を持つことができますが、AWS KMS リソースを作成、管理、または使用する AWS KMS API リクエストを作成するアクセス権限も必要です。たとえば、KMS CMK を作成するアクセス権限、CMK を管理するアクセス権限、CMK を暗号化オペレーションに使用するアクセス権限 (暗号化と復号) などが必要です。

以下のページでは、AWS KMS のアクセス権限を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。

このページの内容: