blob: 7562ad34bb621b34fcfa091129bf6cbe9bc52399 [file] [log] [blame]
Riku Voipio19fadfa2020-07-02 09:05:50 +03001resource "aws_ecr_repository" "trustedfirmware_fvp" {
2 name = "fvp"
3 image_tag_mutability = "MUTABLE"
4}
5
6
7resource "aws_iam_role" "ecr_pushpull_role" {
8 name = "ecr_pushpull_role"
9 description = "Read/Write access to ECR"
10 assume_role_policy = <<EOF
11{
12 "Version": "2012-10-17",
13 "Statement": [
14 {
15 "Effect": "Allow",
16 "Principal": {
17 "AWS": [ "987685672616",
18 "arn:aws:iam::487149096843:user/vault"
19 ]
20 },
21 "Action": "sts:AssumeRole"
22 }
23 ]
24}
25EOF
26}
27
28resource "aws_iam_role_policy" "ecr_pushpull_policy" {
29 name = "ecr_pushpull_policy"
30 role = aws_iam_role.ecr_pushpull_role.id
31
32 policy = <<EOF
33{
34 "Version": "2008-10-17",
35 "Statement": [
36 {
37 "Sid": "AllowPushPull",
38 "Effect": "Allow",
39 "Resource": "*",
40 "Action": [
Riku Voipio19fadfa2020-07-02 09:05:50 +030041 "ecr:BatchGetImage",
42 "ecr:BatchCheckLayerAvailability",
Riku Voipioa4e6f592020-10-06 17:49:49 +030043 "ecr:CompleteLayerUpload",
Riku Voipio19fadfa2020-07-02 09:05:50 +030044 "ecr:GetAuthorizationToken",
Riku Voipioa4e6f592020-10-06 17:49:49 +030045 "ecr:GetDownloadUrlForLayer",
Riku Voipio19fadfa2020-07-02 09:05:50 +030046 "ecr:InitiateLayerUpload",
Riku Voipioa4e6f592020-10-06 17:49:49 +030047 "ecr:ListImages",
48 "ecr:PutImage",
49 "ecr:UploadLayerPart"
Riku Voipio19fadfa2020-07-02 09:05:50 +030050 ]
51 }
52 ]
53}
54EOF
55}
56
Riku Voipiob138c6b2021-06-11 14:36:05 +030057module "trustedfirmware_fvp_storage" {
58 source = "./modules/resources/s3"
59 bucket = "trustedfirmware-fvp"
60 acl = "private"
61}
62
63module "s3_fvp_policy" {
64 source = "./modules/resources/role_policy"
65 role_id = aws_iam_role.ecr_pushpull_role.id
66 policy_file = "templates/role_policy.tmpl"
67 actions = [
68 "s3:AbortMultipartUpload",
69 "s3:CompleteMultipartUpload",
70 "s3:ListBucket",
71 "s3:PutObject",
72 "s3:GetObject",
73 "s3:DeleteObject",
74 "s3:PutObjectAcl"
75 ]
76 resources = [
77 "arn:aws:s3:::trustedfirmware-fvp/*"
78 ]
79}
80
81
82module "jenkins_instance_profile" {
83 source = "./modules/resources/instance_profile"
84 name = "jenkins_instance_profile"
85 role_name = aws_iam_role.ecr_pushpull_role.name
86}
87
88