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

如何在AWS CDK项目/堆栈中导入现有Aurora MySQL集群

非Serverless Aurora MySQL集群导入CDK堆栈操作方法

完全可以实现,无需重新创建现有集群资源,通过CDK的资源导入功能即可完成操作,后续配置权限、S3导入属性均可基于导入后的资源对象直接配置。

核心导入步骤

通过aws-cdk-lib.aws_rds.DatabaseCluster.fromDatabaseClusterAttributes()静态方法导入现有集群,提前准备好以下必填参数:

  • 集群所在VPC,可通过ec2.Vpc.fromLookup()方法导入现有VPC
  • 集群安全组,可通过ec2.SecurityGroup.fromSecurityGroupId()方法导入
  • 集群唯一标识clusterIdentifier,即你在AWS控制台看到的集群名称
  • 集群对应引擎信息,明确指定为Aurora MySQL,版本匹配你实际运行的版本即可

S3导入功能配置

要开启Aurora MySQL从S3导入数据的能力,需要完成两项配置:

  1. 为集群绑定具备目标S3桶读取权限的IAM角色,信任实体设置为rds.amazonaws.com,权限包含s3:ListBucket、s3:GetObject
  2. 在集群关联的参数组中配置aurora_load_from_s3_role参数,值为上述IAM角色的ARN

如果同时需要S3导出能力,可同步配置aurora_select_into_s3_role参数,给角色添加对应S3写入权限即可

权限配置说明

  • 如需给其他AWS资源(如EC2、Lambda)开放集群访问权限,直接修改导入集群关联的安全组入站规则即可
  • 如需给集群开通访问其他AWS服务的权限,直接给集群绑定的IAM角色添加对应权限策略即可

参考代码示例(TypeScript)

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

const app = new cdk.App();
const stack = new cdk.Stack(app, 'ImportExistingAuroraStack', {
  env: { region: '你的集群所在区域', account: '你的AWS账号ID' }
});

// 导入集群所在VPC
const vpc = ec2.Vpc.fromLookup(stack, 'ExistingVpc', {
  vpcId: 'vpc-替换为你的VPCID'
});

// 导入集群关联的安全组
const auroraSecurityGroup = ec2.SecurityGroup.fromSecurityGroupId(stack, 'AuroraSG',
  'sg-替换为你的安全组ID'
);

// 导入现有Aurora MySQL集群
const existingAurora = rds.DatabaseCluster.fromDatabaseClusterAttributes(stack, 'ImportedAurora', {
  clusterIdentifier: '替换为你的Aurora集群名称',
  engine: rds.DatabaseClusterEngine.auroraMysql({
    version: rds.AuroraMysqlEngineVersion.VER_3_03_0 // 替换为你实际使用的版本
  }),
  vpc: vpc,
  securityGroups: [auroraSecurityGroup]
});

// 创建S3访问角色
const s3ImportRole = new iam.Role(stack, 'AuroraS3ImportRole', {
  assumedBy: new iam.ServicePrincipal('rds.amazonaws.com')
});

// 给角色添加目标S3桶的读取权限
s3ImportRole.addToPolicy(new iam.PolicyStatement({
  effect: iam.Effect.ALLOW,
  actions: ['s3:GetObject', 's3:ListBucket'],
  resources: [
    'arn:aws:s3:::替换为你的桶名称',
    'arn:aws:s3:::替换为你的桶名称/*'
  ]
}));

// 将角色绑定到Aurora集群
existingAurora.addRole(s3ImportRole);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:06:03