2016-07-22 1 views
3

ユーザーのコードを実行するコンテナがあります。セキュリティを強化するために、サービスアカウントメカニズムを使ってkubernetes apiにアクセスできないようにしたいが、それをグローバルにオフにしたくない。ドキュメントでは、サービスアカウント名を別の有効な名前に切り替えることができると記載されています。私が逃した選択肢はありますか?アカウントにアクセス権が0に制限できますか?あなたは空ではない別のボリュームでボリュームを上書きできますか?他のアイデア?コンテナを無効にするサービスアカウント

答えて

3

最も簡単なハックは、serviceAccountシークレットがマウントされている場所にemptyDirをマウントすることです。何かのように:

containers: 
- name: running-user-code 
    image: something-i-dont-trust 
    volumeMounts: 
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount 
    name: no-api-access-please 
    readOnly: true 
volumes: 
- name: no-api-access-please 
    emptyDir: {} 

潜在的な解決策にKubernetes Issue #16779でより多くの議論がある(と私はからemptyDir例を盗んだところです)。

2

サービスアカウントはAPIに対してのみ認証されますが、本来読み取りまたは書き込みAPIアクションを実行する権限はありません。

あなたが(任意の認証済みのAPIのユーザーの完全な読み取り/書き込みアクセスを提供します)AlwaysAllow以外の認証モードで実行してクラスタを、確保したい、と選択的に特定のサービスアカウントまたは名前空間

Kubernetesで
関連する問題