IBM Cloud Docs
セキュリティー・コンテキスト制約の構成

セキュリティー・コンテキスト制約の構成

セキュリティー・コンテキスト制約 (SCC) を使用して、Red Hat® OpenShift® on IBM Cloud® クラスター内のポッドが実行できるアクションおよびアクセスを制御できます。 SCC について詳しくは、 Red Hat OpenShift 資料を参照してください。

なぜセキュリティ・コンテキスト制約を設定するのですか?
クラスター管理者は、クラスター内で行われること (特に、クラスターのセキュリティーや作動可能性に影響を与える操作) を制御する必要があります。 セキュリティー・コンテキスト制約は、特権コンテナーの使用法、ルート名前空間、ホスト・ネットワーキングとポート、ボリューム・タイプ、ホスト・ファイル・システム、読み取り専用またはグループ ID などの Linux 権限など、コンテナー内のポッドが持つアクションおよびアクセス権を制御するために役立ちます。
SCCにユーザーやシステムグループを追加することはできますか?
クラスター・リソースへのユーザー・アクセスには、SCC を使用しないでください。 代わりに、クラスター・アクセス権限の割り当てを参照して、IBM Cloud の IAM およびインフラストラクチャーの許可を設定してください。
system:authenticated のようなシステム・グループについては、既に SCC に割り当てられています。 SCC の詳細を表示して、どのグループが SCC に割り当てられているかを確認できます。 システム・グループが割り当てられている SCC を変更すると、許可の変更によって、そのシステム・グループに属するデフォルト・コンポーネントにエラーが発生する可能性があります。
SCCはデフォルトで設定されていますか?
デフォルトで、Red Hat OpenShift on IBM Cloud のクラスターには Red Hat OpenShift SCC の標準セットが含まれています。 さらに、クラスターには、IBM Cloud Kubernetes Service のコミュニティー Kubernetes クラスターの Kubernetes ポッド・セキュリティー・ポリシーによく似た IBM SCC があります。 これらの IBM SCC は、Cloud Pak などの IBM Cloud Private パッケージとのポータビリティーを向上させるために組み込まれています。
私のリソースには、デフォルトでどのSCCが適用されますか?
セキュリティー・コンテキストを指定しない場合、デフォルトで Red Hat OpenShift restricted (または 4.11 以降の restricted-v2 ) セキュリティー・コンテキスト制約が適用されます。 ポッドのセキュリティー・コンテキストを確認するには、ポッドの詳細を表示し、以下の例のような SCC アノテーションを探します。
oc describe pod <pod_name>
Name:               <pod_name>
Namespace:          <project_name>
...
Annotations:        openshift.io/...
                    openshift.io/scc=restricted
...
代わりにKubernetesのポッドセキュリティポリシーを使うことはできますか?
いいえ。 Kubernetes ポッド・セキュリティー・ポリシー (PSP) は、元々 Red Hat OpenShift SCC に基づいています。 ただし、Red Hat OpenShift は SCC のみをサポートし、PSP はサポートしません。

デフォルトの Red Hat OpenShift SCC は、コミュニティー Kubernetes クラスター内のデフォルトの PSP よりも厳格です。 そのため、コミュニティー Kubernetes クラスターで実行されるアプリ・デプロイメントを Red Hat OpenShift で実行するためには、変更が必要になる場合があります。

セキュリティー・コンテキスト制約のカスタマイズ

セキュリティ・コンテキスト制約の作成、編集、一覧表示、削除、その他の管理については、Red Hat OpenShiftドキュメントを参照してください。 clusterrolesclusterrolebindingsroles、および rolebindings などの役割ベースのアクセス制御を使用して、デフォルトのセキュリティー・コンテキスト制約に対する権限をユーザーまたはグループに付与することもできます。 oc adm policy add-scc-to-user などの oc adm policy サブコマンドを使用して、これらの設定を管理することもできます。 oc バージョンは、管理対象のクラスターの oc バージョンと同じです。

SCC へのアクセス権限の割り当てに関するガイドライン

  • 特定のサービス・アカウントの下で実行されるポッドが使用する SCC に対して、そのサービス・アカウントを許可します。
  • サービス・アカウントが複数の SCC にアクセスする必要がある場合は、サービス・アカウントの下で実行されるすべてのポッドが同じ SCC を使用することが予期されるように、追加のサービス・アカウントを作成することを検討してください。
  • restricted (4.10 以前) または restricted-v2 (4.11 以降) SCC 以外の SCC を使用する権限をすべてのユーザーまたはすべてのサービス・アカウントに付与しないでください。
  • openshift-* 名前空間内のサービス・アカウントの SCC 許可は変更しないでください。 Red Hat OpenShift コンポーネントは、特定の SCC の下で実行するように設計されており、別の SCC の下では適切に動作しない可能性があります。

