Skip to content

Commit 6b225d4

Browse files
committed
[ELI-731] adding required permissions to new role
1 parent 271901b commit 6b225d4

1 file changed

Lines changed: 119 additions & 0 deletions

File tree

infrastructure/stacks/iams-developer-roles/github_actions_policies.tf

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,115 @@ resource "aws_iam_policy" "cloudwatch_management" {
802802
tags = merge(local.tags, { Name = "cloudwatch-management" })
803803
}
804804

805+
data "aws_iam_policy_document" "regression_test_permissions" {
806+
statement {
807+
sid = "S3Access"
808+
Effect = "Allow",
809+
Action = [
810+
"s3:ListBucket",
811+
"s3:GetObject",
812+
"s3:PutObject",
813+
"s3:DeleteObject",
814+
"s3:GetBucketTagging",
815+
"s3:GetObjectTagging",
816+
"s3:PutObjectTagging",
817+
"s3:GetObjectVersion",
818+
],
819+
Resource = [
820+
"arn:aws:s3:::*eligibility-signposting-api-${var.environment}-eli-rules",
821+
"arn:aws:s3:::*eligibility-signposting-api-${var.environment}-eli-rules/*",
822+
"arn:aws:s3:::*eligibility-signposting-api-${var.environment}-consumer-map",
823+
"arn:aws:s3:::*eligibility-signposting-api-${var.environment}-consumer-map/*"
824+
]
825+
}
826+
827+
statement {
828+
sid = "DynamoAccess"
829+
Effect = "Allow"
830+
Action = [
831+
"dynamodb:GetItem",
832+
"dynamodb:PutItem",
833+
"dynamodb:Query",
834+
"dynamodb:Scan",
835+
"dynamodb:UpdateItem",
836+
"dynamodb:DeleteItem",
837+
"dynamodb:DescribeTable",
838+
"dynamodb:ListTables",
839+
"dynamodb:DeleteTable",
840+
"dynamodb:CreateTable",
841+
"dynamodb:TagResource",
842+
"dynamodb:UntagResource",
843+
"dynamodb:ListTagsOfResource"
844+
]
845+
resources = [
846+
"arn:aws:dynamodb:${var.default_aws_region}:${data.aws_caller_identity.current.account_id}:table/my-table"
847+
]
848+
}
849+
850+
statement {
851+
sid = "SecretsManagerAccess"
852+
Effect = "Allow"
853+
Action = [
854+
"secretsmanager:GetSecretValue",
855+
"secretsmanager:PutSecretValue",
856+
"secretsmanager:DescribeSecret",
857+
"secretsmanager:UpdateSecretVersionStage"
858+
]
859+
}
860+
861+
statement {
862+
sid = "CloudWatchLogsRead"
863+
Effect = "Allow"
864+
Action = [
865+
"logs:DescribeLogGroups",
866+
"logs:DescribeLogStreams",
867+
"logs:GetLogEvents",
868+
"logs:FilterLogEvents",
869+
"logs:StartQuery",
870+
"logs:GetQueryResults",
871+
"logs:StopQuery"
872+
]
873+
resources = ["*"]
874+
}
875+
876+
statement {
877+
sid = "XRayRead"
878+
Effect = "Allow"
879+
Action = [
880+
"xray:GetTraceSummaries",
881+
"xray:BatchGetTraces",
882+
"xray:GetServiceGraph",
883+
"xray:GetGroups",
884+
"xray:GetGroup",
885+
"xray:GetSamplingRules",
886+
"xray:GetSamplingTargets",
887+
"xray:GetSamplingStatisticSummaries",
888+
"xray:UpdateSamplingRule"
889+
]
890+
resources = ["*"]
891+
}
892+
893+
statement {
894+
sid = "SSMRead"
895+
Effect = "Allow"
896+
Action = [
897+
"ssm:GetParameter",
898+
"ssm:GetParameters",
899+
"ssm:GetParametersByPath"
900+
]
901+
resources = [
902+
"arn:aws:ssm:${var.default_aws_region}:${data.aws_caller_identity.current.account_id}:parameter/my-app/*"
903+
]
904+
}
905+
}
906+
907+
resource "aws_iam_policy" "regression_test_permissions" {
908+
name = "regression-test-permissions"
909+
description = "Permissions for the regression test GitHub Actions role"
910+
path = "/service-policies/"
911+
policy = data.aws_iam_policy_document.regression_test_permissions.json
912+
}
913+
805914
# Assume role policy document for GitHub Actions
806915
data "aws_iam_policy_document" "github_actions_assume_role" {
807916
statement {
@@ -913,3 +1022,13 @@ resource "aws_iam_role_policy_attachment" "cloudwatch_management" {
9131022
role = aws_iam_role.github_actions.name
9141023
policy_arn = aws_iam_policy.cloudwatch_management.arn
9151024
}
1025+
1026+
resource "aws_iam_role_policy_attachment" "regression_test_permissions" {
1027+
role = aws_iam_role.regression_test_role.name
1028+
policy_arn = aws_iam_policy.regression_test_permissions.arn
1029+
}
1030+
1031+
resource "aws_iam_role_policy_attachment" "security_management" {
1032+
role = aws_iam_role.regression_test_role.name
1033+
policy_arn = aws_iam_policy.security_management.arn
1034+
}

0 commit comments

Comments
 (0)