mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-17 17:33:47 +00:00
create ECR repo + GHA IAM resources
This commit is contained in:
parent
0314b209b2
commit
7076b61c4a
2 changed files with 114 additions and 0 deletions
46
terraform/infra/dev/ecr.tf
Normal file
46
terraform/infra/dev/ecr.tf
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
module "ecr_go-ethereum" {
|
||||
source = "terraform-aws-modules/ecr/aws"
|
||||
version = "2.3.1"
|
||||
|
||||
repository_name = "limechain-devops-task/go-ethereum"
|
||||
repository_type = "private"
|
||||
|
||||
repository_read_write_access_arns = ["arn:aws:iam::${var.account_id}:role/${aws_iam_role.go-ethereum_github_actions.name}"]
|
||||
create_repository_policy = true
|
||||
repository_lifecycle_policy = jsonencode({
|
||||
rules = [
|
||||
{
|
||||
rulePriority = 1,
|
||||
description = "Keep last 20 images",
|
||||
selection = {
|
||||
tagStatus = "any",
|
||||
countType = "imageCountMoreThan",
|
||||
countNumber = 20
|
||||
},
|
||||
action = {
|
||||
type = "expire"
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
# Registry Scanning Configuration
|
||||
manage_registry_scanning_configuration = true
|
||||
registry_scan_type = "BASIC"
|
||||
registry_scan_rules = [
|
||||
{
|
||||
scan_frequency = "SCAN_ON_PUSH"
|
||||
filter = [
|
||||
{
|
||||
filter = "*"
|
||||
filter_type = "WILDCARD"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
tags = {
|
||||
"Name" = "limechain-devops-task"
|
||||
"Environment" = var.env
|
||||
}
|
||||
}
|
||||
68
terraform/infra/dev/gha_iam.tf
Normal file
68
terraform/infra/dev/gha_iam.tf
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
|
||||
### IAM for go-ethereum Github Actions
|
||||
resource "aws_iam_role" "go-ethereum_github_actions" {
|
||||
name = "go-ethereum-github-actions-role"
|
||||
|
||||
assume_role_policy = jsonencode({
|
||||
Version = "2012-10-17",
|
||||
Statement = [
|
||||
{
|
||||
Effect = "Allow",
|
||||
Principal = {
|
||||
Federated = "arn:aws:iam::${var.account_id}:oidc-provider/token.actions.githubusercontent.com"
|
||||
},
|
||||
Action = "sts:AssumeRoleWithWebIdentity",
|
||||
Condition = {
|
||||
StringLike = {
|
||||
"token.actions.githubusercontent.com:sub" : "repo:teddy931130/go-ethereum:*"
|
||||
},
|
||||
StringEquals = {
|
||||
"token.actions.githubusercontent.com:aud" : "sts.amazonaws.com",
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
tags = {
|
||||
"Name" = "go-ethereum"
|
||||
"Environment" = var.env
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_iam_policy" "go-ethereum_github_actions_policy" {
|
||||
name = "limechain-go-ethereum-github-actions-ecr-policy"
|
||||
description = "Permissions for Limechain-go-ethereum GitHub Actions to pull images from ECR"
|
||||
|
||||
policy = jsonencode({
|
||||
Version = "2012-10-17",
|
||||
Statement = [
|
||||
{
|
||||
Effect = "Allow",
|
||||
Action = [
|
||||
"ecr:BatchCheckLayerAvailability",
|
||||
"ecr:BatchGetImage",
|
||||
"ecr:GetDownloadUrlForLayer",
|
||||
"ecr:DescribeImages",
|
||||
"ecr:InitiateLayerUpload",
|
||||
"ecr:UploadLayerPart",
|
||||
"ecr:CompleteLayerUpload",
|
||||
"ecr:PutImage",
|
||||
],
|
||||
Resource = "arn:aws:ecr:${var.region}:${var.account_id}:repository/limechain-devops-task/go-ethereum"
|
||||
},
|
||||
{
|
||||
Effect = "Allow",
|
||||
Action = [
|
||||
"ecr:GetAuthorizationToken"
|
||||
],
|
||||
Resource = "*"
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
resource "aws_iam_role_policy_attachment" "go-ethereum_github_actions_attach" {
|
||||
role = aws_iam_role.go-ethereum_github_actions.name
|
||||
policy_arn = aws_iam_policy.go-ethereum_github_actions_policy.arn
|
||||
}
|
||||
Loading…
Reference in a new issue