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ポリシーでは、テーブルレベルの操作(Query、Scan)とインデックスレベルの操作を区別する必要がよくあります。テーブルARNでdynamodb:Queryを付与しても、GSIへのクエリアクセスは自動的に付与されません。インデックスARNを別のリソースとして含める必要があります。
グローバルテーブル
DynamoDBグローバルテーブルはリージョン間でレプリケーションされますが、各リージョンレプリカにはローカルリージョンの独自のARNがあります。単一の「グローバル」ARNは存在しません。
ユースケース
DynamoDBテーブルとそのGSIから読み取る必要があるLambda関数やECSタスクのための最小権限IAMポリシーの記述。正しい細粒度アクセス制御には、テーブルとインデックスリソースの個別のARN指定が必要です。