セキュリティ
1.Kubernetesセキュリティフレームワーク トランスポート・セキュリティ、認証、承認、アクセス制御2. 3. RBACの承認
Kubernetesセキュリティフレームワーク
•アクセスK8Sクラスタリソースが3つのハードルを渡す必要があります:認証、許可、アクセス制御 、一般ユーザへ•クラスタAPIサーバーへのセキュアなアクセスは、多くの場合、証明書、トークンまたはユーザ名+パスワードを必要とするポッドへのアクセス、あなたがServiceAccount必要 •K8Sセキュリティ制御をフレームワークは、主に以下の三つの段階によって制御され、各ステージのサポートプラグインはAPIサーバーの構成を介してプラグインを有効にします。 1.Authentication 2.Authorization 3.Admissionコントロール #1 CAT /opt/kubernetes/cfg/token.csv 0fb61c46f8991b718eb38d27b605b008、kubelet・ブートストラップ、10001、 "システム:kubelet-ブートストラップ" 注:あまりないユーザ名+パスワード、一般的に選択します証明書、トークン
伝送セキュリティ、認証
交通安全:さらば8080、歓迎6443(KUBE-apiserver) 認証 クライアント認証の3種類: •HTTPS証明書:証明書ベースのCA署名付きデジタル証明書認証 •HTTPトークン認証:トークンは、ユーザによって識別されます •HTTPベースの認証:ユーザ名+パスワード認証方法
オーソライズ
RBAC(ロールベースのアクセス制御、ロールベースのアクセス制御):承認(認証)の作業を完了するための責任を負います。
アドミッション制御
AdminssionControlコントローラプラグは、実際にアクセスのリストで、要求がAPIServerに送信され、各コントローラは、ウィジェットのリストにアクセスする必要がありますチェックし、チェックが要求が拒否され、合格していません。 上記の推奨プラグインの1.11バージョン: -有効-入場-プラグイン= \ NamespaceLifecycle、LimitRanger、ServiceAccount、DefaultStorageClass、DefaultTolerationSeconds、ResourceQuota
RBAC承認を使用
RBAC(役割ベースのアクセス制御、役割ベースのアクセス制御)、Kubernetes APIは、動的割り当て方式を可能にします
•役割 •役割:名前空間には、特定のアクセス権承認する すべての認可アクセスの名前空間:•ClusterRole •ロールバインディング 体(すなわち、件名)に役割バインド:•RoleBindingを •ClusterRoleBinding:クラスタの役割は、本体にバインドされている •件名(サブジェクト) •ユーザー:ユーザー •グループ:ユーザーグループの サービスアカウント:•ServiceAccount https://kubernetes.io/docs/reference/access-authn-authz/rbac/
ネット公式例:ポッドへの読み取りアクセスを許可します
種類:ロール apiVersion:rbac.authorization.k8s.io/v1の メタデータ: 名前空間:デフォルト 名:ポッドリーダーの ルール: - apiGroups:[ ""]# "は"コアAPIのグループを示している リソース:[ "ポッド"] 動詞: [、「時計」、「リスト」を「取得」] #この役割は、結合は、「ジェーン」は「デフォルト」の名前空間にポッドを読み取ることができます。 種類:RoleBinding apiVersion:rbac.authorization.k8s.io/v1 メタデータ: 名前:読み取りポッドの 名前空間:デフォルト 科目: -種類:ユーザー 名は:ジェーン#名は大文字である敏感 apiGroup:rbac.authorization.k8s.io roleRef: 種類: 名前:ポッドリーダーの#これはあなたがにバインドしたい役割やClusterRoleの名前と一致しなければなりません apiGroup:rbac.authorization.k8s.ioを