DynamoDBテーブルARN — NoSQLデータベースリソース

DynamoDBテーブルARNを解析し、テーブルの識別方法とインデックスやストリームが独自のARN拡張を持つ仕組みを理解します。グローバルテーブルARNパターンについても解説。

Database

詳細な説明

DynamoDBテーブルとインデックスARN

DynamoDBテーブルARNはtable/プレフィックスを持つスラッシュ区切り形式を使用します。インデックスとストリームはベーステーブルARNに追加のパスセグメントで拡張します。

ARNの例

arn:aws:dynamodb:us-east-1:123456789012:table/UserSessions

解析されたコンポーネント

コンポーネント
Partition aws
Service dynamodb
Region us-east-1
Account ID 123456789012
Resource Type table
Resource ID UserSessions

インデックスARN

グローバルセカンダリインデックス(GSI)とローカルセカンダリインデックス(LSI)にはテーブルARNを拡張するARNがあります:

arn:aws:dynamodb:us-east-1:123456789012:table/UserSessions/index/email-index

この拡張形式では、パーサーはtableをリソースタイプとし、UserSessions/index/email-indexを完全なリソースIDとして認識します。

ストリームARN

DynamoDB Streamsには独自のARN形式があります:

arn:aws:dynamodb:us-east-1:123456789012:table/UserSessions/stream/2024-01-15T00:00:00.000

細粒度IAMパーミッション

DynamoDB IAMポリシーでは、テーブルレベルの操作(QueryScan)とインデックスレベルの操作を区別する必要がよくあります。テーブルARNでdynamodb:Queryを付与しても、GSIへのクエリアクセスは自動的に付与されません。インデックスARNを別のリソースとして含める必要があります。

グローバルテーブル

DynamoDBグローバルテーブルはリージョン間でレプリケーションされますが、各リージョンレプリカにはローカルリージョンの独自のARNがあります。単一の「グローバル」ARNは存在しません。

ユースケース

DynamoDBテーブルとそのGSIから読み取る必要があるLambda関数やECSタスクのための最小権限IAMポリシーの記述。正しい細粒度アクセス制御には、テーブルとインデックスリソースの個別のARN指定が必要です。

試してみる — AWS ARN Parser

フルツールを開く