@@ -404,12 +404,21 @@ func resourceAlicloudOssBucket() *schema.Resource {
404
404
ValidateFunc : StringInSlice ([]string {
405
405
ServerSideEncryptionAes256 ,
406
406
ServerSideEncryptionKMS ,
407
+ ServerSideEncryptionSM4 ,
407
408
}, false ),
408
409
},
409
410
"kms_master_key_id" : {
410
411
Type : schema .TypeString ,
411
412
Optional : true ,
412
413
},
414
+ "kms_data_encryption" : {
415
+ Type : schema .TypeString ,
416
+ Optional : true ,
417
+ ValidateFunc : StringInSlice ([]string {
418
+ ServerSideEncryptionSM4 ,
419
+ "" ,
420
+ }, false ),
421
+ },
413
422
},
414
423
},
415
424
MaxItems : 1 ,
@@ -534,9 +543,13 @@ func resourceAlicloudOssBucketCreate(d *schema.ResourceData, meta interface{}) e
534
543
options = append (options , oss .SetHeader ("x-oss-server-side-encryption" , sse_algorithm ))
535
544
}
536
545
537
- if sse_kms_id , ok := sse_rule ["kms_master_key_id" ].(string ); ok {
546
+ if sse_kms_id , ok := sse_rule ["kms_master_key_id" ].(string ); ok && sse_kms_id != "" {
538
547
options = append (options , oss .SetHeader ("x-oss-server-side-encryption-key-id" , sse_kms_id ))
539
548
}
549
+
550
+ if kms_data_encryption , ok := sse_rule ["kms_data_encryption" ].(string ); ok && kms_data_encryption != "" {
551
+ options = append (options , oss .SetHeader ("x-oss-server-side-data-encryption" , kms_data_encryption ))
552
+ }
540
553
}
541
554
}
542
555
@@ -610,6 +623,9 @@ func resourceAlicloudOssBucketRead(d *schema.ResourceData, meta interface{}) err
610
623
if object .BucketInfo .SseRule .KMSMasterKeyID != "" {
611
624
rule ["kms_master_key_id" ] = object .BucketInfo .SseRule .KMSMasterKeyID
612
625
}
626
+ if object .BucketInfo .SseRule .KMSDataEncryption != "" {
627
+ rule ["kms_data_encryption" ] = object .BucketInfo .SseRule .KMSDataEncryption
628
+ }
613
629
data := make ([]map [string ]interface {}, 0 )
614
630
data = append (data , rule )
615
631
d .Set ("server_side_encryption_rule" , data )
@@ -1577,6 +1593,10 @@ func resourceAlicloudOssBucketEncryptionUpdate(client *connectivity.AliyunClient
1577
1593
sseRule .SSEDefault .KMSMasterKeyID = v .(string )
1578
1594
}
1579
1595
1596
+ if v , ok := c ["kms_data_encryption" ]; ok {
1597
+ sseRule .SSEDefault .KMSDataEncryption = v .(string )
1598
+ }
1599
+
1580
1600
raw , err := client .WithOssClient (func (ossClient * oss.Client ) (interface {}, error ) {
1581
1601
requestInfo = ossClient
1582
1602
return nil , ossClient .SetBucketEncryption (d .Id (), sseRule )
0 commit comments