Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

DAX クラスターの作成

このセクションでは、デフォルトの Amazon Virtual Private Cloud (Amazon VPC) 環境で初めて Amazon DynamoDB Accelerator (DAX) をセットアップし使用する手順を、順を追って説明します。最初の DAX クラスターは、AWS Command Line Interface (AWS CLI) または AWS マネジメントコンソール のいずれかを使用して作成できます。

DAX クラスターを作成すると、同じ VPC で実行されている Amazon EC2 インスタンスからアクセスできるようになります。その後、アプリケーションプログラムで DAX クラスターを使用できるようになります。詳細については、「アプリケーションで DAX クライアントを使用する」を参照してください。

DynamoDB にアクセスするための DAX 用の IAM サービスロールの作成

DAX クラスターがユーザーに代わって DynamoDB テーブルにアクセスできるように、サービスロールを作成する必要があります。サービスロールは、ユーザーに代わって AWS のサービスを承認する AWS Identity and Access Management (IAM) ロールです。サービスロールは、ユーザーがテーブルそのものにアクセスしているかのように、DAX に DynamoDB テーブルへのアクセスを許可します。DAX クラスターを作成する前にサービスロールを作成する必要があります。

コンソールを使用している場合は、クラスターを作成するワークフローで DAX サービスロールの有無が確認されます。何も見つからない場合は、コンソールは新しいサービスロールを作成します。詳細については、「ステップ 2: DAX クラスターを作成する」の「AWS マネジメントコンソール を使用した DAX クラスターの作成」を参照してください。

AWS CLI を使用している場合は、すでに作成してある DAX サービスロールを指定するか、事前に新しいサービスロールを作成する必要があります。詳細については、「ステップ 1: DAX が DynamoDB にアクセスするための IAM サービスロールを作成する」の「AWS CLI を使用した DAX クラスターの作成」を参照してください。

サービスロールの作成に必要なアクセス権限

AWS 管理ポリシーの AdministratorAccess には、DAX クラスターおよびサービスロールの作成に必要なすべてのアクセス許可が含まれています。IAM ユーザーに AdministratorAccess がアタッチされている場合、それ以上のアクションは不要です。

アタッチされていない場合は、IAM ポリシーに次のアクセス許可を追加して、IAM ユーザーがサービスロールを作成できるようにする必要があります。

  • iam:CreateRole

  • iam:CreatePolicy

  • iam:AttachRolePolicy

  • iam:PassRole

アクションの実行を試みるユーザーにこれらのアクセス許可をアタッチする必要があります。

注記

iam:CreateRoleiam:CreatePolicyiam:AttachPolicyiam:PassRole の各アクセス許可は、DynamoDB の AWS 管理ポリシーには含まれていません。これは意図的なものです。これらのアクセス許可が含まれていると、特権のエスカレーションが可能になり、ユーザーがこれらのアクセス権限を使用して新しい管理者ポリシーを作成し、それを既存のロールにアタッチできるようになるからです。そのため、DAX クラスターの管理者は、これらのアクセス権限を自分のポリシーに明示的に追加する必要があります。

トラブルシューティング

ユーザーポリシーに iam:CreateRoleiam:CreatePolicyiam:AttachPolicy の各アクセス許可が含まれていないと、エラーメッセージが表示されます。次の表に、これらのメッセージを示し、問題を解決する方法を説明します。

次のエラーメッセージが表示された場合は ... 次の作業を行います。
User: arn:aws:iam::accountID:user/userName is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::accountID:role/service-role/roleName iam:CreateRole をユーザーポリシーに追加します。
User: arn:aws:iam::accountID:user/userName is not authorized to perform: iam:CreatePolicy on resource: policy policyName iam:CreatePolicy をユーザーポリシーに追加します。
User: arn:aws:iam::accountID:user/userName is not authorized to perform: iam:AttachRolePolicy on resource: role daxServiceRole iam:AttachRolePolicy をユーザーポリシーに追加します。

DAX クラスターの管理に必要な IAM ポリシーの詳細については、「DAX での Identity and Access Management」を参照してください。