Amazon DynamoDB のエンドポイント - Amazon Virtual Private Cloud

Amazon DynamoDB のエンドポイント

すでに VPC から DynamoDB テーブルへのアクセスを設定している場合、ゲートウェイエンドポイントの設定後は、通常のように引き続きテーブルにアクセスすることができます。ただし、以下のことに注意してください。

  • エンドポイントには、DynamoDB リソースにアクセスするエンドポイントの使用を管理するポリシーがあります。デフォルトポリシーでは、VPC 内のあらゆるユーザーまたはサービスは、どの AWS アカウントの認証情報を使用しても、すべての DynamoDB リソースにアクセスできます。詳細については、「」を参照してくださいVPC エンドポイントでサービスへのアクセスを制御する

  • DynamoDB はリソースベースのポリシー (テーブル上など) をサポートしません。DynamoDB へのアクセスはエンドポイントポリシーと、個別の IAM ユーザーとロールの IAM ポリシーを通じて管理されます。

  • 現在、エンドポイントはクロスリージョンのリクエストをサポートしていません。必ず DynamoDB テーブルと同じリージョンでエンドポイントを作成してください

  • AWS CloudTrail を使用して DynamoDB オペレーションをログに記録する場合、ログファイルには VPC の EC2 インスタンスのプライベート IP アドレスと、エンドポイントを通じて実行されるアクションのエンドポイント ID が含まれます。

  • 影響を受けるサブネットのインスタンスからのソース IPv4 アドレスは、パブリック IPv4 アドレスから VPC のプライベート IPv4 アドレスに変更されます。エンドポイントはネットワークルートを切り替え、開いている TCP 接続を切断します。パブリック IPv4 アドレスを使用した以前の接続は再開されません。エンドポイントの作成または変更は、重要なタスクが実行中でないときに行うことをお勧めします。または、接続の障害後に、ソフトウェアが DynamoDB に自動的に再接続できることをテストするようお勧めします。

DynamoDB でエンドポイントを使用する前に、次の一般的な制限を読んだことも確認します。「ゲートウェイエンドポイントの制限」。

ゲートウェイ VPC エンドポイントの作成の詳細については、「ゲートウェイ VPC エンドポイント」を参照してください。

DynamoDB のエンドポイントポリシー

エンドポイントは、接続先の一部のサービスまたはすべてのサービスへのアクセスを許可することができるエンドポイントにアタッチする IAM ポリシーです。DynamoDB にアクセスするためのエンドポイントのポリシーの例は次のとおりです。

重要

すべてのタイプのポリシー (IAM ユーザーポリシーとエンドポイントポリシー) では、DynamoDB へのアクセスが成功するために必要なアクセス許可を付与する必要があります。

例: 読み取り専用アクセス

VPC エンドポイントを通じて、DynamoDB テーブルの一覧表示と記述のみにアクションを制限するポリシーを作成できます。

{ "Statement": [ { "Sid": "ReadOnly", "Principal": "*", "Action": [ "dynamodb:DescribeTable", "dynamodb:ListTables" ], "Effect": "Allow", "Resource": "*" } ] }

例: 特定のテーブルへのアクセスの制限

特定の DynamoDB テーブルへのアクセスを制限するポリシーを作成できます。この例では、エンドポイントポリシーでは、StockTable のみへのアクセスが許可されます。

{ "Statement": [ { "Sid": "AccessToSpecificTable", "Principal": "*", "Action": [ "dynamodb:Batch*", "dynamodb:Delete*", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Update*" ], "Effect": "Allow", "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/StockTable" } ] }

IAM ポリシーを使用して DynamoDB へのアクセスをコントロールする

IAM ユーザー、グループ、またはロールの IAM ポリシーを作成して、特定の VPC エンドポイントのみから DynamoDB テーブルへのアクセスを制限できます。これを行うには、IAM ポリシーでテーブルリソースの aws:sourceVpce 条件キーを使用できます。

DynamoDB へのアクセス管理の詳細については、Amazon DynamoDB デベロッパーガイドAmazon DynamoDB に対する認証とアクセスコントロールに関する記事を参照してください。

例: 特定のエンドポイントからのアクセスの制限

この例では、エンドポイント vpce-11aa22bb を通じてアクセスした場合を除き、ユーザーは DynamoDB テーブルを操作するアクセス許可を拒否されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessFromSpecificEndpoint", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "arn:aws:dynamodb:region:account-id:table/*", "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-11aa22bb" } } } ] }

例: この VPC エンドポイントの使用をアカウントの特定の IAM ロールに制限する

VPC エンドポイントの使用を特定の IAM ロールに制限するポリシーを作成できます。以下は、アカウント SomeRole 内の 111122223333 へのアクセスを制限する例です。

{ "Sid": "Restrict-acess-to-specific-IAM-role", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/SomeRole" } } }

例: この VPC エンドポイントの使用を特定のアカウントのユーザーに制限する

VPC エンドポイントの使用を特定のアカウントに制限するポリシーを作成できます。以下は、アカウント 111122223333 のユーザーへのアクセスを制限する例です。

{ "Sid": "AllowCallersFromAccount111122223333", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "111122223333" } } }