役割ベースのアクセス制御 (RBAC)

IBM® Cloud Private は複数の役割をサポートします。 役割は、実行できるアクションを決定します。

Kubernetes は、役割ベースのアクセス制御 (RBAC) 許可メカニズムを提供します。これは、IBM Cloud Private で拡張されています。 クラスター・プラットフォームのユーザーをチーム別にまとめて、チーム専用の名前空間を設定できます。

IBM Cloud Private を使用すれば、チームを作成し、そのチームにユーザー、ユーザー・グループ、およびリソースを追加できます。 チーム内のすべてのユーザーには、チームのリソースへのアクセス権限があります。 ユーザー、ユーザー・グループ、またはリソースは、複数のチームに割り当てることができます。

IBM Cloud Private には、クラスター全体へのアクセス権限を持つ 1 人のクラスター管理者 が設定されます。一方で他のユーザーはさまざまな名前空間に割り当てられた管理者エディターオペレーター監査員、およびビューアー として分類できます。 ユーザーまたはユーザー・グループに割り当てられている役割に基づき、クラスター上の各論理リソースへのアクセス・レベルが定義されます。

プラットフォームの役割と操作

IBM Cloud Private は、クラスター管理者役割をサポートします。 クラスター管理者は、IBM Cloud Private プラットフォームへの完全なアクセス権限が付与されています。 以下のリストで役割を説明します。

クラスター管理者アクセス権限: クラスター管理者は、すべての操作に対する完全なアクセス権限があります。

ポッドのセキュリティー・ポリシーの追加について詳しくは、ポッドのセキュリティー・ポリシーの作成を参照してください。

アカウント管理者アクセス権限: アカウント管理者は、管理者のすべての特権を持ち、名前空間に対する追加、更新、表示、および削除の権限があります。

管理者アクセス権限: 管理者には追加、更新、表示、削除の権限があります。

エディター・アクセス権限: エディターには、チーム・リソースに対する読み取り権限と編集権限があります。

オペレーター・アクセス権限: オペレーターには、チーム・リソースに対する作成権限、読み取り権限、および編集権限があります。

監査員アクセス権限: 監査員は、名前空間へのアクセス権限が付与されている場合にその名前空間内のログを表示できます。

ビューアー・アクセス権限: ビューアーには読み取り専用権限があります。 ユーザーはチームに追加されるときに、デフォルトではビューアー・アクセス権限が設定されます。

IAM 役割とアクション

ユーザーまたはユーザー・グループをチームに追加するときに、IAM 役割を割り当てることができます。 各ユーザーまたはユーザー・グループは、チーム内で 1 つの役割のみ持つことができます。 ただし、ユーザーを個別に追加し、かつチームのグループのメンバーとして追加する場合は、ユーザーはチーム内で複数の役割を持つ場合があります。 その場合は、ユーザーは、割り当てられた最高の役割に基づいて行動することができます。 例えば、ユーザーを管理者として追加して、そのユーザーのグループにビューアーの役割を割り当てると、ユーザーはチームの管理者の役割を果たすことができます。

ユーザーまたはユーザー・グループは、複数のチームのメンバーになることができ、各チームで異なる役割を持つことができます。

IAM 役割は、ユーザーがチーム・リソースで実行できるアクションを定義します。

IBM Cloud Private では、次の IAM 役割をサポートしています。

注: チーム、ユーザー、および役割を管理できるのは、クラスター管理者と管理者のみです。 管理者は、いかなるユーザーにもグループにもクラスター管理者役割を割り当てることはできません。

役割 説明 アクション
ビューアー 読み取り専用権限があります。 ビューアーは次のアクションを実行できます。
  • チーム・リソースに関する情報の表示
  • 計量データの表示

ビューアーは、以下の management console ページを表示できません。
  • ダッシュボード
  • 秘密
  • ノード (Nodes)
  • ID とアクセス
  • リソース・セキュリティー
エディター 読み取り権限と編集権限があります。 エディターは次のアクションを実行できます。
  • 計量データの表示

