Closed FarrOut closed 4 months ago
To add further context to this issue, the ModifyDBInstance
API call made by CloudFormation is simply not inclining the required parameter CACertificateIdentifier
when it should [1]. The DescribeDBInstance
API call is made before ModifyDBInstance
, and DescribeDBInstance
does include the property CACertificateIdentifier
so this likely just needs to be added into the logic.
"errorCode": "InvalidParameterCombinationException",
"errorMessage": "CACertificateIdentifier is required to use the NoCertificateRotationRestart option.",
"requestParameters": {
"dBInstanceIdentifier": "mydbInstanceIdentifer",
"applyImmediately": true,
"allowMajorVersionUpgrade": true,
"autoMinorVersionUpgrade": true,
"certificateRotationRestart": false
},
[1] https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html
Name of the resource
AWS::RDS::DBInstance
Resource Name
No response
Issue Description
AWS::RDS::DBInstance cannot be modified with replacing updates when CACertificateIdentifier and CertificateRotationRestart properties are implemented.
For example: Modifying instance class fails with:
Expected Behavior
Replacing updates to AWS::RDS::DBInstance should succeed, even with CACertificateIdentifier and CertificateRotationRestart properties defined.
Observed Behavior
ModifyDBInstance
Test Cases
Resources: ParameterGroup5E32DECB: Type: AWS::RDS::DBParameterGroup Properties: Description: Testing drift Family: postgres15 Parameters: shared_preload_libraries: pg_stat_statements track_activity_query_size: "4097" InstanceSubnetGroupF2CBA54F: Type: AWS::RDS::DBSubnetGroup Properties: DBSubnetGroupDescription: Subnet group for Instance database SubnetIds:
DBInstanceClass: db.r5.large
DBParameterGroupName: Ref: ParameterGroup5E32DECB DBSubnetGroupName: Ref: InstanceSubnetGroupF2CBA54F Engine: postgres EngineVersion: "15.3" MasterUsername: syscdk CertificateRotationRestart: false CACertificateIdentifier: "rds-ca-rsa2048-g1" MasterUserPassword: Fn::Join:
RdsInstance: Type: AWS::RDS::DBInstance Properties: AllocatedStorage: "100" CopyTagsToSnapshot: true DBInstanceClass: db.t3.medium
DBInstanceClass: db.r5.large <--- Change