|
@@ -30,11 +30,12 @@ resource "aws_iam_policy" "this" {
|
|
|
name = var.name
|
|
|
path = "/service/"
|
|
|
description = var.description
|
|
|
- policy = data.aws_iam_policy_document.policy.json
|
|
|
+ policy = length(var.kms_key_ids) == 0 ? data.aws_iam_policy_document.base_policy.json : data.aws_iam_policy_document.kms_policy.json
|
|
|
+
|
|
|
tags = merge(var.standard_tags, var.tags)
|
|
|
}
|
|
|
|
|
|
-data "aws_iam_policy_document" "policy" {
|
|
|
+data "aws_iam_policy_document" "base_policy" {
|
|
|
statement {
|
|
|
sid = "ReadTheBucket"
|
|
|
effect = "Allow"
|
|
@@ -83,3 +84,19 @@ data "aws_iam_policy_document" "policy" {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+data "aws_iam_policy_document" "kms_policy" {
|
|
|
+ source_json = data.aws_iam_policy_document.base_policy.json
|
|
|
+
|
|
|
+ statement {
|
|
|
+ sid = "UseTheKMSKey"
|
|
|
+ effect = "Allow"
|
|
|
+ resources = var.kms_key_ids
|
|
|
+ actions = [
|
|
|
+ "kms:GenerateDataKey",
|
|
|
+ "kms:Encrypt",
|
|
|
+ "kms:Decrypt",
|
|
|
+ "kms:DescribeKey"
|
|
|
+ ]
|
|
|
+ }
|
|
|
+}
|