Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: use coder policy as additional policy #131

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions k8s/eks.tf
Original file line number Diff line number Diff line change
Expand Up @@ -15,59 +15,59 @@
oidc_fully_qualified_subjects = ["system:serviceaccount:kube-system:ebs-csi-controller-sa"]
}

resource "aws_iam_policy" "policy" {
resource "aws_iam_policy" "coder_policy" {
name = "coder-policy"
path = "/"
description = "Permissions required by coder to manage aws instances"

# https://github.com/coder/coder/tree/main/examples/templates/aws-linux#required-permissions--policy
policy = jsonencode({
"Version" : "2012-10-17",
"Statement" : [
{
"Sid" : "VisualEditor0",
"Effect" : "Allow",
"Action" : [
"ec2:GetDefaultCreditSpecification",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeTags",
"ec2:DescribeInstances",
"ec2:DescribeInstanceTypes",
"ec2:CreateTags",
"ec2:RunInstances",
"ec2:DescribeInstanceCreditSpecifications",
"ec2:DescribeImages",
"ec2:ModifyDefaultCreditSpecification",
"ec2:DescribeVolumes"
],
"Resource" : "*"
},
{
"Sid" : "CoderResources",
"Effect" : "Allow",
"Action" : [
"ec2:DescribeInstanceAttribute",
"ec2:UnmonitorInstances",
"ec2:TerminateInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:DeleteTags",
"ec2:MonitorInstances",
"ec2:CreateTags",
"ec2:RunInstances",
"ec2:ModifyInstanceAttribute",
"ec2:ModifyInstanceCreditSpecification"
],
"Resource" : "arn:aws:ec2:*:*:instance/*",
"Condition" : {
"StringEquals" : {
"aws:ResourceTag/Coder_Provisioned" : "true"
}
}
}
]
})
}

Check failure

Code scanning / defsec

IAM policy should avoid use of wildcards and instead apply the principle of least privilege Error

IAM policy document uses sensitive action 'ec2:UnmonitorInstances' on wildcarded resource 'arn:aws:ec2:*:*:instance/*'

Check failure

Code scanning / defsec

IAM policy should avoid use of wildcards and instead apply the principle of least privilege Error

IAM policy document uses sensitive action 'ec2:CreateTags' on wildcarded resource '*'

module "eks" {
source = "terraform-aws-modules/eks/aws"
Expand All @@ -85,8 +85,11 @@
vpc_id = module.vpc.vpc_id
subnet_ids = module.vpc.private_subnets

iam_role_arn = aws_iam_policy.policy.arn
create_iam_role = false
# iam_role_arn = aws_iam_policy.policy.arn
create_iam_role = true
iam_role_additional_policies = {
"coder-policy" : aws_iam_policy.coder_policy.arn
}

cluster_addons = {
aws-ebs-csi-driver = {
Expand Down