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

Allow terraform to generate the base role for cluster creation #34

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

super-cob
Copy link
Contributor

This is a fork from https://github.com/yuvipanda/terraform-deploy/tree/fix/no-users and the idea is that you can terraform apply from the aws-creds folder to create a group that may assume a role from which you may then run the real terraform script from the aws folder. You simply add yourself to the group and then use awsudo or sts to assume the role in a shell before creating your EKS cluster. Looking for direction here, I took a lot of liberties and I want to gauge interest in adopting this system for other orgs.

yuvipanda and others added 7 commits April 29, 2020 20:42
We were creating AWS service users, giving them keys
and then checking those keys in with git-crypt. This isn't
good security practice. We should be creating roles with
minimal permissions instead. These roles can then be 'assumed'
by different entities - an EC2 instance running GitHub actions,
a local user on a computer, etc. This also removes need to
managed EC2 access credentials in a repo - dangerous, and bothersome
to rotate.

This needs corresponding changes in hubploy to use assumed
roles before it can work.
Currently, only the user who created the cluster can
access the cluster. We need to explicitly set role in
[aws-auth](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html)
to let roles access the cluster.

We set this up, so the hubploy role can actually talk to the
kubernetes cluster
We create a role that can assume only the two roles
necessary for hubploy. This role can only be attached
to ec2 instances
Only needs to run describe-cluster on the one we just
created
Copy link
Member

@yuvipanda yuvipanda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor comments, but is in the right path! Would love for a README when it's done.

aws-creds/iam.tf Outdated Show resolved Hide resolved
aws-creds/iam.tf Outdated
"eks:CreateCluster",
"eks:DeleteCluster",
"eks:DescribeCluster",
"eks:ListClusters",
"eks:UpdateClusterConfig",
"eks:DescribeUpdate",
"iam:GetInstanceProfile",
"iam:GetOpenIDConnectProvider",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use spaces to match the other lines?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spaces instead of tabs everywhere i can is done

aws-creds/iam.tf Outdated Show resolved Hide resolved
aws-creds/iam.tf Outdated Show resolved Hide resolved
@super-cob super-cob changed the title WIP allow terraform to generate the base role for cluster creation Allow terraform to generate the base role for cluster creation May 19, 2020
@super-cob
Copy link
Contributor Author

No longer a WIP, this is legit now!

@super-cob super-cob requested a review from yuvipanda May 20, 2020 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants