機械翻訳について

RBAC

目次

概要

このドキュメントでは、オペレータがHelmチャートを自動的にインストールするKubernetes Role-Based Access Control (RBAC)ロールについて説明します。

オペレータ・インストールの一般的な設計目標は、オペレータに必要な最小限の権限を自動的に提供し、Kubernetes組込みロールを使用することが意味のあるカスタム・ロールよりも組込みロールを優先することです。

オペレータのインストールHelmチャートでは、オペレータによって使用されるServiceAccountのRBAC ClusterRoles、ClusterRoleBindings、ロールおよびRoleBindingsが自動的に作成されます。 実行中のオペレータは、これらのロールがKubernetesクラスタに作成されていると想定し、起動時にこれらのロールが正しいことを自動的に検証しようとします。

オペレータ・インストールのHelmチャートでは、enableClusterRoleBinding Helmチャート構成設定がtrue (デフォルト)に設定されている場合、ClusterRolesおよびClusterRoleBindingsが作成され、設定がfalseに設定されている場合、チャートではロールおよびRoleBindingsが作成されます。

参照

詳細は、次を参照してください。

オペレータのRBAC定義

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

KubernetesロールおよびRoleBindingのネーミング規則

RoleおよびRoleBindingオブジェクトには、次のネーミング・パターンが使用されます:

  • weblogic-operator-<type>-<optional-role-name>

次を使用します:

  1. Kubernetesオブジェクトの種類としての<type>:
    • role
    • rolebinding
  2. ロールまたはRoleBindingに指定されたオプション名としての<optional-role-name>
    • たとえば: namespace

オペレータのために作成されたKubernetes RoleBindingの完全な名前は次のようになります:

weblogic-operator-rolebinding-namespace

Kubernetes ClusterRoleおよびClusterRoleBindingのネーミング規則

ClusterRoleおよびClusterRoleBindingオブジェクトには、次のネーミング・パターンが使用されます:

  • <operator-ns>-weblogic-operator-<type>-<role-name>

次を使用します:

  1. オペレータがインストールされているネームスペースとしての<operator-ns>
    • たとえば: weblogic-operator-ns
  2. Kubernetesオブジェクトの種類としての<type>:
    • clusterrole
    • clusterrolebinding
  3. ロールまたはRoleBindingに指定された名前としての<role-name>
    • たとえば: general

オペレータのために作成されたKubernetes ClusterRoleBindingの完全な名前は次のようになります:

weblogic-operator-ns-weblogic-operator-clusterrolebinding-general

RoleBindings

オペレータが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

ClusterRoleBindings

オペレータが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

  1. バインディングは、オペレータServiceAccountに割り当てられます。↩︎ ↩︎

  2. バインディングは、オペレータが管理するように構成されている各ネームスペースのオペレータのServiceAccountに割り当てられます。 「ネームスペース管理」 ↩︎を参照

  3. バインディングはオペレータのServiceAccountに割り当てられます。 さらに、オペレータ・インストールが実際に設定するKubernetes RBACリソースは、オペレータが専用モードであるかどうかに基づいて調整されます。 デフォルトでは、オペレータは専用モードで実行されず、これらのセキュリティ・リソースはClusterRoleおよびClusterRoleBindingsとして作成されます。 オペレータが専用モードで実行されている場合、これらのリソースは、オペレータのネームスペースにRolesおよびRoleBindingsとして作成されます。 domainNamespaceSelectionStrategy設定については、Dedicatedオプションを参照してください。↩︎