type
status
date
slug
summary
tags
category
icon
password
书籍

セキュリティポリシーの管理

目標

このセクションを終了した後、学生はコマンドラインインターフェースを使用してセキュリティポリシーを管理できるようになります。

Red Hat OpenShift Container Platformの認証

Red Hat OpenShift Container Platformでは、ユーザーが実行できる操作は2つの主要なグループに分類されます:
  1. プロジェクト関連の操作(ローカルポリシーとも呼ばれます)
  1. 管理関連の操作(クラスターポリシーとも呼ばれます)
両方のポリシーに対して実行可能な操作の数が多いため、いくつかの操作はグループ化され、役割として定義されています。

デフォルトの役割(ロール)の説明

役割(Role)
説明
cluster-admin
この役割のユーザーはOpenShiftクラスタの管理ができます。
cluster-status
この役割のユーザーはクラスタに関する情報を読み取り専用でアクセスできます。

クラスターロールのユーザーへの追加

ユーザーにクラスターロールを追加するには、add-cluster-role-to-user サブコマンドを使用します:
例えば、通常のユーザーをクラスタ管理者に変更するには、以下のコマンドを使用します:
クラスターロールをユーザーから削除するには、remove-cluster-role-from-user サブコマンドを使用します:
例えば、クラスタ管理者を通常のユーザーに変更するには、以下のコマンドを使用します:
OpenShiftは一連のルールをロールとして整理します。ルールは動詞とリソースで定義されます。例えば、create user はOpenShiftのルールの1つで、cluster-admin というロールに含まれています。
oc adm policy who-can コマンドを使用して、特定のロールを実行できるユーザーやロールを特定できます。例えば:

ローカルポリシーの管理

ローカルポリシーを管理するために、以下の役割が提供されています:
役割(Role)
説明
edit
この役割のユーザーは、サービスやデプロイメント設定などのプロジェクト内の一般的なアプリケーションリソースを作成、変更、削除できます。ただし、制限範囲やクォータ、プロジェクトへのアクセス権限の管理はできません。
basic-user
この役割のユーザーは、プロジェクトへの読み取りアクセス権限を持ちます。
selfprovisioner
この役割のユーザーは、新しいプロジェクトを作成できます。これはクラスターロールであり、プロジェクトロールではありません。
admin
この役割のユーザーは、プロジェクト内のすべてのリソースを管理できます。これには、プロジェクトに他のユーザーへのアクセスを付与することも含まれます。
admin ロールは、ユーザーにプロジェクトリソース(クォータや制限範囲など)へのアクセスを提供し、さらに新しいアプリケーションを作成する能力を与えます。一方、edit ロールは、プロジェクト内で開発者として機能するのに十分なアクセス権限を提供しますが、プロジェクト管理者が設定した制約内で作業することになります。
指定されたユーザーをプロジェクト内のロールに追加するには、add-role-to-user サブコマンドを使用します:
例えば、wordpress プロジェクト内で dev ユーザーを basic-user ロールに追加するには、以下のコマンドを使用します:

ユーザータイプ

OpenShift Container Platformとのインタラクションは、ユーザーと関連付けられています。OpenShift Container Platformのユーザーオブジェクトは、システムでロールを追加することによって、そのユーザーまたはユーザーグループに権限を付与できるユーザーを表します。
  • 通常のユーザー: これはほとんどのインタラクティブなOpenShift Container Platformのユーザーを表します。通常のユーザーはUserオブジェクトで表されます。例えば、user1user2が該当します。
  • システムユーザー: これらのユーザーの多くは、インフラストラクチャが定義される際に自動的に作成され、主にインフラストラクチャがAPIと安全にやり取りできるようにするために使用されます。システムユーザーには、クラスタ管理者(すべてにアクセスできるユーザー)、各ノードのユーザー、ルーターやレジストリのためのユーザー、その他さまざまなユーザーが含まれます。また、認証されていないリクエストにデフォルトで使用される匿名のシステムユーザーも存在します。システムユーザーの例には、system:adminsystem:openshift-registrysystem:node:node1.example.comなどがあります。
  • サービスアカウント: これらはプロジェクトに関連付けられた特別なシステムユーザーです。プロジェクトが最初に作成されるときに自動的に作成されることもありますし、プロジェクト管理者がプロジェクト内のコンテンツへのアクセスを定義するために追加で作成することもあります。サービスアカウントはServiceAccountオブジェクトで表されます。サービスアカウントユーザーの例には、system:serviceaccount:default:deployersystem:serviceaccount:foo:builderなどがあります。
すべてのユーザーは、OpenShift Container Platformにアクセスする前に認証を行う必要があります。認証なしまたは無効な認証を持つAPIリクエストは、匿名のシステムユーザーとして認証されます。認証が成功した後、ポリシーに基づいてユーザーが実行できる操作が決まります。

セキュリティコンテキスト制約(SCC)

