Python AWS CDK无能力合成堆栈,无法在AWS CDK中设置密钥轮换
我一直无法合成我的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版本后,问题就解决了。