AWS KMS の認証とアクセスコントロール - AWS Key Management Service

AWS KMS の認証とアクセスコントロール

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

認証

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

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

    重要

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

  • IAM ユーザーIAM ユーザーは、特定のアクセス権限 (CMK KMS を使用するなど) を持つ、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 のアクセス権限を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。

Amazon Virtual Private Cloud (Amazon VPC) エンドポイント経由で AWS KMS にアクセスする場合は、エンドポイントを使用するときに VPC エンドポイントポリシーを使用して AWS KMS リソースへのアクセスを制限することもできます。たとえば、VPC エンドポイントを使用する場合、AWS アカウントのプリンシパルのみに CMKs へのアクセスを許可できます。詳細については、「VPC エンドポイントへのアクセスの制御」を参照してください。