blob: 0c15ffb8ebd1e1ca983c9677c5fa02d9c7c6d69d [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": {
Kelley Spoond02b92b2021-08-02 21:38:51 -050017 "AWS": [
18 "987685672616",
19 "arn:aws:iam::487149096843:user/vault"
20 ],
21 "Service": "ec2.amazonaws.com"
Riku Voipio19fadfa2020-07-02 09:05:50 +030022 },
23 "Action": "sts:AssumeRole"
24 }
25 ]
26}
27EOF
28}
29
30resource "aws_iam_role_policy" "ecr_pushpull_policy" {
31 name = "ecr_pushpull_policy"
32 role = aws_iam_role.ecr_pushpull_role.id
33
34 policy = <<EOF
35{
36 "Version": "2008-10-17",
37 "Statement": [
38 {
39 "Sid": "AllowPushPull",
40 "Effect": "Allow",
41 "Resource": "*",
42 "Action": [
Riku Voipio19fadfa2020-07-02 09:05:50 +030043 "ecr:BatchGetImage",
44 "ecr:BatchCheckLayerAvailability",
Riku Voipioa4e6f592020-10-06 17:49:49 +030045 "ecr:CompleteLayerUpload",
Riku Voipio19fadfa2020-07-02 09:05:50 +030046 "ecr:GetAuthorizationToken",
Riku Voipioa4e6f592020-10-06 17:49:49 +030047 "ecr:GetDownloadUrlForLayer",
Riku Voipio19fadfa2020-07-02 09:05:50 +030048 "ecr:InitiateLayerUpload",
Riku Voipioa4e6f592020-10-06 17:49:49 +030049 "ecr:ListImages",
50 "ecr:PutImage",
51 "ecr:UploadLayerPart"
Riku Voipio19fadfa2020-07-02 09:05:50 +030052 ]
53 }
54 ]
55}
56EOF
57}
58
Riku Voipiob138c6b2021-06-11 14:36:05 +030059module "trustedfirmware_fvp_storage" {
60 source = "./modules/resources/s3"
61 bucket = "trustedfirmware-fvp"
62 acl = "private"
63}
64
65module "s3_fvp_policy" {
66 source = "./modules/resources/role_policy"
67 role_id = aws_iam_role.ecr_pushpull_role.id
68 policy_file = "templates/role_policy.tmpl"
69 actions = [
70 "s3:AbortMultipartUpload",
Riku Voipiob138c6b2021-06-11 14:36:05 +030071 "s3:ListBucket",
72 "s3:PutObject",
73 "s3:GetObject",
74 "s3:DeleteObject",
75 "s3:PutObjectAcl"
76 ]
77 resources = [
Riku Voipio3f372ce2021-07-22 13:41:48 +030078 "arn:aws:s3:::trustedfirmware-fvp/*",
79 "arn:aws:s3:::trustedfirmware-fvp"
Riku Voipiob138c6b2021-06-11 14:36:05 +030080 ]
81}
82
83
84module "jenkins_instance_profile" {
85 source = "./modules/resources/instance_profile"
86 name = "jenkins_instance_profile"
87 role_name = aws_iam_role.ecr_pushpull_role.name
88}
89
90