2017-10-04 126 views
0

有誰知道如何讓Terraform更新現有的KMS密鑰策略?使用terrform更新KMS密鑰策略

我已經創建了KMS密鑰,但是我有一個需要使用現有KMS密鑰的臨時IAM角色。我希望能夠將這個「新」IAM角色添加到現有的KMS密鑰策略中。我可以看到這可以使用AWS控制檯,但我不明白Terraform中如何做到這一點。

我想這也可以使用AWS CLI工具,但我還沒有調查過,因爲我在Terraform中構建了一個環境,並且希望將它保留在一個地方。

我應該指出,當前的KMS密鑰用於加密S3上傳和下載,各種IAM用戶和角色已經可以訪問當前密鑰,因此創建一個新密鑰只會將那些已經訪問該桶的人。

回答

0

如果kms鍵存在且不受terraform控制,則需要先導入該資源。

首先,確保你有這些代碼準備

resource "aws_iam_role" "example" { 
    name = "example" 
    assume_role_policy = "<redacted>" 
} 

resource "aws_kms_key" "example" { 
    description = "example" 
    deletion_window_in_days = 10 

    policy = "${file("kms-policy.json")}" 
} 

然後運行terraform import導入此資源。

$ terraform import aws_kms_key.example arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab 

之後,KMS密鑰可以通過terraform進行管理,你是罰款現在terraform plan/apply

+0

更新其IAM角色這會不會也意味着,當環境被破壞的重點也將被銷燬?我希望Terraform能夠利用aws cli命令「put-key-policy」或類似的方法。 – Chris

+0

我更新了答案,資源'aws_kms_key'可以選擇'deletion_window_in_days = 10',(可選)在資源被銷燬後刪除密鑰的天數必須在7到30天之間。默認爲30天。 – BMW