📝
AmazonEKSのIRSAの仕組み(IAM Role for SA)簡易版
概要
表題の通り、IRSAの仕組みについて理解の整理のために簡単に記載します。
IRSAとは
k8sで使われるService Accountに対して、AWSのAPIへアクセスするための仕組みです。
EKSで稼働するPodはAnnotationsで指定されたIAMRoleを使うようにOIDC経由で権限をリクエストして、一時的に割り当てられた権限で各APIへアクセスします。
登場人物
- OIDC(AWS IDプロバイダー)設定→クラスターと紐付く
- IAM Role
- ServiceAccount(k8sで指定)
設定
- OIDC連携したIAM Roleを作成する(terraformであればIRSA用のmoduleがあるのでそれを使うのが楽)https://registry.terraform.io/modules/terraform-aws-modules/iam/aws/latest/submodules/iam-role-for-service-accounts-eks
- 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