第1章 セキュリティー
Red Hat Advanced Cluster Management for Kubernetes コンポーネントのセキュリティーおよびロールベースのアクセス制御 (RBAC) を管理します。定義したポリシーおよびプロセスでクラスターを統制し、リスクを特定して最小限に抑えます。ポリシーを使用してルールの定義、制御の設定を行います。
前提条件: Identity and Access Management (IAM) を識別するオンボードワークロードに合わせて Red Hat Advanced Cluster Management for Kubernetes の認証サービス要件を設定する必要があります。詳細は、OpenShift Container Platform ドキュメント の「認証について」を参照してください。
クラスターのセキュリティー保護に関する詳細は、以下のトピックを参照してください。
1.1. ロールベースのアクセス制御
Red Hat Advanced Cluster Management for Kubernetes は、ロールベースのアクセス制御 (RBAC) をサポートします。ロールによって実行できるアクションが決まります。RBAC は、Red Hat OpenShift Container Platform と同様に Kubernetes の承認メカニズムに基づいています。RBAC の詳細は、OpenShift Container Platform ドキュメント の「RBACの概要」を参照してください。
注記: ユーザーロールのアクセス権がない場合には、コンソールのアクションボタンが無効になります。
コンポーネントでサポートされる RBAC の詳細については、以下のセクションを参照してください。
1.1.1. ロールの概要
クラスター別の製品リソースと、namespace がスコープの製品リソースがあります。アクセス制御に一貫性を持たせるため、クラスターのロールバインディングと、namespace のロールパインディングをユーザーに適用する必要があります。Red Hat Advanced Cluster Management for Kubernetes でサポートされている以下のロール定義の表を参照してください。
表1.1 ロール定義の表
| ロール | 定義 |
|---|---|
| cluster-admin |
|
| open-cluster-management:cluster-manager-admin |
|
| open-cluster-management:managed-cluster-x (admin) |
|
| open-cluster-management:managed-cluster-x (viewer) |
|
| open-cluster-management:subscription-admin |
|
| admin、edit、view |
admin、edit、および view は OpenShift Container Platform のデフォルトロールです。これらのロールに対して namespace に限定されたバインディングが指定されているユーザーは、特定の namespace 内の |
重要:
- ユーザーは OpenShift Container Platform からプロジェクトを作成できます。これにより、namespace の管理者ロールパーミッションが付与されます。
-
ユーザーにクラスターへのロールアクセスがない場合には、クラスター名は表示されません。クラスター名は、
-の記号で表示されます。
1.1.2. RBAC 実装
RBAC はコンソールレベルと API レベルで検証されます。コンソール内のアクションは、ユーザーのアクセスロールのパーミッションに基づいて有効化/無効化できます。製品の特定ライフサイクルの RBAC の詳細は、以下のセクションを参照してください。
1.1.2.1. クラスターライフサイクル RBAC
以下のクラスターライフサイクル RBAC 操作を確認してください。
全マネージドクラスターを作成して管理する方法:
以下のコマンドを入力して、クラスターロール
open-cluster-management:cluster-manager-adminにバインドするクラスターロールを作成します。oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin
このロールはスーパーユーザーであるため、すべてのリソースとアクションにアクセスできます。このロールを使用すると、クラスターレベルの
managedclusterリソース、マネージドクラスターを管理するリソースの namespace、namespace 内のリソースを作成できます。このロールで、プロバイダー接続、マネージドクラスター作成に使用するベアメタルアセットにアクセスできます。
cluster-name という名前のマネージドクラスターを管理する方法:
以下のコマンドを入力して、クラスターロール
open-cluster-management:admin:<cluster-name>にバインドするクラスターロールを作成します。oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name>
このロールを使用すると、クラスターレベルの
managedclusterリソースに読み取り/書き込みアクセスができるようになります。managedclusterはクラスターレベルのリソースで、namespace レベルのリソースではないので、このロールが必要です。以下のコマンドを入力して、クラスターロール
adminにバインドする namespace ロールを作成します。oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=admin
このロールにより、マネージドクラスターの namespace 内のリソースへの読み取りおよび書き込みアクセスが可能になります。
cluster-name という名前のマネージドクラスターを表示する方法:
以下のコマンドを入力して、クラスターロール
open-cluster-management:view:<cluster-name>にバインドするクラスターロールを作成します。oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name>
このロールを使用すると、クラスターレベルの
managedclusterリソースに読み取りアクセスができるようになります。managedclusterはクラスターレベルのリソースで、namespace レベルのリソースではないので、このロールが必要です。以下のコマンドを入力して、クラスターロール
viewにバインドする namespace ロールを作成します。oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=view
このロールでは、マネージドクラスターの namespace 内にあるリソースに対して読み取り専用アクセスができるようになります。
ManagedClusterSet リソースの管理に 関する詳細は、「 ManagedClusterSet リソースの管理」を参照してください。
クラスターライフサイクルの以下のコンソールおよび API RBAC の表を表示します。
表1.2 クラスターライフサイクルのコンソール RBAC の表
| アクション | 管理 | 編集 | 表示 |
|---|---|---|---|
| Clusters (クラスター) | read, update, delete | read, update | 読み取り |
| プロバイダー接続 | create, read, update, delete | create, read, update, delete | read |
| ベアメタルアセット | create, read, update, delete | read, update | read |
表1.3 クラスターライフサイクルの API RBAC の表
| API | 管理 | 編集 | 表示 |
|---|---|---|---|
| manageclusters.cluster.open-cluster-management.io | create, read, update, delete | read, update | read |
| baremetalassets.inventory.open-cluster-management.io | create, read, update, delete | read, update | read |
| klusterletaddonconfigs.agent.open-cluster-management.io | create, read, update, delete | read, update | read |
| managedclusteractions.action.open-cluster-management.io | create, read, update, delete | read, update | read |
| managedclusterviews.view.open-cluster-management.io | create, read, update, delete | read, update | read |
| managedclusterinfos.internal.open-cluster-management.io | create, read, update, delete | read, update | read |
| manifestworks.work.open-cluster-management.io | create, read, update, delete | read, update | 読み取り |
1.1.2.2. アプリケーションライフサイクル RBAC
アプリケーションの作成時に、サブスクリプション namespace が作成され、設定マップが サブスクリプション namespace に作成されます。サブスクリプションを適用する場合は、サブスクリプションの管理者である必要があります。アプリケーションの管理の詳細は、「サブスクリプションの作成および管理」を参照してください。
アプリケーションライフサイクルタスクを実行するには、admin ロールを持つユーザーが、アプリケーションが作成される namespace および managedcluster namespace にアクセスできる必要があります。たとえば、namespace "N" 内でアプリケーションを作成するのに必要なアクセス権限は、 namespace "N" の admin ロールに対する namespace スコープのバインディングです。
アプリケーションライフサイクルの以下のコンソールおよび API RBAC の表を表示します。
表1.4 アプリケーションライフサイクルのコンソール RBAC の表
| アクション | 管理 | 編集 | 表示 |
|---|---|---|---|
| アプリケーション | create, read, update, delete | create, read, update, delete | read |
| チャネル | create, read, update, delete | create, read, update, delete | read |
| サブスクリプション | create, read, update, delete | create, read, update, delete | read |
| 配置ルール | create, read, update, delete | create, read, update, delete | read |
表1.5 アプリケーションライフサイクルの API RBAC の表
| API | 管理 | 編集 | 表示 |
|---|---|---|---|
| applications.app.k8s.io | create, read, update, delete | create, read, update, delete | read |
| channels.apps.open-cluster-management.io | create, read, update, delete | create, read, update, delete | read |
| deployables.apps.open-cluster-management.io | create, read, update, delete | create, read, update, delete | read |
| helmreleases.apps.open-cluster-management.io | create, read, update, delete | create, read, update, delete | read |
| placementrules.apps.open-cluster-management.io | create, read, update, delete | create, read, update, delete | read |
| subscriptions.apps.open-cluster-management.io | create, read, update, delete | create, read, update, delete | read |
| configmaps | create, read, update, delete | create, read, update, delete | read |
| secrets | create, read, update, delete | create, read, update, delete | read |
| namespace | create, read, update, delete | create, read, update, delete | read |
1.1.2.3. ガバナンスライフサイクル RBAC
ユーザーは、ガバナンスライフサイクル操作を実行するには、ポリシーが作成される namespace および、ポリシーが適用される managedcluster namespace へのアクセス権が必要です。
以下の例を参照してください。
namespace "N" でポリシーを表示するには、以下のロールが必要です。
-
namespace "N" の
viewロールに対する namespace 限定のバインディング。
-
namespace "N" の
namespace "N" でポリシーを作成し、これを
managedcluster"X" に適用するには、以下のロールが必要です。-
namespace "N" の
adminロールに対する namespace 限定のバインディング。 -
namespace "X" の
adminロールに対する namespace 限定のバインディング。
-
namespace "N" の
ガバナンスライフサイクルの以下のコンソールおよび API RBAC の表を表示します。
表1.6 ガバナンスライフサイクルのコンソール RBAC の表
| アクション | 管理 | 編集 | 表示 |
|---|---|---|---|
| ポリシー | create, read, update, delete | read, update | read |
| PlacementBindings | create, read, update, delete | read, update | read |
| PlacementRules | create, read, update, delete | read, update | read |
表1.7 ガバナンスライフサイクルの API RBAC の表
| API | 管理 | 編集 | 表示 |
|---|---|---|---|
| policies.policy.open-cluster-management.io | create, read, update, delete | read, update | read |
| placementbindings.policy.open-cluster-management.io | create, read, update, delete | read, update | read |
1.1.2.4. 可観測性の RBAC
可観測性機能を使用するには、cluster-admin または open-cluster-management:cluster-manager-admin ロールを割り当てる必要があります。以下の可観測性機能のリストを参照してください。
- マネージドクラスターのメトリクスへのアクセス
- リソースの検索
- Visual Web ターミナルの使用 (マネージドクラスターにアクセスできる場合)
MultiClusterObservability カスタムリソースの作成、更新、削除には、以下を実行します。以下の RBAC の表を確認してください。
表1.8 可観測性の API RBAC の表
| API | 管理 | 編集 | 表示 |
| multiclusterobservabilities.observability.open-cluster-management.io | 作成、読み取り、更新、および削除 | - | - |
クラスターのセキュリティー保護に関する詳細の確認を続行するには、「セキュリティー」を参照してください。