Skip to content

Commit 307b46f

Browse files
authored
Merge pull request #33413 from triggan/main
r/neptune_cluster: fix ignored kms key on snapshot restore #15240.
2 parents 0955952 + bfe8c69 commit 307b46f

File tree

3 files changed

+59
-4
lines changed

3 files changed

+59
-4
lines changed

.changelog/33413.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/aws_neptune_cluster: Fix ignored `kms_key_arn` on restore from DB cluster snapshot
3+
```

internal/service/neptune/cluster.go

+1
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,7 @@ func resourceClusterCreate(ctx context.Context, d *schema.ResourceData, meta int
396396
v := v.(string)
397397

398398
inputC.KmsKeyId = aws.String(v)
399+
inputR.KmsKeyId = aws.String(v)
399400
}
400401

401402
if v, ok := d.GetOk("neptune_cluster_parameter_group_name"); ok {

internal/service/neptune/cluster_test.go

+55-4
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,7 @@ func TestAccNeptuneCluster_restoreFromSnapshot(t *testing.T) {
573573
var dbCluster neptune.DBCluster
574574
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
575575
resourceName := "aws_neptune_cluster.test"
576+
keyResourceName := "aws_kms_key.test2"
576577
parameterGroupResourceName := "aws_neptune_cluster_parameter_group.test"
577578

578579
resource.ParallelTest(t, resource.TestCase{
@@ -587,6 +588,7 @@ func TestAccNeptuneCluster_restoreFromSnapshot(t *testing.T) {
587588
testAccCheckClusterExists(ctx, resourceName, &dbCluster),
588589
resource.TestCheckResourceAttr(resourceName, "backup_retention_period", "5"),
589590
resource.TestCheckResourceAttr(resourceName, "cluster_identifier", rName),
591+
resource.TestCheckResourceAttrPair(resourceName, "kms_key_arn", keyResourceName, "arn"),
590592
resource.TestCheckResourceAttrPair(resourceName, "neptune_cluster_parameter_group_name", parameterGroupResourceName, "id"),
591593
resource.TestCheckResourceAttr(resourceName, "tags.%", "1"),
592594
resource.TestCheckResourceAttr(resourceName, "tags.Name", rName),
@@ -1295,6 +1297,52 @@ resource "aws_neptune_cluster_instance" "secondary" {
12951297

12961298
func testAccClusterConfig_restoreFromSnapshot(rName string) string {
12971299
return fmt.Sprintf(`
1300+
resource "aws_kms_key" "test1" {
1301+
description = %[1]q
1302+
1303+
policy = <<POLICY
1304+
{
1305+
"Version": "2012-10-17",
1306+
"Id": "kms-tf-1",
1307+
"Statement": [
1308+
{
1309+
"Sid": "Enable IAM User Permissions",
1310+
"Effect": "Allow",
1311+
"Principal": {
1312+
"AWS": "*"
1313+
},
1314+
"Action": "kms:*",
1315+
"Resource": "*"
1316+
}
1317+
]
1318+
}
1319+
POLICY
1320+
1321+
}
1322+
1323+
resource "aws_kms_key" "test2" {
1324+
description = %[1]q
1325+
1326+
policy = <<POLICY
1327+
{
1328+
"Version": "2012-10-17",
1329+
"Id": "kms-tf-2",
1330+
"Statement": [
1331+
{
1332+
"Sid": "Enable IAM User Permissions",
1333+
"Effect": "Allow",
1334+
"Principal": {
1335+
"AWS": "*"
1336+
},
1337+
"Action": "kms:*",
1338+
"Resource": "*"
1339+
}
1340+
]
1341+
}
1342+
POLICY
1343+
1344+
}
1345+
12981346
resource "aws_default_vpc" "test" {}
12991347
13001348
resource "aws_security_group" "test" {
@@ -1312,6 +1360,8 @@ resource "aws_neptune_cluster" "source" {
13121360
cluster_identifier = "%[1]s-src"
13131361
neptune_cluster_parameter_group_name = "default.neptune1.2"
13141362
skip_final_snapshot = true
1363+
storage_encrypted = true
1364+
kms_key_arn = aws_kms_key.test1.arn
13151365
}
13161366
13171367
resource "aws_neptune_cluster_snapshot" "test" {
@@ -1330,10 +1380,11 @@ resource "aws_neptune_cluster_parameter_group" "test" {
13301380
}
13311381
13321382
resource "aws_neptune_cluster" "test" {
1333-
cluster_identifier = %[1]q
1334-
skip_final_snapshot = true
1335-
snapshot_identifier = aws_neptune_cluster_snapshot.test.id
1336-
1383+
cluster_identifier = %[1]q
1384+
skip_final_snapshot = true
1385+
storage_encrypted = true
1386+
snapshot_identifier = aws_neptune_cluster_snapshot.test.id
1387+
kms_key_arn = aws_kms_key.test2.arn
13371388
backup_retention_period = 5
13381389
neptune_cluster_parameter_group_name = aws_neptune_cluster_parameter_group.test.id
13391390
vpc_security_group_ids = aws_security_group.test[*].id

0 commit comments

Comments
 (0)