📝

AmazonEKSのIRSAの仕組み(IAM Role for SA)簡易版

2025/02/25に公開

概要

表題の通り、IRSAの仕組みについて理解の整理のために簡単に記載します。

IRSAとは

k8sで使われるService Accountに対して、AWSのAPIへアクセスするための仕組みです。
EKSで稼働するPodはAnnotationsで指定されたIAMRoleを使うようにOIDC経由で権限をリクエストして、一時的に割り当てられた権限で各APIへアクセスします。

登場人物

  • OIDC(AWS IDプロバイダー)設定→クラスターと紐付く
  • IAM Role
  • ServiceAccount(k8sで指定)

設定

  1. OIDC連携したIAM Roleを作成する(terraformであればIRSA用のmoduleがあるのでそれを使うのが楽)https://registry.terraform.io/modules/terraform-aws-modules/iam/aws/latest/submodules/iam-role-for-service-accounts-eks
  2. SAのAnnotationsに1で作成したIAMRoleのarnを指定する
$ kubectl describe sa example -n example
Name:                example
Namespace:           example
Annotations:         eks.amazonaws.com/role-arn: arn:aws:iam::1234567890:role/allow-access-eks-example-role
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              <none>
Events:              <none>

Discussion