公式:
https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/#normal-user
今回、myuserという名前で証明書及びユーザ名を作成するが
任意で変更すること!
手順:
1)秘密鍵の作成を行う。
openssl genrsa -out myuser.key 2048
2)署名ファイルの作成を行う。
①CN :ユーザー名
②O :グループ名
openssl req -new -key myuser.key -out myuser.csr -subj '/CN=mytest/O=group'
3)myuser.csrのコードを表示させる。
cat myuser.csr | base64 | tr -d "\n"
4)CertificateSigningRequestを作成して、デプロイを行う。
->以下の赤枠に” myuser.csr “のコードをペーストする。
5)kube apiに上記で作成したCSRを承認を行う。
6)発行された証明書をCertificateSigningRequestからエクスポートする
kubectl get csr myuser -o jsonpath='{.status.certificate}'| base64 -d > myuser.crt
<kubeconfigの追加>
1)上記で作成した資格情報をConfigMapに登録を行う。
kubectl config set-credentials myuser --client-key=myuser.key --client-certificate=myuser.crt --embed-certs=true
2)Contextの作成を行う。
kubectl config set-context myuser --cluster=kubernetes --user=myuser
■RBACの検証
1)RoleとRoleBindingの作成を行う
->podのみの設定を許可
2)nodeの確認を行うと、Pod以外の操作をNGにしているので想定どおり
以下の拒否のメッセージが出ている。
3)Podの作成を行うと、想定どおり作成できることが把握できる。
4)Roleはnamespaceでの実施について決めることができるので
上記では、namespaceをdefaultに指定しているので、それ以外のnamespaceでは実施NGになるか確認してみる。
①namespace: devのマニュフェストでデプロイを実施してみると。
②以下のような、操作拒否のメッセージが出ていることが把握できる。
0 件のコメント:
コメントを投稿