Update AWS KMS with respect to key deletion features
This commit is contained in:
parent
6648df7acc
commit
5e18031367
|
@ -26,15 +26,10 @@ func resourceAwsKmsKey() *schema.Resource {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
},
|
},
|
||||||
"enabled": &schema.Schema{
|
|
||||||
Type: schema.TypeBool,
|
|
||||||
Computed: true,
|
|
||||||
},
|
|
||||||
"description": &schema.Schema{
|
"description": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
ForceNew: false,
|
|
||||||
},
|
},
|
||||||
"key_usage": &schema.Schema{
|
"key_usage": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
|
@ -54,7 +49,18 @@ func resourceAwsKmsKey() *schema.Resource {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
ForceNew: false,
|
},
|
||||||
|
"deletion_window": &schema.Schema{
|
||||||
|
Type: schema.TypeInt,
|
||||||
|
Optional: true,
|
||||||
|
ValidateFunc: func(v interface{}, k string) (ws []string, es []error) {
|
||||||
|
value := v.(int)
|
||||||
|
if (value > 30 || value < 7) {
|
||||||
|
es = append(es, fmt.Errorf(
|
||||||
|
"deletion window must be between 7 and 30 days inclusive"))
|
||||||
|
}
|
||||||
|
return
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -87,7 +93,7 @@ func resourceAwsKmsKeyRead(d *schema.ResourceData, meta interface{}) error {
|
||||||
keyId := d.Get("key_id").(string)
|
keyId := d.Get("key_id").(string)
|
||||||
|
|
||||||
req := &kms.DescribeKeyInput{
|
req := &kms.DescribeKeyInput{
|
||||||
KeyId: aws.String(keyId),
|
KeyId: aws.String(keyId),
|
||||||
}
|
}
|
||||||
resp, err := conn.DescribeKey(req)
|
resp, err := conn.DescribeKey(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -105,9 +111,6 @@ func resourceAwsKmsKeyReadResult(d *schema.ResourceData, metadata *kms.KeyMetada
|
||||||
if err := d.Set("key_id", metadata.KeyId); err != nil {
|
if err := d.Set("key_id", metadata.KeyId); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := d.Set("enabled", metadata.Enabled); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := d.Set("description", metadata.Description); err != nil {
|
if err := d.Set("description", metadata.Description); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -166,10 +169,13 @@ func resourceAwsKmsKeyDelete(d *schema.ResourceData, meta interface{}) error {
|
||||||
conn := meta.(*AWSClient).kmsconn
|
conn := meta.(*AWSClient).kmsconn
|
||||||
keyId := d.Get("key_id").(string)
|
keyId := d.Get("key_id").(string)
|
||||||
|
|
||||||
req := &kms.DisableKeyInput{
|
req := &kms.ScheduleKeyDeletionInput{
|
||||||
KeyId: aws.String(keyId),
|
KeyId: aws.String(keyId),
|
||||||
}
|
}
|
||||||
_, err := conn.DisableKey(req)
|
if v, exists := d.GetOk("deletion_window"); exists {
|
||||||
|
req.PendingWindowInDays = aws.Int64(int64(v.(int)))
|
||||||
|
}
|
||||||
|
_, err := conn.ScheduleKeyDeletion(req)
|
||||||
|
|
||||||
log.Printf("[DEBUG] KMS Key: %s deactivated.", keyId)
|
log.Printf("[DEBUG] KMS Key: %s deactivated.", keyId)
|
||||||
d.SetId("")
|
d.SetId("")
|
||||||
|
|
Loading…
Reference in New Issue