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

如何通过AWS CDK获取Aurora RDS集群的ResourceID

你可以直接通过AWS CDK中aws-rds模块的DatabaseCluster实例的clusterResourceIdentifier属性获取Aurora集群的Resource ID,该属性返回的值正好对应构造IAM策略所需的DbClusterResourceId。

完整使用示例(TypeScript)

1. 创建Aurora集群

注意需要显式开启IAM身份验证,这是使用RDS IAM认证功能的前提:

import * as rds from 'aws-cdk-lib/aws-rds';
import * as iam from 'aws-cdk-lib/aws-iam';
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class AuroraStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const auroraCluster = new rds.DatabaseCluster(this, 'AuroraCluster', {
      engine: rds.DatabaseClusterEngine.auroraMysql({ 
        version: rds.AuroraMysqlEngineVersion.VER_3_03_0 
      }),
      // 其余集群配置:实例规格、VPC、安全组、凭据等省略
      iamAuthentication: true,
    });

2. 构造RDS IAM认证托管策略

直接引用集群的clusterResourceIdentifier属性拼接资源ARN即可,CDK会自动处理依赖顺序,确保集群创建完成后再生成策略:

const rdsIamAuthPolicy = new iam.ManagedPolicy(this, 'RdsIamAuthPolicy', {
      statements: [
        new iam.PolicyStatement({
          effect: iam.Effect.ALLOW,
          actions: ['rds-db:connect'],
          resources: [
            `arn:aws:rds-db:${this.region}:${this.account}:dbuser:${auroraCluster.clusterResourceIdentifier}/<你的数据库用户名>`,
          ],
        }),
      ],
    });
  }
}

其他说明

  • 如果你使用Python版CDK,对应的属性名为cluster_resource_identifier,用法逻辑完全一致。
  • 如果你使用的是CDK L1层底层构造CfnDBCluster,可以通过attrDbClusterResourceId属性获取该资源ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:36:04