iam.tf 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. data "aws_iam_policy_document" "eks_cluster_assume_role" {
  2. statement {
  3. actions = ["sts:AssumeRole"]
  4. principals {
  5. type = "Service"
  6. identifiers = ["eks.amazonaws.com"]
  7. }
  8. }
  9. }
  10. resource "aws_iam_role" "cluster" {
  11. name = "${var.name}-eks-cluster-role"
  12. assume_role_policy = data.aws_iam_policy_document.eks_cluster_assume_role.json
  13. tags = local.common_tags
  14. }
  15. resource "aws_iam_role_policy_attachment" "cluster_policy" {
  16. role = aws_iam_role.cluster.name
  17. policy_arn = "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"
  18. }
  19. data "aws_iam_policy_document" "eks_node_assume_role" {
  20. statement {
  21. actions = ["sts:AssumeRole"]
  22. principals {
  23. type = "Service"
  24. identifiers = ["ec2.amazonaws.com"]
  25. }
  26. }
  27. }
  28. resource "aws_iam_role" "node" {
  29. name = "${var.name}-eks-node-role"
  30. assume_role_policy = data.aws_iam_policy_document.eks_node_assume_role.json
  31. tags = local.common_tags
  32. }
  33. resource "aws_iam_role_policy_attachment" "node_worker_policy" {
  34. role = aws_iam_role.node.name
  35. policy_arn = "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy"
  36. }
  37. resource "aws_iam_role_policy_attachment" "node_cni_policy" {
  38. role = aws_iam_role.node.name
  39. policy_arn = "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy"
  40. }
  41. resource "aws_iam_role_policy_attachment" "node_ecr_policy" {
  42. role = aws_iam_role.node.name
  43. policy_arn = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly"
  44. }
  45. data "tls_certificate" "eks_oidc" {
  46. url = aws_eks_cluster.this.identity[0].oidc[0].issuer
  47. }
  48. resource "aws_iam_openid_connect_provider" "this" {
  49. client_id_list = ["sts.amazonaws.com"]
  50. thumbprint_list = [data.tls_certificate.eks_oidc.certificates[0].sha1_fingerprint]
  51. url = aws_eks_cluster.this.identity[0].oidc[0].issuer
  52. tags = local.common_tags
  53. }