このドキュメントでは、オペレータがHelmチャートを自動的にインストールするKubernetes Role-Based Access Control (RBAC)ロールについて説明します。
オペレータ・インストールの一般的な設計目標は、オペレータに必要な最小限の権限を自動的に提供し、Kubernetes組込みロールを使用することが意味のあるカスタム・ロールよりも組込みロールを優先することです。
オペレータのインストールHelmチャートでは、オペレータによって使用されるServiceAccount
のRBAC ClusterRoles、ClusterRoleBindings、ロールおよびRoleBindingsが自動的に作成されます。 実行中のオペレータは、これらのロールがKubernetesクラスタに作成されていると想定し、起動時にこれらのロールが正しいことを自動的に検証しようとします。
オペレータ・インストールのHelmチャートでは、enableClusterRoleBinding Helmチャート構成設定がtrue
(デフォルト)に設定されている場合、ClusterRolesおよびClusterRoleBindingsが作成され、設定がfalse
に設定されている場合、チャートではロールおよびRoleBindingsが作成されます。
参照
詳細は、次を参照してください。
enableClusterRoleBinding
オペレータのHelmチャート設定。「セキュリティ方針の選択」を参照してください。ServiceAccount
は、「サービス・アカウント」を参照してください。Helmリリース名weblogic-operator
を使用してオペレータがインストールされたオペレータで使用されるKubernetesロールおよび関連するバインディングを表示するには、Helm status
コマンドを使用するときに、KubernetesオブジェクトRole
, RoleBinding
, ClusterRole
およびClusterRoleBinding
を検索します:
$ helm status weblogic-operator
オペレータがdomain1-ns
のターゲット・ネームスペースを持つネームスペースweblogic-operator-ns
にインストールされている場合、次のコマンドを使用してKubernetesロールおよび関連RoleBindingsの「サブセット」を表示できます:
$ kubectl describe clusterrole \
weblogic-operator-ns-weblogic-operator-clusterrole-general
$ kubectl describe clusterrolebinding \
weblogic-operator-ns-weblogic-operator-clusterrolebinding-general
$ kubectl -n weblogic-operator-ns \
describe role weblogic-operator-role
$ kubectl -n domain1-ns \
describe rolebinding weblogic-operator-rolebinding-namespace
Role
およびRoleBinding
オブジェクトには、次のネーミング・パターンが使用されます:
<type>
-<optional-role-name>
次を使用します:
<type>
:
<optional-role-name>
namespace
オペレータのために作成されたKubernetes RoleBinding
の完全な名前は次のようになります:
weblogic-operator-rolebinding-namespace
ClusterRole
およびClusterRoleBinding
オブジェクトには、次のネーミング・パターンが使用されます:
<operator-ns>
-weblogic-operator-<type>
-<role-name>
次を使用します:
<operator-ns>
weblogic-operator-ns
<type>
:
<role-name>
general
オペレータのために作成されたKubernetes ClusterRoleBinding
の完全な名前は次のようになります:
weblogic-operator-ns-weblogic-operator-clusterrolebinding-general
オペレータがKubernetes Namespace weblogic-operator-ns
にインストールされ、オペレータのターゲット・ネームスペースがdomain1-ns
である場合、次のRoleBinding
エントリは、オペレータに権限を付与するRole
またはClusterRole
にマップされます。
RoleBinding | ロールにマップ済 | リソース・アクセス | ノート |
---|---|---|---|
weblogic-operator-rolebinding |
weblogic-operator-role |
Edit: secrets, configmaps, events | RoleBindingは、weblogic-operator-ns 1というネームスペースに作成されます |
weblogic-operator-rolebinding-namespace |
オペレータ・クラスタ・ロールのnamespace |
Read: secrets, pods/log, pods/exec | RoleBindingは、domain1-ns 2というネームスペースに作成されます |
編集: configmaps, events, pods, services, jobs.batch, poddisruptionbudgets.policy | |||
Create: pods/exec |
オペレータがKubernetes Namespace weblogic-operator-ns
にインストールされている場合、次のClusterRoleBinding
エントリは、オペレータに権限を付与するClusterRole
にマップされます。
ノート: 次の表のオペレータ名は、クラスタ名セクションの<role-name>
を表します。
ClusterRoleBinding | クラスタ・ロールにマップ済 | リソース・アクセス | ノート |
---|---|---|---|
Operator general |
Operator general |
Read: namespaces | 3 |
Edit: customresourcedefinitions | |||
Update: domains (weblogic.oracle), domains/status | |||
Create: tokenreviews, selfsubjectrulesreviews | |||
Operator nonresource |
Operator nonresource |
Get: /version/* | 1 |
バインディングは、オペレータが管理するように構成されている各ネームスペースのオペレータのServiceAccount
に割り当てられます。 「ネームスペース管理」 ↩︎を参照
バインディングはオペレータのServiceAccount
に割り当てられます。 さらに、オペレータ・インストールが実際に設定するKubernetes RBACリソースは、オペレータが専用モードであるかどうかに基づいて調整されます。 デフォルトでは、オペレータは専用モードで実行されず、これらのセキュリティ・リソースはClusterRole
およびClusterRoleBindings
として作成されます。 オペレータが専用モードで実行されている場合、これらのリソースは、オペレータのネームスペースにRoles
およびRoleBindings
として作成されます。 domainNamespaceSelectionStrategy設定については、Dedicated
オプションを参照してください。↩︎