You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用CDK TypeScript为DynamoDB表创建并配置管理员用户

CDK TypeScript 为DynamoDB表配置管理员用户实现方案

首先确保你的项目已经安装IAM相关的CDK依赖包:

npm install @aws-cdk/aws-iam

你可以直接基于已有的表创建代码,追加IAM用户配置和权限绑定逻辑,完整示例如下:

import * as cdk from 'aws-cdk-lib';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as iam from 'aws-cdk-lib/aws-iam';

export class YourStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // 你原有创建DynamoDB表的代码
    const table = new dynamodb.Table(this, 'MyTable', {
      partitionKey: {
        name: 'customer_id', 
        type: dynamodb.AttributeType.STRING 
      },
      sortKey:{
        name:"orderId",
        type:dynamodb.AttributeType.STRING
      }
    });

    // 1. 创建专门的DynamoDB表管理员用户
    const ddbTableAdmin = new iam.User(this, 'MyTableAdminUser', {
      userName: 'MyTableAdmin' // 可自定义管理员用户名
    });

    // 2. 给管理员用户绑定该表的全量操作权限
    // 该方法会自动生成最小范围的权限策略,仅覆盖当前表的所有DynamoDB操作
    table.grantFullAccess(ddbTableAdmin);

    // 可选:如果需要为该用户生成API访问密钥(AK/SK)
    const adminAccessKey = new iam.AccessKey(this, 'MyTableAdminAccessKey', {
      user: ddbTableAdmin
    });

    // 可选:将访问密钥ID输出,敏感的Secret Access Key不要直接明文输出
    new cdk.CfnOutput(this, 'AdminAccessKeyId', {
      value: adminAccessKey.accessKeyId
    });
  }
}

补充说明

  • 如果你需要限制管理员的权限范围,可以替换权限绑定方法:
    • 仅需要数据读写权限:用table.grantReadWriteData(ddbTableAdmin)
    • 仅需要管理表配置、不需要操作数据:用table.grantAdminAccess(ddbTableAdmin)
  • 生产环境中不要直接输出敏感的Secret Access Key,建议通过secretsmanager.Secret资源将密钥存入机密管理服务中。

内容的提问来源于stack exchange,提问作者Gulshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:15:04