エディターは、以下の management console ページを表示できません。
  • ダッシュボード
  • ノード (Nodes)
  • ID とアクセス
  • リソース・セキュリティー
監査員 読み取り権限があります。 監査員は次のアクションを実行できます。
  • ログの表示
  • 計量データの表示

監査員は、以下の management console ページを表示できません。
  • ダッシュボード
  • ノード (Nodes)
  • ID とアクセス
  • リソース・セキュリティー
オペレーター
(チーム・オペレーターとも呼ばれる)
読み取り、編集、作成権限があります。 オペレーターは次のアクションを実行できます。
  • モニター・ダッシュボードおよびデータへのアクセス
  • 計量データの表示
  • モニタリング・サービス API へのアクセス

オペレーターは、以下の management console ページを表示できません。
  • ダッシュボード
  • ノード (Nodes)
  • ID とアクセス
  • ポッドのセキュリティー
: オペレーターは、イメージ・ポリシーを作成または削除できません。
管理者
(チーム管理者とも呼ばれる)
追加、更新、表示、削除権限があります。 以下のアクションを実行する場合、クラスター管理者によって LDAP ディレクトリー・チームに割り当てられている必要があります。
  • チームの作成
  • 他のチームへのリソースの割り当て
  • 注: 管理者は、クラスター管理者がそのチームに対して割り当てたリソースを割り当てることができます。
  • 自身のチームのユーザー、グループ、および役割の管理
  • 注: 管理者は、いかなるユーザーにもグループにもクラスター管理者役割を割り当てることはできません。
  • チームのリソースの読み取り、更新、および削除
  • モニター・ダッシュボードおよびデータへのアクセス
  • 計量データを表示する「計量」ページと「API キー」ページへのアクセス
  • モニタリング・サービス API へのアクセス

管理者は、以下の management console ページを表示できません。
  • ダッシュボード
  • ノード (Nodes)
  • ポッドのセキュリティー
: 管理者は、イメージ・ポリシーを表示、作成、または削除できます。
クラスター管理者 IBM Cloud Private プラットフォームへの完全なアクセス権限があります。 クラスター管理者役割とアクションを参照してください。

注: ビューアーおよびエディターは、いずれの IBM Cloud Private management console ページでもログを表示できません。

カタログおよび Helm リソースの RBAC

アクション 管理者 オペレーター エディター 監査員 ビューアー
内部 Helm リポジトリーの追加
内部および外部 Helm リポジトリーの同期
内部 Helm リポジトリーの削除
内部 Helm リポジトリーへの Helm チャートの追加 X
内部 Helm リポジトリーからの Helm チャートの削除 X
Helm チャートのデプロイ X *
Helm リリースのロールバック X X X
Helm リリースのアップグレード X X X
Helm リリースの削除 X

X - 操作はサポートされます

* - フックまたはジョブを使用してリソースを削除するチャートでは、Helm リリースのデプロイおよびアップグレードはサポートされていません。 詳しくは、チャートの README ファイルまたは資料を参照してください。

鍵管理サービス (KMS) リソースの RBAC

アクション 説明 管理者 エディター ビューアー
作成 鍵の生成とインポート X X
削除 鍵の削除 X
鍵の循環 鍵を循環 X
リスト すべての鍵をリスト X X
読み取り 鍵素材とメタデータの読み取り X X
ラップ CRK を使用して DEK を暗号化 X X X
アンラップ CRK を使用して DEK を復号 X X X

X - 操作はサポートされます

表 3 の各アクションの詳細な説明については、鍵管理サービス API を参照してください。

Kubernetes リソースの RBAC

ユーザーに割り当てる IAM 役割は、チームに割り当てられる Kubernetes リソースでユーザーが実行できるアクションの定義もします。 例えば、ユーザー 1 がチーム 1 のオペレーターで、チーム 1 に名前空間 1 のリソースがある場合、ユーザー 1 は名前空間 1 の情報を表示および更新することができます。 ユーザー 1 は名前空間 1 にポッドのようなリソースを作成することもできます。 チーム 1 からユーザー 1 を削除すると、チーム 1 のリソースにバインドされているユーザー 1 の役割が削除されます。 ユーザー 1 が同じ名前空間を持つ別のチーム (例えばチーム 2) の一部である場合、チーム 2 の名前空間にバインドされているユーザー 1 の役割は、ユーザー 1 をチーム 1 から削除しても影響を受けません。

