@@ -14,130 +14,6 @@ resource "aws_iam_account_password_policy" "default" {
14
14
count = var. create_password_policy ? 1 : 0
15
15
}
16
16
17
- # --------------------------------------------------------------------------------------------------
18
- # Manager & Master Role Separation
19
- # --------------------------------------------------------------------------------------------------
20
- data "aws_iam_policy_document" "master_assume_policy" {
21
- statement {
22
- principals {
23
- type = " AWS"
24
- identifiers = [" arn:aws:iam::${ var . aws_account_id } :root" ]
25
- }
26
- actions = [" sts:AssumeRole" ]
27
- }
28
- }
29
-
30
- resource "aws_iam_role" "master" {
31
- name = var. master_iam_role_name
32
- assume_role_policy = data. aws_iam_policy_document . master_assume_policy . json
33
- count = var. create_master_role ? 1 : 0
34
-
35
- tags = var. tags
36
- }
37
-
38
- data "aws_iam_policy_document" "master_policy" {
39
- statement {
40
- actions = [
41
- " iam:CreateGroup" , " iam:CreatePolicy" , " iam:CreatePolicyVersion" , " iam:CreateRole" , " iam:CreateUser" ,
42
- " iam:DeleteGroup" , " iam:DeletePolicy" , " iam:DeletePolicyVersion" , " iam:DeleteRole" , " iam:DeleteRolePolicy" , " iam:DeleteUser" ,
43
- " iam:PutRolePolicy" ,
44
- " iam:GetPolicy" , " iam:GetPolicyVersion" , " iam:GetRole" , " iam:GetRolePolicy" , " iam:GetUser" , " iam:GetUserPolicy" ,
45
- " iam:ListEntitiesForPolicy" , " iam:ListGroupPolicies" , " iam:ListGroups" , " iam:ListGroupsForUser" ,
46
- " iam:ListPolicies" , " iam:ListPoliciesGrantingServiceAccess" , " iam:ListPolicyVersions" ,
47
- " iam:ListRolePolicies" , " iam:ListAttachedGroupPolicies" , " iam:ListAttachedRolePolicies" ,
48
- " iam:ListAttachedUserPolicies" , " iam:ListRoles" , " iam:ListUsers"
49
- ]
50
- resources = [" *" ]
51
- condition {
52
- test = " Bool"
53
- variable = " aws:MultiFactorAuthPresent"
54
- values = [" true" ]
55
- }
56
- }
57
-
58
- statement {
59
- effect = " Deny"
60
- actions = [
61
- " iam:AddUserToGroup" ,
62
- " iam:AttachGroupPolicy" ,
63
- " iam:DeleteGroupPolicy" , " iam:DeleteUserPolicy" ,
64
- " iam:DetachGroupPolicy" , " iam:DetachRolePolicy" , " iam:DetachUserPolicy" ,
65
- " iam:PutGroupPolicy" , " iam:PutUserPolicy" ,
66
- " iam:RemoveUserFromGroup" ,
67
- " iam:UpdateGroup" , " iam:UpdateAssumeRolePolicy" , " iam:UpdateUser"
68
- ]
69
- resources = [" *" ]
70
- }
71
- }
72
-
73
- resource "aws_iam_role_policy" "master_policy" {
74
- name = var. master_iam_role_policy_name
75
- role = aws_iam_role. master [0 ]. id
76
- count = var. create_master_role ? 1 : 0
77
-
78
- policy = data. aws_iam_policy_document . master_policy . json
79
- }
80
-
81
- data "aws_iam_policy_document" "manager_assume_policy" {
82
- statement {
83
- principals {
84
- type = " AWS"
85
- identifiers = [" arn:aws:iam::${ var . aws_account_id } :root" ]
86
- }
87
- actions = [" sts:AssumeRole" ]
88
- }
89
- }
90
-
91
- resource "aws_iam_role" "manager" {
92
- name = var. manager_iam_role_name
93
- assume_role_policy = data. aws_iam_policy_document . manager_assume_policy . json
94
- count = var. create_manager_role ? 1 : 0
95
-
96
- tags = var. tags
97
- }
98
-
99
- data "aws_iam_policy_document" "manager_policy" {
100
- statement {
101
- actions = [
102
- " iam:AddUserToGroup" ,
103
- " iam:AttachGroupPolicy" ,
104
- " iam:DeleteGroupPolicy" , " iam:DeleteUserPolicy" ,
105
- " iam:DetachGroupPolicy" , " iam:DetachRolePolicy" , " iam:DetachUserPolicy" ,
106
- " iam:PutGroupPolicy" , " iam:PutUserPolicy" ,
107
- " iam:RemoveUserFromGroup" ,
108
- " iam:UpdateGroup" , " iam:UpdateAssumeRolePolicy" , " iam:UpdateUser" ,
109
- " iam:GetPolicy" , " iam:GetPolicyVersion" , " iam:GetRole" , " iam:GetRolePolicy" , " iam:GetUser" , " iam:GetUserPolicy" ,
110
- " iam:ListEntitiesForPolicy" , " iam:ListGroupPolicies" , " iam:ListGroups" , " iam:ListGroupsForUser" ,
111
- " iam:ListPolicies" , " iam:ListPoliciesGrantingServiceAccess" , " iam:ListPolicyVersions" ,
112
- " iam:ListRolePolicies" , " iam:ListAttachedGroupPolicies" , " iam:ListAttachedRolePolicies" ,
113
- " iam:ListAttachedUserPolicies" , " iam:ListRoles" , " iam:ListUsers"
114
- ]
115
- resources = [" *" ]
116
- condition {
117
- test = " Bool"
118
- variable = " aws:MultiFactorAuthPresent"
119
- values = [" true" ]
120
- }
121
- }
122
-
123
- statement {
124
- effect = " Deny"
125
- actions = [
126
- " iam:CreateGroup" , " iam:CreatePolicy" , " iam:CreatePolicyVersion" , " iam:CreateRole" , " iam:CreateUser" ,
127
- " iam:DeleteGroup" , " iam:DeletePolicy" , " iam:DeletePolicyVersion" , " iam:DeleteRole" , " iam:DeleteRolePolicy" , " iam:DeleteUser" ,
128
- " iam:PutRolePolicy"
129
- ]
130
- resources = [" *" ]
131
- }
132
- }
133
-
134
- resource "aws_iam_role_policy" "manager_policy" {
135
- name = var. manager_iam_role_policy_name
136
- role = aws_iam_role. manager [0 ]. id
137
- policy = data. aws_iam_policy_document . manager_policy . json
138
- count = var. create_manager_role ? 1 : 0
139
- }
140
-
141
17
# --------------------------------------------------------------------------------------------------
142
18
# Support Role
143
19
# --------------------------------------------------------------------------------------------------
0 commit comments