Skip to content

Commit 51eb17c

Browse files
ricosegaAdrian Ricobryantbiggs
authored
docs: Add example of custom IRSA role (#328)
Co-authored-by: Adrian Rico <[email protected]> Co-authored-by: Bryant Biggs <[email protected]>
1 parent 99bca9c commit 51eb17c

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

examples/iam-role-for-service-accounts-eks/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ Run `terraform destroy` when you don't need these resources.
4444
| <a name="module_external_dns_irsa_role"></a> [external\_dns\_irsa\_role](#module\_external\_dns\_irsa\_role) | ../../modules/iam-role-for-service-accounts-eks | n/a |
4545
| <a name="module_external_secrets_irsa_role"></a> [external\_secrets\_irsa\_role](#module\_external\_secrets\_irsa\_role) | ../../modules/iam-role-for-service-accounts-eks | n/a |
4646
| <a name="module_fsx_lustre_csi_irsa_role"></a> [fsx\_lustre\_csi\_irsa\_role](#module\_fsx\_lustre\_csi\_irsa\_role) | ../../modules/iam-role-for-service-accounts-eks | n/a |
47+
| <a name="module_iam_eks_role"></a> [iam\_eks\_role](#module\_iam\_eks\_role) | terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks | n/a |
48+
| <a name="module_iam_policy"></a> [iam\_policy](#module\_iam\_policy) | terraform-aws-modules/iam/aws//modules/iam-policy | n/a |
4749
| <a name="module_irsa_role"></a> [irsa\_role](#module\_irsa\_role) | ../../modules/iam-role-for-service-accounts-eks | n/a |
4850
| <a name="module_karpenter_controller_irsa_role"></a> [karpenter\_controller\_irsa\_role](#module\_karpenter\_controller\_irsa\_role) | ../../modules/iam-role-for-service-accounts-eks | n/a |
4951
| <a name="module_load_balancer_controller_irsa_role"></a> [load\_balancer\_controller\_irsa\_role](#module\_load\_balancer\_controller\_irsa\_role) | ../../modules/iam-role-for-service-accounts-eks | n/a |

examples/iam-role-for-service-accounts-eks/main.tf

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,53 @@ module "vpc_cni_ipv6_irsa_role" {
328328
tags = local.tags
329329
}
330330

331+
################################################################################
332+
# Custom IRSA Roles
333+
################################################################################
334+
335+
# This is an example of a custom IRSA role which allows workloads with the specified serviceccount to perform actions in a S3 bucket.
336+
module "iam_policy" {
337+
source = "terraform-aws-modules/iam/aws//modules/iam-policy"
338+
339+
name = "myapp"
340+
path = "/"
341+
description = "Example policy"
342+
343+
policy = jsonencode({
344+
Version = "2012-10-17"
345+
Statement = [
346+
{
347+
Effect = "Allow"
348+
Action = [
349+
"s3:*",
350+
]
351+
Resource = "*"
352+
}
353+
]
354+
})
355+
356+
}
357+
358+
module "iam_eks_role" {
359+
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
360+
role_name = "my-app"
361+
362+
role_policy_arns = {
363+
policy = "arn:aws:iam::012345678901:policy/myapp"
364+
}
365+
366+
oidc_providers = {
367+
one = {
368+
provider_arn = "arn:aws:iam::012345678901:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/5C54DDF35ER19312844C7333374CC09D"
369+
namespace_service_accounts = ["default:my-app-staging", "canary:my-app-staging"]
370+
}
371+
two = {
372+
provider_arn = "arn:aws:iam::012345678901:oidc-provider/oidc.eks.ap-southeast-1.amazonaws.com/id/5C54DDF35ER54476848E7333374FF09G"
373+
namespace_service_accounts = ["default:my-app-staging"]
374+
}
375+
}
376+
}
377+
331378
################################################################################
332379
# Supporting Resources
333380
################################################################################

modules/iam-role-for-service-accounts-eks/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ module "iam_eks_role" {
2727
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
2828
role_name = "my-app"
2929
30+
role_policy_arns = {
31+
policy = "arn:aws:iam::012345678901:policy/myapp"
32+
}
33+
3034
oidc_providers = {
3135
one = {
3236
provider_arn = "arn:aws:iam::012345678901:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/5C54DDF35ER19312844C7333374CC09D"

0 commit comments

Comments
 (0)