DynamoDB CRUD操作のIAMポリシー

特定のテーブルでのDynamoDB読み取り、書き込み、更新、削除操作のIAMポリシーを作成します。Query、Scan、BatchGetItem、BatchWriteItemを含みます。

Database

詳細な説明

DynamoDB CRUDポリシー

DynamoDBをデータストアとして使用するアプリケーションには、アイテムの読み取り、書き込み、更新、削除のための正確な権限が必要です。このポリシーは、特定のテーブルにスコープしながらすべての標準CRUD操作をカバーします。

ポリシーJSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowDynamoDBCRUD",
      "Effect": "Allow",
      "Action": [
        "dynamodb:GetItem",
        "dynamodb:PutItem",
        "dynamodb:UpdateItem",
        "dynamodb:DeleteItem",
        "dynamodb:Query",
        "dynamodb:Scan",
        "dynamodb:BatchGetItem",
        "dynamodb:BatchWriteItem",
        "dynamodb:DescribeTable"
      ],
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/my-table",
        "arn:aws:dynamodb:us-east-1:123456789012:table/my-table/index/*"
      ]
    }
  ]
}

インデックスアクセス

2番目のリソースARN(table/my-table/index/*)はテーブルのすべてのグローバルセカンダリインデックス(GSI)とローカルセカンダリインデックス(LSI)へのアクセスを付与します。これがないと、インデックスに対するQuery操作は拒否され、AccessDeniedExceptionエラーの一般的な原因になります。

読み取り専用 vs. フルCRUD

読み取り専用アクセスにはPutItemUpdateItemDeleteItemBatchWriteItemを削除します。書き込み専用(イベント取り込み)にはPutItemBatchWriteItemのみを残します。

ユースケース

DynamoDBテーブルからデータを保存・取得するバックエンドサービス、Lambda関数、マイクロサービス。サーバーレスアーキテクチャやイベント駆動型アプリケーションで一般的です。

試してみる — AWS IAM Policy Generator

フルツールを開く