| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- data "aws_iam_policy_document" "assume-policy" {
- statement {
- actions = ["sts:AssumeRoleWithWebIdentity"]
- condition {
- test = "StringEquals"
- variable = "${trimprefix(module.eks.cluster_oidc_issuer_url, "https://")}:sub"
- values = [
- "system:serviceaccount:${local.serviceaccount_namespace}:${local.serviceaccount_name}"
- ]
- }
- principals {
- type = "Federated"
- identifiers = [module.eks.oidc_provider_arn]
- }
- }
- }
- # Create the IAM policy document for SSM Parameter Store access
- data "aws_iam_policy_document" "ssm_parameterstore" {
- statement {
- actions = [
- "ssm:GetParameter*",
- "ssm:PutParameter",
- "ssm:DescribeParameters",
- "ssm:DeleteParameter*",
- "ssm:AddTagsToResource",
- "ssm:ListTagsForResource",
- "ssm:RemoveTagsFromResource",
- "tag:GetResources"
- ]
- effect = "Allow"
- resources = ["*"]
- }
- }
- resource "aws_iam_role" "eso-e2e-irsa" {
- name = "eso-e2e-irsa"
- path = "/"
- assume_role_policy = data.aws_iam_policy_document.assume-policy.json
- }
- # Attach the AWS managed policy for Secrets Manager
- resource "aws_iam_role_policy_attachment" "secrets_manager" {
- role = aws_iam_role.eso-e2e-irsa.name
- policy_arn = "arn:aws:iam::aws:policy/SecretsManagerReadWrite"
- }
- # Create and attach the inline policy for SSM Parameter Store
- resource "aws_iam_role_policy" "ssm_parameterstore" {
- name = "aws_ssm_parameterstore"
- role = aws_iam_role.eso-e2e-irsa.id
- policy = data.aws_iam_policy_document.ssm_parameterstore.json
- }
|