2017-02-20 7 views
1

これに対処しようとした人が少し見つかりました。herehereですが、私にとっては解決しません。Kubernetes ABACモードが動作しない

問題: ABACポリシーを使用して、クラスタ用の読み取り専用ユーザーを作成したいとします。 私のクラスタには、AWSでホストされている3つのマスターと3つのワーカー、バージョン1.4.7があります。

  • を - : - (..もちろんのファイルの一番下に、私は、関連するパスなどを搭載し追加これらの3行が)

    私はので、すべての3つのマスターにように私のマニフェスト/ apiserver.ymlを編集しましたトークンAUTH-ファイル=の/ etc/kubernetes /ポリシー/ユーザtokens.csv

  • --authorizationモード= ABAC
  • --authorizationポリシーファイル=の/ etc/kubernetes /ポリシー/ apiusers.yml

私のapiuser.ymlは次のようになります。

{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"group": "system:authenticated", "readonly": true, "nonResourcePath": "*", "namespace": "*", "resource": "*", "apiGroup": "*"}} 

マイユーザー-token.csvは次のようになります。

tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH,bob,bob 

マイkubeconfigファイルはそれでこれを持っている:

users: 
- name: bob 
    user: 
    token: tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH 

私はそれが失敗だkubectl get nodesを試してみてください、私は印刷することができます出力が--v = 8の場合、関連性がありますが基本的にはForbidden(403)と表示されます。 私はここに何か根本的な欠けているように見えます。ポリシーは正当なものであり、すべてのユーザーとすべてのユーザーをブロックしていますが、認証されたユーザーは読み取り専用のアクセス権を許可する必要があります。

どのようなヘルプや提案があれば幸いです。

答えて

1

system:authenticatedグループは1.5

前1.5で追加されました、私はちょうどそれは私が行方不明になったものです。..素晴らしいあなたの他の記事を読んでいた"user":"*"

+0

ああヨルダンを使用することができます。私はあなたに投票するのに十分なクレジットがありませんが、それはまさに私の正確な状況のための正しい解決策です。 –

+0

もう1つ質問がありますが、別のユーザーを管理者にしたい場合は "spec":{"user": "core-admin"、 "nonResourcePath": "*"、 "namespace": "*" "resource": "*"、 "apiGroup": "*"}}?私のkubeconfigでは、同じクラスタの別のコンテキストを設定します(ユーザ名などを追加します)?それとももっと良い方法がありますか? –

+0

私は自分自身に答えました。私が上に書いたものは正しいです。ポリシーオブジェクトの外観が重要です。つまり、管理者は最初の行にする必要があります。 –

関連する問題