アクション 管理者 オペレーター エディター ビューアー
get X X X X
list X X X X
watch X X X X
update X X X
patch X X X
create X
delete X
deletecollection X
リソース 管理者 オペレーター エディター ビューアー
clusterrolebindings.rbac.authorization.k8s.io X
clusterservicebrokers.servicecatalog.k8s.io (表示権限のみ) X X X X
clusterserviceclasses.servicecatalog.k8s.io (表示権限のみ) X X X X
clusterserviceplans.servicecatalog.k8s.io (表示権限のみ) X X X X
configmaps X X X X
cronjobs.batch X X X X
daemonsets.apps X X X X
daemonsets.extensions X X X X
deployments.apps X X X X
deployments.extensions X X X X
deployments.apps/rollback X X
deployments.extensions/rollback X X
deployments.apps/scale X X X
deployments.extensions/scale X X X X
endpoints X X X X
events X X X X
horizontalpodautoscalers.autoscaling X X X X
images.icp.ibm.com X X X X
imagepolicies X X
ingresses.extensions X X X X
jobs.batch X X X X
limitranges X X X X
localsubjectaccessreviews.authorization.k8s.io X
namespaces X X X X
namespaces/status X X X X
networkpolicies.extensions X X X X
networkpolicies.networking.k8s.io X X X X
persistentvolumeclaims X X X X
poddisruptionbudgets.policy X
pods X X X X
pods/attach X X X X
pods/exec X X X X
pods/log X X X X
pods/portforward X X X X
pods/proxy X X X
pods/status X X X
replicasets.apps X X X X
replicasets.extensions X X X X
replicasets.apps/scale X X X X
replicasets.extensions/scale X X X X
replicationcontrollers X X X X
replicationcontrollers/scale X X X X
replicationcontrollers.extensions/scale X X X X
replicationcontrollers/status X X X X
resourcequotas X X X X
resourcequotas/status X X X X
rolebindings.rbac.authorization.k8s.io X
roles.rbac.authorization.k8s.io X
scheduledjobs.batch X
secrets X X X
serviceaccounts X X X X
servicebindings.servicecatalog.k8s.io X X X X
servicebindings.servicecatalog.k8s.io/status X X X X
serviceinstances.servicecatalog.k8s.io X X X X
serviceinstances.servicecatalog.k8s.io/status X X X X
services X X X
services/proxy X X X X
statefulsets.apps X X X X

IAM リソースの RBAC