デフォルトの Red Hat OpenShift セキュリティー・コンテキスト制約

Red Hat OpenShift on IBM Cloud クラスターには、デフォルトで以下のセキュリティー・コンテキスト制約があります。

既存の Red Hat OpenShift または IBM SCC 設定を編集しないでください (priorityusersgroups フィールドを除く)。

デフォルト Red Hat OpenShift セキュリティー・コンテキスト制約
SCC 名 説明
anyuid restricted SCC と同様にアクセスを拒否しますが、ユーザーは任意の UID および任意の GID で実行できます。
hostaccess すべてのホスト名前空間へのアクセスを許可しますが、ポッドは名前空間に割り振られた UID および SELinux コンテキストを使用して実行する必要があります。

重要:このSCCは、ネームスペース、ファイルシステム、およびプロセスIDへのホスト・アクセスを必要とする信頼されたポッドのみに付与します。

hostmount-anyuid restricted SCC と同様にアクセスを拒否しますが、ポッドによるホスト・マウントと任意の UID を許可します。 この SCC は主に永続ボリュームのリサイクラーによって使用されます。

重要:このSCCは、UID 0を含む任意のUIDでホストファイルシステムにアクセスする必要があるポッドに対してのみ付与されます。

hostnetwork ホスト・ネットワーキングとホスト・ポートの使用を許可しますが、ポッドは名前空間に割り振られた UID および SELinux コンテキストを使用して実行する必要があります。

重要:このSCCは、ホスト・ネットワーク・アクセスが必要なポッドに対してのみ付与します。

node-exporter 組み込み Prometheus ノード・エクスポーターに対する適切なアクセス権限を付与します。
nonroot restricted SCC と同様にアクセスを拒否しますが、ユーザーは非 root の UID で実行できます。 コンテナー・ランタイムのユーザーまたはマニフェストのいずれかで UID を指定する必要があります。
privileged すべての特権機能とホスト機能へのアクセスを許可し、任意のユーザー、任意のグループ、fsGroup 任意の設定、および任意の SELinux コンテキストで実行できるようにする

重要: このSCCは、可能な限り多くのアクセスを必要とするクラスタ管理のみに付与します。

restricted すべてのホスト機能へのアクセスを拒否します。ポッドは、名前空間に割り振られた UID および SELinux コンテキストを使用して実行する必要があります。 これは最も制限的な SCC であり、認証済みユーザーに対してデフォルトで使用されます。
hostnetwork-v2 hostnetwork SCC と似ていますが、ポッド・セキュリティー標準 Restricted プロファイルとの違いを最小化するために変更されました。
nonroot-v2 nonroot SCC と似ていますが、ポッド・セキュリティー標準 Restricted プロファイルとの違いを最小化するために変更されました。
restricted-v2 restricted SCC と似ていますが、ポッド・セキュリティー標準 Restricted プロファイルを満たすように変更されています。

デフォルトの IBM セキュリティー・コンテキスト制約

Red Hat OpenShift on IBM Cloud クラスターには、デフォルトで以下の IBM セキュリティー・コンテキスト制約があります。

既存の Red Hat OpenShift または IBM SCC 設定を編集しないでください (priorityusersgroups フィールドを除く)。

デフォルトの IBM セキュリティー・コンテキスト制約
SCC 名 説明
ibm-anyuid-hostaccess-scc ポッドを任意の UID と GID、任意のボリューム、およびホストへの全アクセス権限で実行できるようにします。

重要:このSCCは、ホストとネットワークへのフルアクセスが必要なポッドのみに付与します。

ibm-anyuid-hostpath-scc ポッドを任意の UID と GID、および任意のボリューム (ホスト・パスを含む) を使用して実行できるようにします。

重要:このSCCは、hostPath ボリュームへのアクセスが必要なポッドのみに付与します。

ibm-anyuid-scc ポッドを任意の UID と GID で実行できるようにしますが、ホストへのアクセスは防止します。
ibm-privileged-scc すべての特権ホスト機能へのアクセスが許可されるとともに、任意の UID と GID および任意のボリュームを使用してポッドを実行できるようにします。

重要: このSCCは、可能な限り多くのアクセスを必要とするクラスタ管理のみに付与します。

ibm-restricted-scc すべてのホスト機能へのアクセスを拒否します。ポッドは、名前空間に割り振られた UID および SELinux コンテキストを使用して実行する必要があります。 この SCC は、最も制限の厳しい IBM SCC です。