Skip to content

Commit 5907e45

Browse files
committed
DOPS-101 Add s3 policy to role for jenkins
1 parent 86a7e78 commit 5907e45

File tree

2 files changed

+358
-13
lines changed

2 files changed

+358
-13
lines changed

terraform/bootstrap/jenkins.tf

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
We use jenkins to automate deployment with Terraform. Jenkins
3+
is set up in a different AWS account.
4+
5+
This group of IAM resources allow jenkins to assume a role needed
6+
to deploy resources (and make changes to backend).
7+
*/
8+
9+
data "aws_iam_policy_document" "terraform_backend_account_policy" {
10+
statement {
11+
effect = "Allow"
12+
13+
principals {
14+
type = "AWS"
15+
identifiers = ["arn:aws:iam::191447213457:role/jenkins-role"]
16+
}
17+
18+
actions = ["sts:AssumeRole"]
19+
}
20+
}
21+
22+
resource "aws_iam_role" "terraform_backend_role" {
23+
name = "terraform_backend_admin"
24+
assume_role_policy = data.aws_iam_policy_document.terraform_backend_account_policy.json
25+
}
26+
27+
data "aws_iam_policy_document" "terraform_backend_role_policy_document" {
28+
statement {
29+
effect = "Allow"
30+
31+
actions = ["s3:*"]
32+
resources = ["arn:aws:s3:::${module.bootstrap.state_bucket}/*"]
33+
}
34+
}
35+
36+
resource "aws_iam_policy" "terraform_backend_role_policy" {
37+
name = "terraform-backend-role-policy"
38+
policy = data.aws_iam_policy_document.terraform_backend_role_policy_document.json
39+
}
40+
41+
resource "aws_iam_role_policy_attachment" "terraform_backend_attachment" {
42+
role = aws_iam_role.terraform_backend_role.name
43+
policy_arn = aws_iam_policy.terraform_backend_role_policy.arn
44+
}

0 commit comments

Comments
 (0)