| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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 = ["*"]
- }
- }
- # Create the IAM policy document for ACM access
- data "aws_iam_policy_document" "acm" {
- statement {
- actions = [
- "acm:GetCertificate",
- "acm:ImportCertificate",
- "acm:DeleteCertificate",
- "acm:DescribeCertificate",
- "acm:ListTagsForCertificate",
- "acm:AddTagsToCertificate",
- "acm:RemoveTagsFromCertificate",
- "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
- }
- # Create and attach the inline policy for ACM
- resource "aws_iam_role_policy" "acm" {
- name = "aws_acm"
- role = aws_iam_role.eso-e2e-irsa.id
- policy = data.aws_iam_policy_document.acm.json
- }
|