Amazon DynamoDB での Identity and Access Management - Amazon DynamoDB

Amazon DynamoDB での Identity and Access Management

Amazon DynamoDB へのアクセスには、認証情報が必要です。d これらの認証情報には、Amazon DynamoDB テーブルや Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどの AWS リソースへのアクセス許可が必要です。以下のセクションでは、AWS Identity and Access Management (IAM) と DynamoDB を使用して、リソースをセキュリティで保護する方法について詳しく説明します。

Authentication

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

  • AWS アカウント ルートユーザー - AWS アカウント を初めて作成するときは、このアカウント内のすべての AWS のサービスとリソースに対する完全なアクセス権を持つシングルサインインアイデンティティを使って作成を開始します。このアイデンティティは AWS アカウント ルートユーザーと呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでサインインすることによってアクセスできます。強くお勧めしているのは、日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことです。代わりに、最初の IAM ユーザーを作成するためにのみ、ルートユーザーを使用するというベストプラクティスに従います。その後、root ユーザーの認証情報を安全な場所に保管し、それらを使用して少数のアカウントおよびサービス管理タスクのみを実行します。

  • IAM ユーザー - IAM ユーザーは、特定のカスタムのアクセス許可 (DynamoDB でテーブルを作成する許可など) を持つ AWS アカウント 内のアイデンティティです。IAM のユーザー名とパスワードは、AWS Management ConsoleAWS ディスカッションフォーラム、または AWS Support センターなどのセキュアな AWS ウェブページへのサインインに使用できます。

     

    ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを生成することもできます。これらのキーは、SDK の 1 つ、または AWS Command Line Interface (CLI) を使用してプログラム的に AWS サービスにアクセスするときに使用できます。SDK と CLI ツールでは、アクセスキーを使用してリクエストが暗号で署名されます。AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。DynamoDB では、署名バージョン 4 がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、AWS の全般リファレンス署名バージョン 4 署名プロセスを参照してください。

     

  • IAM ロール - IAM ロールは、アカウントで作成して特定のアクセス許可を付与できる IAM アイデンティティです。IAM ロールは、アイデンティティが AWS で実行できることとできないことを決定する許可ポリシーを持つ AWS アイデンティティであるという点で IAM ユーザーと似ています。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。IAM ロールと一時的な認証情報は、次の状況で役立ちます。

     

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

       

    • AWS のサービスアクセス - サービスロールは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイドの「AWS のサービスにアクセス権限を委任するロールの作成」を参照してください。

       

    • Amazon EC2 で実行されているアプリケーション – EC2 インスタンスで実行され、AWS CLI または AWS API リクエストを行っているアプリケーションの一時的な認証情報を管理するには、IAM ロールを使用できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、IAM ユーザーガイドIAM ロールを使用して、Amazon EC2 インスタンスで実行されるアプリケーションにアクセス許可を付与するを参照してください。

アクセスコントロール

リクエストを認証するために有効な認証情報を持つことができますが、許可を持っていなければ Amazon DynamoDB リソースを作成したりアクセスしたりすることはできません。たとえば、Amazon DynamoDB テーブルを作成するには、許可が必要です。

以下のセクションでは、Amazon DynamoDB の許可を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。