【コンテンツ作成】Securityの作成
Closed this issue · 4 comments
n-guitar commented
Securityの作成
n-guitar commented
結構多いな。
2回に分けるか?
- RBAC
- Role/RoleBinding
- ClusterRole/ClusterRoleBinding
- ServiceAccount
- Secret
- ConfigMap
- LimitRange
- NetworkPolicy
- Security Context
- TLS(復習)
n-guitar commented
kubeconfig
本当はクラスターを複数用意したいが、一度namespaceを作成するか
- clusters
- contexts
- users
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://127.0.0.1:6443
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
echo 'xxxxxx' |base64 -D
$ kubectl config current-context #現在のコンテキスト
$ kubectl config get-contexts #コンテキストの一覧
$ kubectl config use-context <context> #コンテキストの切り替え
この前にロールで制限したものを作成しておきたい
n-guitar commented
Role
そもそも認証・認可とは
https://dev.classmethod.jp/articles/authentication-and-authorization/
k8sの認可する操作リクエスト
https://v1-22.docs.kubernetes.io/docs/reference/access-authn-authz/authorization/
権限の対象
kubectl api-resources --namespaced=true
kubectl api-resources --namespaced=false
RBAC
Kubernetes API には、次の方法でアクセスする
- ユーザー・グループ
- サービス アカウント
ユーザというのがややこしい。
Kind: UserやGroupで指定するがk8sが管理しないResourcesとのこと
初期手順
- yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
- コマンド
kubectl create role pod-reader --verb=get,list,watch --resource=pods -n default --dry-run=client -o yaml
- 結果
kubectl get roles
NAME CREATED AT
pod-reader 2022-08-22T06:47:49Z
kubectl describe roles
Name: pod-reader
Labels: <none>
Annotations: <none>
PolicyRule:
Resources Non-Resource URLs Resource Names Verbs
--------- ----------------- -------------- -----
pods [] [] [get list watch]
- role
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: bootcamp-user
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role #this must be Role or ClusterRole
name: pod-reader
apiGroup: rbac.authorization.k8s.io
- コマンド
kubectl create rolebinding read-pods --role=pod-reader --user=bootcamp-user -n default --dry-run=client -o yaml
- 確認
kubectl get rolebindings
NAME ROLE AGE
read-pods Role/pod-reader 11s
kubectl describe rolebindings
Name: read-pods
Labels: <none>
Annotations: <none>
Role:
Kind: Role
Name: pod-reader
Subjects:
Kind Name Namespace
---- ---- ---------
User bootcamp-user
n-guitar commented
cap9として作成