IAM-K8S-ACCESS¶
Kubernetes リソースへのアクセス権限を IAM リソースに付与するためのパッケージです。
対応サービス¶
AWS: AWS IAM
パッケージの機能¶
本パッケージでは、IAM リソースに対してkubernetes APIへのアクセス権限を付与するための機能を提供します。
IAM Roleに対するkubernetes API へのアクセス権限の付与(AWS)
アクセスレベルの設定¶
action パラメータ:
アクセスレベルは、運用シーンに応じて以下の2種類から選択できます:
read - 読み取り専用 (get, list, watch)
admin - 書き込み・削除など全操作が許可
プリセット権限¶
preset: all¶
このプリセットは、管理者向けに設計されています。 全リソースに対する操作権限を付与するため、システム全体の運用管理に適しています。
リソース制限: なし
Namespace 制限: なし
preset: application¶
このプリセットは、アプリケーションエンジニア向けに設計されています。 アプリケーションのデバッグやログ確認等に必要となる最小限のアクセス権限を付与することで、過剰な権限を排除し安全に運用できます。
対象リソースの制限¶
対象リソース: Deployment、Pod、ConfigMap、Service、Secret、HelmRelease, Application - アプリケーションの運用に必要なリソースに対してのみアクセスを許可します。
Namespaceの制限¶
対象Namespace: targetNamespaces に指定されたNamespaceのみアクセス可能 - 指定された領域に限定して権限を付与し、クラスタ全体への不要なアクセスを防ぎます。
追加アクセス: - Terraformリソース: managed-system Namespaceで共通管理のため、追加でアクセス権限を付与 - Kustomization, GitRepositoryリソース: flux-system Namespaceで共通管理のため、追加でアクセス権限を付与
アクセスレベルの設定¶
action パラメータ:
read: 読み取り専用(get, list, watch)
admin: 書き込みや削除など全ての操作を許可
→ 運用シーンに応じた権限レベルを選択可能です。
カスタムロール¶
customRbacRules の設定によりカスタムロールを追加することができます。
プリセットと併用する場合、プリセット権限とカスタムロールの両方が適用されます。
Values¶
Default values¶
# roleName: "" # アクセス許可するAWS IAM Role名. 同じアカウントのみ
rbac:
# action: read, admin のいずれか
# * "read": 読み取り専用。get, list, watch などの読み取り操作のみ許可します。
# * "admin": フルアクセス。読み取りに加え、書き込みや削除など全ての操作を許可します。
action: read # Options: "read", "admin"
# preset: application, admin のいずれか
# * "application": アプリケーションエンジニア向けの設定です。
# 必要最小限のリソース(デバッグ・監視用など)のみに限定し、
# 対象となる複数のnamespaceにのみ適用されます。
# * "admin": 管理者向け設定で、全リソースに対するアクセスを許可します。
# preset: application # Options: "application", "all"
# targetNamespaces:
# presetが "application" の場合にのみ有効です。
# ここにリストされたネームスペースに対して、RBACが適用されます。
targetNamespaces: []
# - app1
# - app2
# customRbacRules:
# 任意の RBAC ルールを追加できます。
# 各エントリは以下のフィールドを持ちます:
# namespace: このルールを適用する namespace。未指定の場合は ClusterRole として扱われます。ただし、作成できるClusterRoleは1つのみです。
# rules: Kubernetes RBAC ルールのリスト
customRbacRules: []
# - namespace: app1
# rules:
# - apiGroups:
# - ""
# resources:
# - persistentvolumeclaims
# verbs:
# - get
# - list
# - rules:
# - apiGroups:
# - batch
# resources:
# - jobs
# verbs:
# - create
# - delete
Schema reference¶
Values¶
https://github.com/sbopsv/MASTER-CONTAINER-HELM-iam-k8s-access/blob/master/values.schema.json |
|||||||
type |
object |
||||||
properties |
|||||||
|
アクセス許可するAWS IAM Role名。同一アカウント内のRoleを指定。 |
||||||
type |
string |
||||||
|
RBAC(Role Based Access Control)の設定を定義。 |
||||||
type |
object |
||||||
properties |
|||||||
|
実行する操作のレベル。'read'は読み取り専用(get, list, watch)、'admin'は全ての操作(書き込み、削除を含む)を許可。 |
||||||
type |
string |
||||||
enum |
read, admin |
||||||
|
RBACのプリセット設定。'application'はアプリケーションエンジニア向けの最小限アクセス、'all'は管理者向けの全リソースアクセス |
||||||
type |
string |
||||||
enum |
application, all |
||||||
|
presetが'application'の場合に適用されるnamespaceのリスト。 |
||||||
type |
array |
||||||
items |
type |
string |
|||||
|
追加のRBACルールを定義します。namespaceが指定されていない場合、クラスタ全体に適用。 |
||||||
type |
array |
||||||
items |
type |
object |
|||||
properties |
|||||||
|
このカスタムRBACルールを適用するnamespace。未指定の場合はClusterRoleとして扱われる。 |
||||||
type |
string |
||||||
|
KubernetesのRBACルールのリストを定義。 |
||||||
type |
array |
||||||
items |
type |
object |
|||||
properties |
|||||||
|
このルールが適用されるAPIグループのリスト。 |
||||||
type |
array |
||||||
items |
type |
string |
|||||
|
対象となるリソースのリスト。 |
||||||
type |
array |
||||||
items |
type |
string |
|||||
|
リソースに対して許可する操作(verb)のリスト。 |
||||||
type |
array |
||||||
items |
type |
string |
Example¶
Example1-1. AWS IAM¶
apiVersion: managed.msp.sbopsv/v1alpha1
kind: IamK8sAccess
metadata:
name: test-access001
namespace: staging
spec:
roleName: test-role001
rbac:
preset: application
action: read
targetNamespaces:
- staging
customRbacRules: []
Change Log¶
0.1.2¶
Released on 2025-08-07
What's Changed
パッケージ内で利用しているライブラリの更新を行いました。
0.1.1¶
Released on 2025-05-15
What's Changed
パッケージ内で利用しているライブラリの更新を行いました。