見出し画像

KubernetesのRBAC(ロールベースアクセス制御)を理解する

要件

  • podからS3にアクセスする

タスク

  • 以下の参考記事をもとに、podからS3を操作する

参考記事

▼podから、S3を操作する方法 

▼ kubernetesのRBACに関しての説明ではないが、RBAC概念を理解するにはとてもわかりやすい!

▼OIDCに関して

学べること

  • RBAC(kubernetes)について

  • ServiceAccountについて

  •  AWS IAMポリシーについて

  •  AWS IAMロールについて

ヒント

▼OIDCプロバイダーの作成

eksctl utils associate-iam-oidc-provider --region=ap-northeast-1 --cluster=sample-cluster --approve

▼ IAMロールとKubernetesサービスアカウントを作成する

eksctl create iamserviceaccount \
  --name loki-sa \
  --cluster sample-cluster \
  --attach-policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess \
  --role-name loki_s3_role \
  --approve

▼ podの作成 (aws ls s3のコマンドが使えるpod)

apiVersion: v1
kind: Pod
metadata:
  name: test-iam-sa-pod
  labels:
    app: test-iam-sa-app
spec:
  containers:
    - name: test-iam-sa
      image: amazon/aws-cli
      command: [ "/bin/bash", "-c", "--" ]
      args: [ "while true; do sleep 30; done;" ]
  serviceAccountName: loki-sa

ハマりポイント

ServiceAccountは、同じnamesapce内に作らないと動かない
ex )
ServiceAccountのnamesapceがdefault なら、podのnamespaceはdefault。
ServiceAccountのnamesapceがkube-system なら、podのnamespaceはkube-systemでないと適応されないよ

関連タグ

#RBAC #ServiceAccount #IAMポリシー #IAMロール #kubernetes #OIDC

この記事が気に入ったらサポートをしてみませんか?