OpenShiftには、リソースへのアクセスを制限するセキュリティメカニズムであるセキュリティコンテキスト制約(SCC)がありますが、これはOpenShift内での操作には制限を加えません。
SCCは、OpenShift内の実行中のポッドがホスト環境にアクセスする方法を制限します。具体的には以下を制御します:
  • 特権コンテナの実行
  • コンテナに追加機能を要求すること
  • ホストディレクトリをボリュームとして使用すること
  • コンテナのSELinuxコンテキストを変更すること
  • ユーザーIDの変更
コミュニティによって開発された一部のコンテナは、デフォルトで禁止されているリソース(例えばファイルシステムやソケット、SELinuxコンテキストへのアクセス)にアクセスする必要があるため、セキュリティコンテキスト制約を緩和する必要がある場合があります。
OpenShiftによって定義されたセキュリティコンテキスト制約(SCC)は、クラスタ管理者として以下のコマンドで一覧表示できます:
OpenShiftには7つのSCCが存在します:
  • anyuid
  • hostaccess
  • hostmount-anyuid
  • nonroot
  • privileged
  • restricted
SCCに関する追加情報を得るには、describeコマンドを使用します:
例:
OpenShiftで作成されたすべてのコンテナは、restrictedというSCCを使用し、これによりOpenShift外部のリソースへのアクセスが制限されます。
anyuidセキュリティコンテキストの場合、run as user戦略はRunAsAnyとして定義されています。これにより、ポッドはコンテナ内で利用可能な任意のユーザーIDとして実行できます。これにより、特定のユーザーIDでコマンドを実行する必要があるコンテナが許可されます。
コンテナを異なるSCCで実行するように変更するには、サービスアカウントを作成してポッドにバインドする必要があります。サービスアカウントを作成するには、以下のコマンドを使用します:
サービスアカウントとSCCを関連付けるには、次のコマンドを使用します:
セキュリティ要件を満たすポッドを作成できるアカウントを識別するには、scc-subject-reviewサブコマンドを使用します。これにより、コンテナの制限を克服するために使用できるすべてのセキュリティ制約コンテキストが返されます:

OpenShiftとSELinux

OpenShiftでは、各ホストでSELinuxを有効にする必要があります。これにより、必須アクセス制御(Mandatory Access Control)を使用してリソースへの安全なアクセスが提供されます。同様に、OpenShiftが管理するDockerコンテナは、互換性の問題を避けるためにSELinuxコンテキストを管理する必要があります。コンテナがSELinuxサポートなしで実行されるリスクを最小限に抑えるため、SELinuxコンテキスト戦略を作成することができます。

SELinuxコンテキストの更新

SELinuxコンテキストを更新するためには、既存のSCCを出発点として新しいSCCを作成できます。次のコマンドを使用して、restrictedというSCCをエクスポートします:
次に、YAMLファイルを編集してSCCの名前とSELinuxコンテキストを変更します。具体的な変更内容は以下の通りです:
  • SCC名SELinuxコンテキストタイプを変更します。seLinuxContexttypeMustRunAsからRunAsAnyに変更して、SELinuxを無効にします。
新しいSCCを作成するには、次のコマンドを実行します:

特権コンテナ

一部のコンテナはホストの実行環境にアクセスする必要があります。例えば、S2Iビルダーコンテナはコンテナをビルドして実行するためにホストのDockerデーモンにアクセスする必要があります。S2Iビルダーコンテナは、特権コンテナの一種で、独自のコンテナの制限を超えてアクセスが必要です。これらのコンテナは、OpenShiftノード上の任意のリソースを使用できるため、セキュリティリスクを伴う可能性があります。
特権コンテナへのアクセスを有効にするためには、サービスアカウントを作成して特権アクセスを付与することで、SCCを使用してアクセスを制御することができます。
 
相关文章
RedHat EX200 本番近い試験問題集
Lazy loaded image
RedHat EX200 本番試験問題集(有料版)
Lazy loaded image
82- 第17章:導入総復習-3:OpenShiftにマルチコンテナデプロイのラボ
Lazy loaded image
81- 第17章:導入総復習-2:docker,KubernetesおよびOpenShiftのラボ
Lazy loaded image
80- 第17章:導入総復習-1:総合レビュー
Lazy loaded image
79- 第16章:OpenShiftの管理と監視-8:ラボ
Lazy loaded image
54- 第12章:OpenShiftリソースへのアクセス制御-6:セキュリティポリシーの管理の説明52- 第12章:OpenShiftリソースへのアクセス制御-4:データベースパスワード保護の演習
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
第1回:イントロダクション
2025-4-21
TOKYO自習島
2025-4-21
第1回:イントロダクション
2025-4-18
第1回:オリエンテーション/意思決定と会計情報
2025-4-18
建物業法の基本と免許-59問
2025-4-10
宅建士过去问速刷:小南小白陪你拿证-001
2025-4-7
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享我在 IT・MBA・不动产中介 等领域的学习与实践经验,并推动 线上线下学习会 的自主开展。

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!