IAM リソース アクション 管理者 オペレーター エディター 監査員 ビューアー
ID 管理 API エクスプローラー X X X X X
証明書: /idmgmt/identity/api/v1/certificates
ユーザー証明書の作成 X X X X X
ユーザー証明書の読み取り X X X X X
ユーザー証明書の削除 X X X X X
アカウント: /idmgmt/identity/api/v1/account
IBM Cloud Private デフォルト・アカウントの読み取り X X X X X
IBM Cloud Private デフォルト・アカウントの作成 X
IBM Cloud Private デフォルト・アカウントの更新 X
IBM Cloud Private デフォルト・アカウントの削除 X
ディレクトリー: /idmgmt/identity/api/v1/directory/ldap
LDAP ディレクトリー詳細の読み取り X
ユーザー: /idmgmt/identity/api/v1/users
ユーザー詳細の作成 X
ユーザー詳細の読み取り X X X X X
ユーザー詳細の更新 X
ユーザー詳細の削除 X
ユーザー・グループ: /idmgmt/identity/api/v1/usergroup
ユーザー・グループ詳細の作成 X
ユーザー・グループ詳細の読み取り X X X X X
ユーザー・グループ詳細の更新 X
ユーザー・グループ詳細の削除 X
チーム: /idmgmt/identity/api/v1/teams
チーム詳細の作成 X
チーム詳細の読み取り X X X X X
チーム詳細の更新 X
チーム詳細の削除 X
リソース: /idmgmt/identity/api/v1/resources
リソース詳細の作成 X
リソース詳細の読み取り X
リソース詳細の更新 X
リソース詳細の削除 X
ユーザー設定: /idmgmt/identity/api/v1/userpreferences
ユーザー設定の作成 X X X X X
ユーザー設定の読み取り X X X X X
ユーザー設定の更新 X X X X X
Security Assertion Markup Language (SAML) の認証: /idmgmt/v1/saml
SAML 状況の取得 X
SAML 認証の更新または再構成 X
SAML 認証の作成または構成 X
サービス ID: /iam-token/serviceids
サービス ID の作成 X X X X X
サービス ID 詳細のリスト化 X X X X X
サービス ID の更新 X X X X X
サービス ID の削除 X X X X X
API 鍵: /iam-token/apikeys
API 鍵の作成 X X X X X
API 鍵をすべてリスト X X X X X
API 鍵の更新 X X X X X
API 鍵の削除 X X X X X
サービス・ポリシー: /v1/scopes/{scope}/service_ids/{serviceId}/policies
サービス・ポリシー詳細の作成 X X X X X
サービス・ポリシー詳細の読み取り X X X X X
サービス・ポリシー詳細の更新 X X X X X
サービス・ポリシー詳細の削除 X X X X X

注: ユーザーは、そのユーザーが持っているアクセス・レベルと同じレベルでサービス ID ポリシーを作成できます。 より高い権限の役割でポリシーを作成したり、ポリシーをサービス ID に割り当てたりすることはできません。

証明書マネージャー・リソースの RBAC

リソース アクション 管理者 オペレーター エディター ビューアー
証明書 作成 X X
証明書 読み取り/取得/リスト表示 X X
証明書 更新/編集 X X
証明書 削除 X
発行者 作成 X X
発行者 読み取り/取得/リスト表示 X X
発行者 更新/編集 X X
発行者 削除 X
ClusterIssuers 作成、読み取り/取得/リスト表示、更新、削除

詳しくは、IBM Cloud Private 証明書マネージャーの役割ベースのアクセス制御 (RBAC) のサポートを参照してください。

IBM Multicloud Manager の RBAC

ポリシー文書内のユーザーの役割をリストする role-template パラメーターを更新するには、IBM Multicloud Manager ポリシーの例を参照してください。

割り当てられた役割により、management console に表示できるページが決まります。 クラスター管理者には全アクセス権限があります。 以下の表は、特定のページを表示できる役割を定義しています。表示権限は X で示されます。

トピック・ページ 管理者 オペレーター エディター ビューアー
概説 X X X X
トポロジー X X
アプリケーション X X
検索 X X X X
クラスター (Clusters) X X
ポリシー
計量 X X X X
モニター X X
Helm リリース (Helm Releases) X X
イベント管理 X X
ローカル・クラスター
アドオン

IBM Multicloud Manager Kubernetes CustomResourceDefinition (CRD) の RBAC

クラスター管理者は、表示、変更、追加、および削除を実行できます。 詳細は、以下の CRD RBAC 表 を参照してください。ここで X は全アクセス権限を定義し、ブランクの表項目は disabled CRD であることを定義します。

CRD 管理者 オペレーター エディター ビューアー
cluster.clusterregistry.k8s.io X 表示、変更、追加 表示、変更 表示
applications.app.k8s.io X 表示、変更、追加 表示、変更
policies.policy.mcm.ibm.com
placementpolicies.mcm.ibm.com X 表示、変更、追加 表示、変更 表示
placementbindings.mcm.ibm.com X 表示、変更、追加 表示、変更 表示
deployables.app.ibm.com X X 表示、変更 表示
placementrules.app.ibm.com X X 表示、変更 表示
channels.app.ibm.com X X 表示、変更 表示
subscriptions.app.ibm.com X X 表示、変更 表示
mcm.ibm.com X 表示、変更、追加 表示、変更 表示