Python AWS CDK无能力合成堆栈,无法在AWS CDK中设置密钥轮换

0 投票
1 回答
43 浏览
提问于 2025-04-14 17:37

我一直无法合成我的CDK堆栈。我需要创建一个Postgres RDS数据库实例。我尝试添加一个用户和秘密轮换计划,但都没有成功。你有什么建议可以帮助我实现秘密轮换吗?在尝试合成堆栈时收到的错误信息是:

[Error at /usecase-1-stack/test-uc1-pgdb/Secret/Resource] AwsSolutions-SMG4: 这个秘密没有安排自动轮换。AWS Secrets Manager可以配置为自动轮换一个安全服务或数据库的秘密。

下面是CDK代码:

    from aws_cdk import aws_rds as rds
    from aws_cdk import aws_secretsmanager as sm
    from aws_cdk import aws_ec2 as ec2

    curated_rds = rds.DatabaseInstance(
        self,
        f"{env_id}-uc1-pgdb", 
        database_name=curated_db_name,
        engine=rds.DatabaseInstanceEngine.postgres(
            version=rds.PostgresEngineVersion.VER_14_10
        ),
        port=curated_db_port,
        instance_type=ec2.InstanceType.of(
            ec2.InstanceClass.STANDARD5, ec2.InstanceSize.LARGE
        ),
        credentials=rds.Credentials.from_generated_secret(
            "admin",
            encryption_key=data_key,
            secret_name=f"{env_id}-uc1-pgdb-admin",
        ),
        vpc=data_vpc,
        vpc_subnets=ec2.SubnetSelection(
            subnet_type=ec2.SubnetType.PRIVATE_ISOLATED
        ),
        security_groups=[curated_rds_security_group],
        storage_encrypted=True,
        storage_encryption_key=data_key,
        auto_minor_version_upgrade=True,
        deletion_protection=True,
        multi_az=True,
        publicly_accessible=False,
        enable_performance_insights=True,
    )


    # curated_rds.add_rotation_single_user(automatically_after=Duration.days(30))
    curated_rds.secret.add_rotation_schedule("RotationSchedule",  hosted_rotation=sm.HostedRotation.postgre_sql_single_user(), automatically_after=Duration.days(7))

1 个回答

0

cdk-nag错误是因为一个bug导致的。

虽然我设置了秘密轮换,但它仍然不符合要求,即使轮换已经配置好。我当时使用的是aws-cdk-lib的v2.116版本,更新到2.129.0版本后,问题就解决了。

撰写回答